mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-20 04:42:26 +12:00
Changed Template Manager
I also added glade back up files to gitignore. It wasn't.
This commit is contained in:
parent
4ccd78bc7d
commit
45889d6279
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -25,3 +25,4 @@ manuskript.log
|
|||
snowflake*
|
||||
test-projects
|
||||
main.pyproject.user
|
||||
*.glade#
|
||||
|
|
|
@ -7,21 +7,22 @@ import os
|
|||
from collections import OrderedDict
|
||||
|
||||
|
||||
# So this is a template for charecter details
|
||||
# It is edited by the Charecter Template Editor
|
||||
# Most of the code is taken from charecters.py
|
||||
# So this is a template for character details
|
||||
# It is edited by the Character Template Editor
|
||||
# Most of the code is taken from characters.py
|
||||
# I think this should have a custom save that's like a .json file in the main part of the manuskript save
|
||||
|
||||
#Main Class
|
||||
class CharacterDetailTemplate:
|
||||
|
||||
details = {'Age':'','Birthdate':'',
|
||||
class CharacterDetailTemplates:
|
||||
# Basic Template
|
||||
templates = {'Basic Human':
|
||||
{'Age':'','Birthdate':'',
|
||||
'Eye Color':'','Hair Color':'',
|
||||
'Handed':''} # We'll make a default template
|
||||
|
||||
'Handed':''},
|
||||
}
|
||||
|
||||
|
||||
# TODO saving
|
||||
# TODO: saving
|
||||
def save(self):
|
||||
pass
|
||||
|
|
@ -19,7 +19,7 @@ from manuskript.data.world import World
|
|||
from manuskript.data.outline import Outline
|
||||
from manuskript.data.revisions import Revisions
|
||||
# This is for the charecter template
|
||||
from manuskript.data.characters_template import CharacterDetailTemplate
|
||||
from manuskript.data.characters_templates import CharacterDetailTemplates
|
||||
|
||||
from manuskript.io.mskFile import MskFile
|
||||
from manuskript.util import profileTime
|
||||
|
@ -41,7 +41,7 @@ class Project:
|
|||
self.world = World(self.file.dir_path)
|
||||
self.outline = Outline(self.file.dir_path, self.plots, self.labels, self.statuses)
|
||||
self.revisions = Revisions(self.file.dir_path)
|
||||
self.character_template = CharacterDetailTemplate()
|
||||
self.character_templates = CharacterDetailTemplates() # TODO: RENAME PROPERALLY
|
||||
|
||||
def __del__(self):
|
||||
del self.file
|
||||
|
|
|
@ -75,14 +75,12 @@ class MainWindow:
|
|||
self.startupWindow = StartupWindow(self)
|
||||
self.aboutDialog = AboutDialog(self)
|
||||
self.frequencyWindow = FrequencyWindow(self)
|
||||
self.characterTemplateWindow = CharacterTemplateWindow(self)
|
||||
self.settingsWindow = SettingsWindow(self)
|
||||
|
||||
self.windows = [
|
||||
self.startupWindow,
|
||||
self.aboutDialog,
|
||||
self.frequencyWindow,
|
||||
self.characterTemplateWindow,
|
||||
self.settingsWindow
|
||||
]
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from manuskript.ui.tools.frequencyWindow import FrequencyWindow
|
||||
from manuskript.ui.tools.characterTemplateWindow import CharacterTemplateWindow
|
||||
from manuskript.ui.tools.frequencyWindow import FrequencyWindow
|
|
@ -1,123 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
# Imports
|
||||
# Gi
|
||||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GObject, Gtk, Handy
|
||||
|
||||
# Manuskript
|
||||
from manuskript.ui.abstractDialog import AbstractDialog
|
||||
from manuskript.util import unique_name_checker, invalidString, validString
|
||||
|
||||
|
||||
# I lifted a lot of this code from frequencyWindow
|
||||
# With a bit more stuff from charactersView
|
||||
|
||||
class CharacterTemplateWindow(AbstractDialog):
|
||||
|
||||
def __init__(self, mainWindow):
|
||||
AbstractDialog.__init__(self, mainWindow, "ui/character_details_template_editor.glade",
|
||||
"character_details_template_editor")
|
||||
|
||||
self.headerBar = None
|
||||
self.back = None
|
||||
|
||||
self.detailsStore = None
|
||||
self.detailsSelection = None
|
||||
self.addDetailsButton = None
|
||||
self.removeDetailsButton = None
|
||||
self.appendDetailsTemplateButton = None
|
||||
self.detailsNameRenderer = None
|
||||
self.detailsValueRenderer = None
|
||||
|
||||
def initWindow(self, builder, window):
|
||||
self.headerBar = builder.get_object("header_bar")
|
||||
self.back = builder.get_object("back")
|
||||
|
||||
self.back.connect("clicked", self._backClicked)
|
||||
|
||||
# Liking Stuff stole from charactersView
|
||||
self.detailsStore = builder.get_object("details_store")
|
||||
self.detailsSelection = builder.get_object("details_selection")
|
||||
self.addDetailsButton = builder.get_object("add_details")
|
||||
self.removeDetailsButton = builder.get_object("remove_details")
|
||||
self.appendDetailsTemplateButton = builder.get_object("appened_details_template")
|
||||
self.detailsNameRenderer = builder.get_object("details_name")
|
||||
self.detailsValueRenderer = builder.get_object("details_value")
|
||||
|
||||
self.addDetailsButton.connect("clicked", self._addDetailsClicked)
|
||||
self.removeDetailsButton.connect("clicked", self._removeDetailsClicked)
|
||||
|
||||
self.detailsNameRenderer.connect("edited", self._detailsNameEdited)
|
||||
self.detailsValueRenderer.connect("edited", self._detailsValueEdited)
|
||||
|
||||
self.loadCharacterTemplate()
|
||||
|
||||
def _backClicked(self, button: Gtk.Button):
|
||||
self.hide()
|
||||
|
||||
# So this adds any previously added parts to the template
|
||||
def loadCharacterTemplate(self):
|
||||
for name, value in self.mainWindow.project.character_template.details.items():
|
||||
tree_iter = self.detailsStore.append()
|
||||
|
||||
if tree_iter is None:
|
||||
return
|
||||
|
||||
self.detailsStore.set_value(tree_iter, 0, name)
|
||||
self.detailsStore.set_value(tree_iter, 1, value)
|
||||
|
||||
# Functions stole From charactersView
|
||||
def _addDetailsClicked(self, button: Gtk.Button):
|
||||
tree_iter = self.detailsStore.append()
|
||||
|
||||
if tree_iter is None:
|
||||
return
|
||||
|
||||
name = unique_name_checker.get_unique_name_for_dictionary(self.mainWindow.project.character_template.details,
|
||||
"Description")
|
||||
value = "Value"
|
||||
|
||||
self.detailsStore.set_value(tree_iter, 0, name)
|
||||
self.detailsStore.set_value(tree_iter, 1, value)
|
||||
|
||||
self.mainWindow.project.character_template.details[name] = value
|
||||
|
||||
def _removeDetailsClicked(self, button: Gtk.Button):
|
||||
model, tree_iter = self.detailsSelection.get_selected()
|
||||
|
||||
if (model is None) or (tree_iter is None):
|
||||
return
|
||||
|
||||
name = model.get_value(tree_iter, 0)
|
||||
model.remove(tree_iter)
|
||||
|
||||
self.mainWindow.project.character_template.details.pop(name)
|
||||
|
||||
def _detailsNameEdited(self, renderer: Gtk.CellRendererText, path: str, text: str):
|
||||
model, tree_iter = self.detailsSelection.get_selected()
|
||||
|
||||
if (model is None) or (tree_iter is None):
|
||||
return
|
||||
text_to_set = unique_name_checker.get_unique_name_for_dictionary(
|
||||
self.mainWindow.project.character_template.details, text)
|
||||
name = model.get_value(tree_iter, 0)
|
||||
model.set_value(tree_iter, 0, text_to_set)
|
||||
# There was an error with this line but it didn't seem to do anything bad.
|
||||
self.mainWindow.project.character_template.details[text_to_set] = \
|
||||
self.mainWindow.project.character_template.details.pop(name)
|
||||
|
||||
def _detailsValueEdited(self, renderer: Gtk.CellRendererText, path: str, text: str):
|
||||
model, tree_iter = self.detailsSelection.get_selected()
|
||||
|
||||
if (model is None) or (tree_iter is None):
|
||||
return
|
||||
|
||||
name = model.get_value(tree_iter, 0)
|
||||
model.set_value(tree_iter, 1, text)
|
||||
|
||||
self.mainWindow.project.character_template.details[name] = text
|
|
@ -14,7 +14,7 @@ from manuskript.util import validString, invalidString, validInt, invalidInt, un
|
|||
class CharactersView:
|
||||
|
||||
def __init__(self, project):
|
||||
self.characterTemplate = project.character_template # The template for detailed info
|
||||
self.characterTemplates = project.character_templates # The template for detailed info
|
||||
self.characters = project.characters
|
||||
self.character = None
|
||||
|
||||
|
@ -78,13 +78,19 @@ class CharactersView:
|
|||
self.detailsSelection = builder.get_object("details_selection")
|
||||
self.addDetailsButton = builder.get_object("add_details")
|
||||
self.removeDetailsButton = builder.get_object("remove_details")
|
||||
self.appendDetailsTemplateButton = builder.get_object("appened_details_template")
|
||||
self.charecterDetailsMenuButton = builder.get_object("characters_details_menu_button")
|
||||
self.newTemplateButton = builder.get_object("new_template_button")
|
||||
self.newTemplateEntry = builder.get_object("new_template_entry")
|
||||
self.newTemplateEntryBuffer = builder.get_object("new_template_entry_buffer")
|
||||
self.charecterDetailsMenuAppendBox = builder.get_object("template_select_box")
|
||||
self.charecterDetailsMenuTemplateBox = builder.get_object("template_select_box2")
|
||||
self.detailsNameRenderer = builder.get_object("details_name")
|
||||
self.detailsValueRenderer = builder.get_object("details_value")
|
||||
|
||||
self.addDetailsButton.connect("clicked", self._addDetailsClicked)
|
||||
self.removeDetailsButton.connect("clicked", self._removeDetailsClicked)
|
||||
self.appendDetailsTemplateButton.connect("clicked", self._appendTemplateClicked)
|
||||
self.charecterDetailsMenuButton.connect("clicked", self._onCharecterDetailsMenuClicked)
|
||||
self.newTemplateButton.connect("clicked", self._onNewTemplateButtonClicked)
|
||||
self.detailsNameRenderer.connect("edited", self._detailsNameEdited)
|
||||
self.detailsValueRenderer.connect("edited", self._detailsValueEdited)
|
||||
|
||||
|
@ -325,17 +331,56 @@ class CharactersView:
|
|||
model.remove(tree_iter)
|
||||
|
||||
self.character.details.pop(name)
|
||||
|
||||
def _updateCharecterDetailsMenu(self):
|
||||
def clear_container(container):
|
||||
data = container.get_children()
|
||||
for d in data:
|
||||
container.remove(d)
|
||||
clear_container( self.charecterDetailsMenuAppendBox)
|
||||
clear_container(self.charecterDetailsMenuTemplateBox)
|
||||
for x in self.characterTemplates.templates:
|
||||
button = Gtk.Button(label=x,) # TODO: turn into ModelButton
|
||||
button.connect("clicked", self._appendTemplateClicked, x)
|
||||
self.charecterDetailsMenuAppendBox.add(button)
|
||||
# Now we do the buttons for charecterDetailsMenuTemplateBox
|
||||
button2 = Gtk.Button(label=x,) # TODO: turn into ModelButton
|
||||
button2.connect("clicked", self._updateTemplateClicked, x)
|
||||
self.charecterDetailsMenuTemplateBox.add(button2)
|
||||
|
||||
def _appendTemplateClicked(self, button: Gtk.Button):
|
||||
self.charecterDetailsMenuAppendBox.show_all()
|
||||
self.charecterDetailsMenuTemplateBox.show_all()
|
||||
|
||||
def _onCharecterDetailsMenuClicked(self, button: Gtk.MenuButton):
|
||||
self._updateCharecterDetailsMenu()
|
||||
|
||||
def _updateTemplateClicked(self, button: Gtk.ModelButton, template):
|
||||
if self.character is None:
|
||||
return
|
||||
self.characterTemplates.templates[template] = self.character.details # TODO: Add A warning? Or should there be undo/ redo when revisions are written.
|
||||
|
||||
def _appendTemplateClicked(self, button: Gtk.ModelButton, template):
|
||||
if self.character is None:
|
||||
return
|
||||
# This following bit could be turned into a def
|
||||
for (key, value) in self.characterTemplate.details.items():
|
||||
for (key, value) in self.characterTemplates.templates[template].items():
|
||||
self.character.details[key]= value
|
||||
|
||||
#We have to reload the charecter
|
||||
# We have to reload the character
|
||||
self.loadCharacterData(self.character)
|
||||
|
||||
def _onNewTemplateButtonClicked(self, button: Gtk.Button):
|
||||
text = self.newTemplateEntryBuffer.get_text()
|
||||
if text == "":
|
||||
return
|
||||
if text in self.characterTemplates.templates:
|
||||
new_text = unique_name_checker.get_unique_name_for_dictionary(self.characterTemplates.templates, text)
|
||||
self.newTemplateEntryBuffer.set_text(new_text, -1) # TODO: Add a warning
|
||||
return
|
||||
else:
|
||||
self.characterTemplates.templates[text] = self.character.details
|
||||
self._updateCharecterDetailsMenu()
|
||||
|
||||
def _detailsNameEdited(self, renderer: Gtk.CellRendererText, path: str, text: str):
|
||||
if self.character is None:
|
||||
return
|
||||
|
@ -477,3 +522,4 @@ class CharactersView:
|
|||
|
||||
def show(self):
|
||||
self.widget.show_all()
|
||||
|
||||
|
|
0
test_io.py
Normal file → Executable file
0
test_io.py
Normal file → Executable file
|
@ -1,193 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<requires lib="libhandy" version="0.0"/>
|
||||
<object class="HdyWindow" id="character_details_template_editor">
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="HdyTitleBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="HdyHeaderBar" id="header_bar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="title" translatable="yes">Edit Charecter Details Template</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="back">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="margin-start">4</property>
|
||||
<property name="margin-end">4</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">8</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="height-request">200</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="label-yalign">0</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTreeView">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="model">details_store</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="search-column">0</property>
|
||||
<property name="enable-grid-lines">both</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="details_selection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Name</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="details_name">
|
||||
<property name="editable">True</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Value</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="details_value">
|
||||
<property name="editable">True</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label_item">
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="add_details">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">list-add</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="remove_details">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">list-remove</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkListStore" id="details_store">
|
||||
<columns>
|
||||
<!-- column-name Name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name Value -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
</interface>
|
|
@ -85,6 +85,195 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</object>
|
||||
<object class="GtkTextBuffer" id="motivation"/>
|
||||
<object class="GtkEntryBuffer" id="name"/>
|
||||
<object class="GtkEntryBuffer" id="new_template_entry_buffer"/>
|
||||
<object class="GtkPopoverMenu" id="charecter_options_popover">
|
||||
<property name="height-request">200</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="append_template_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkModelButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="text" translatable="yes">Append Template</property>
|
||||
<property name="menu-name">main</property>
|
||||
<property name="inverted">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="template_select_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<property name="activate-on-single-click">False</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="submenu">append_template</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="edit_template_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkModelButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="text" translatable="yes">Set info to template</property>
|
||||
<property name="menu-name">main</property>
|
||||
<property name="inverted">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="template_select_box2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<property name="activate-on-single-click">False</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkEntry" id="new_template_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="buffer">new_template_entry_buffer</property>
|
||||
<property name="placeholder-text" translatable="yes">Enter a unique name</property>
|
||||
<property name="input-hints">GTK_INPUT_HINT_NO_EMOJI | GTK_INPUT_HINT_NONE</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="new_template_button">
|
||||
<property name="label" translatable="yes">New template</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="tooltip-text" translatable="yes">Adds a new template with the content of the current charecter's details.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="submenu">edit_template</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="main_menu_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkModelButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="text" translatable="yes">Append Template</property>
|
||||
<property name="menu-name">append_template</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkModelButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="text" translatable="yes">Set info to template</property>
|
||||
<property name="menu-name">edit_template</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="submenu">main</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkTextBuffer" id="notes"/>
|
||||
<object class="GtkTextBuffer" id="one_paragraph_summary"/>
|
||||
<object class="GtkTextBuffer" id="one_sentence_summary"/>
|
||||
|
@ -934,12 +1123,20 @@ summary</property>
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="appened_details_template">
|
||||
<property name="label" translatable="yes">Append Detail Template</property>
|
||||
<object class="GtkMenuButton" id="characters_details_menu_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<signal name="clicked" handler="on_appened_details_template_clicked" swapped="no"/>
|
||||
<property name="direction">up</property>
|
||||
<property name="popover">charecter_options_popover</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
|
|
@ -619,14 +619,6 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="character_details_template_editor">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">_Edit Character Details Template</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
Loading…
Reference in a new issue