mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-12 17:02:36 +12:00
Merge pull request #1181 from TheShadowOfHassen/test
Pull request with too many things (again, again)
This commit is contained in:
commit
2ffa70b5dd
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -25,3 +25,4 @@ manuskript.log
|
|||
snowflake*
|
||||
test-projects
|
||||
main.pyproject.user
|
||||
*.glade#
|
||||
|
|
31
manuskript/data/characters_templates.py
Normal file
31
manuskript/data/characters_templates.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
|
||||
import os
|
||||
|
||||
#from io.jsonFile import* # I need to figure out how to import this. io is also a package in python
|
||||
from collections import OrderedDict
|
||||
|
||||
|
||||
# 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 CharacterDetailTemplates:
|
||||
# Basic Template
|
||||
templates = {'Basic Human':
|
||||
{'Age':'','Birthdate':'',
|
||||
'Eye Color':'','Hair Color':'',
|
||||
'Handed':''},
|
||||
}
|
||||
|
||||
|
||||
# TODO: saving
|
||||
def save(self):
|
||||
pass
|
||||
|
||||
def load(self):
|
||||
pass
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
|
||||
# Imports
|
||||
# Python bundled modules
|
||||
import os
|
||||
|
||||
from zipfile import BadZipFile
|
||||
|
||||
# Manuskript modules
|
||||
|
||||
from manuskript.data.abstractData import AbstractData
|
||||
from manuskript.data.version import Version, CURRENT_MSK_VERSION
|
||||
from manuskript.data.info import Info
|
||||
|
@ -17,6 +21,9 @@ from manuskript.data.plots import Plots
|
|||
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_templates import CharacterDetailTemplates
|
||||
|
||||
from manuskript.io.mskFile import MskFile
|
||||
from manuskript.util import profileTime
|
||||
|
||||
|
@ -38,6 +45,8 @@ class Project(AbstractData):
|
|||
self.world = World(self.file.directoryPath)
|
||||
self.outline = Outline(self.file.directoryPath, self.plots, self.labels, self.statuses)
|
||||
self.revisions = Revisions(self.file.directoryPath)
|
||||
self.character_templates = CharacterDetailTemplates() # TODO: RENAME PROPERALLY
|
||||
|
||||
|
||||
def __del__(self):
|
||||
del self.file
|
||||
|
|
|
@ -86,6 +86,7 @@ class MainWindow:
|
|||
|
||||
bindMenuItem(builder, "settings_menu_item", self._settingsAction)
|
||||
bindMenuItem(builder, "frequency_menu_item", self._frequencyAction)
|
||||
bindMenuItem(builder, "character_details_template_editor", self._characterDetailsTemplateEditorAction)
|
||||
bindMenuItem(builder, "about_menu_item", self._aboutAction)
|
||||
|
||||
self.hide()
|
||||
|
@ -107,7 +108,7 @@ class MainWindow:
|
|||
|
||||
self.generalView = packViewIntoSlot(self.generalSlot, GeneralView, self.project.info)
|
||||
self.summaryView = packViewIntoSlot(self.summarySlot, SummaryView, self.project.summary)
|
||||
self.charactersView = packViewIntoSlot(self.charactersSlot, CharactersView, self.project.characters)
|
||||
self.charactersView = packViewIntoSlot(self.charactersSlot, CharactersView, self.project)
|
||||
self.plotView = packViewIntoSlot(self.plotSlot, PlotView, self.project.plots)
|
||||
self.worldView = packViewIntoSlot(self.worldSlot, WorldView, self.project.world)
|
||||
self.outlineView = packViewIntoSlot(self.outlineSlot, OutlineView, self.project.outline)
|
||||
|
@ -181,6 +182,9 @@ class MainWindow:
|
|||
|
||||
def _frequencyAction(self, menuItem: Gtk.MenuItem):
|
||||
self.frequencyWindow.show()
|
||||
|
||||
def _characterDetailsTemplateEditorAction(self, menuItem: Gtk.MenuItem):
|
||||
self.characterTemplateWindow.show()
|
||||
|
||||
def _aboutAction(self, menuItem: Gtk.MenuItem):
|
||||
self.aboutDialog.show()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from manuskript.ui.tools.frequencyWindow import FrequencyWindow
|
||||
from manuskript.ui.tools.frequencyWindow import FrequencyWindow
|
|
@ -8,13 +8,14 @@ from gi.repository import Gtk
|
|||
|
||||
from manuskript.data import Characters, Character, Importance, Color
|
||||
from manuskript.ui.util import rgbaFromColor, pixbufFromColor
|
||||
from manuskript.util import validString, invalidString, validInt, invalidInt
|
||||
from manuskript.util import validString, invalidString, validInt, invalidInt, unique_name_checker
|
||||
|
||||
|
||||
class CharactersView:
|
||||
|
||||
def __init__(self, characters: Characters):
|
||||
self.characters = characters
|
||||
def __init__(self, project):
|
||||
self.characterTemplates = project.character_templates # The template for detailed info
|
||||
self.characters = project.characters
|
||||
self.character = None
|
||||
|
||||
builder = Gtk.Builder()
|
||||
|
@ -77,11 +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.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.charecterDetailsMenuButton.connect("clicked", self._onCharecterDetailsMenuClicked)
|
||||
self.newTemplateButton.connect("clicked", self._onNewTemplateButtonClicked)
|
||||
self.detailsNameRenderer.connect("edited", self._detailsNameEdited)
|
||||
self.detailsValueRenderer.connect("edited", self._detailsValueEdited)
|
||||
|
||||
|
@ -108,6 +117,7 @@ class CharactersView:
|
|||
self.notesBuffer.connect("changed", self._notesChanged)
|
||||
|
||||
self.unloadCharacterData()
|
||||
|
||||
|
||||
def refreshCharacterStore(self):
|
||||
self.charactersStore.clear()
|
||||
|
@ -300,7 +310,7 @@ class CharactersView:
|
|||
if tree_iter is None:
|
||||
return
|
||||
|
||||
name = "Description"
|
||||
name = unique_name_checker.get_unique_name_for_dictionary(self.character.details, "Description")
|
||||
value = "Value"
|
||||
|
||||
self.detailsStore.set_value(tree_iter, 0, name)
|
||||
|
@ -321,6 +331,68 @@ 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
|
||||
box = Gtk.Box()
|
||||
label = Gtk.Label(label=x)
|
||||
overwrite_button = Gtk.Button()
|
||||
overwrite_button.add(Gtk.Image(icon_name='system-restart-symbolic'))
|
||||
overwrite_button.connect("clicked", self._updateTemplateClicked, x)
|
||||
overwrite_button.set_tooltip_markup ('Overwrite template with text of current file') # TODO: This might be an issue when it comes to translating
|
||||
delete_button = Gtk.Button()
|
||||
delete_button.add(Gtk.Image(icon_name='app-remove-symbolic'))
|
||||
delete_button.set_tooltip_markup ('Delete') # TODO: This might be an issue when it comes to translating
|
||||
delete_button.connect("clicked", self._deleteTemplateClicked, x)
|
||||
box.pack_start(overwrite_button, False, False, 0)
|
||||
box.pack_start(delete_button, False, False, 0)
|
||||
box.pack_start(label, False, False, 0)
|
||||
self.charecterDetailsMenuTemplateBox.add(box)
|
||||
|
||||
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 _deleteTemplateClicked(self, button: Gtk.ModelButton, template):
|
||||
del self.characterTemplates.templates[template]
|
||||
self._updateCharecterDetailsMenu()
|
||||
|
||||
def _appendTemplateClicked(self, button: Gtk.ModelButton, template):
|
||||
if self.character is None:
|
||||
return
|
||||
self.character.details.update(self.characterTemplates.templates[template])
|
||||
|
||||
# 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:
|
||||
|
@ -330,11 +402,12 @@ class CharactersView:
|
|||
|
||||
if (model is None) or (tree_iter is None):
|
||||
return
|
||||
|
||||
|
||||
text_to_set = unique_name_checker.get_unique_name_for_dictionary(self.character.details, text)
|
||||
name = model.get_value(tree_iter, 0)
|
||||
model.set_value(tree_iter, 0, text)
|
||||
model.set_value(tree_iter, 0, text_to_set)
|
||||
|
||||
self.character.details[text] = self.character.details.pop(name)
|
||||
self.character.details[text_to_set] = self.character.details.pop(name)
|
||||
|
||||
def _detailsValueEdited(self, renderer: Gtk.CellRendererText, path: str, text: str):
|
||||
if self.character is None:
|
||||
|
@ -462,3 +535,4 @@ class CharactersView:
|
|||
|
||||
def show(self):
|
||||
self.widget.show_all()
|
||||
|
||||
|
|
16
manuskript/util/unique_name_checker.py
Normal file
16
manuskript/util/unique_name_checker.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# So this thing changes a name until it works with a dictionary
|
||||
# Ie. if you have a dictioary {'Item':1,'Item2':1,'Item3':1} and if you add an item it'll be Item4
|
||||
# It works only on strings
|
||||
|
||||
def get_unique_name_for_dictionary(dictionary, name):
|
||||
count = 1
|
||||
test_name = name
|
||||
while test_name in dictionary:
|
||||
count += 1
|
||||
test_name = str(name) +(str(count))
|
||||
|
||||
return test_name
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2
|
||||
<!-- Generated with glade 3.40.0
|
||||
|
||||
Copyright (C) 2015-2021 Olivier Keshavjee et al.
|
||||
|
||||
|
@ -31,9 +31,11 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="window-position">center-on-parent</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<property name="program-name">Manuskript</property>
|
||||
<property name="version">0.12.0</property>
|
||||
<property name="version">Gtk Working Version (Last Version 0.15.0)</property>
|
||||
<property name="copyright" translatable="yes">Copyright © 2015-2021 Olivier Keshavjee et al.</property>
|
||||
<property name="comments" translatable="yes">This is a Gtk Version Still In Development</property>
|
||||
<property name="website">https://www.theologeek.ch/manuskript/</property>
|
||||
<property name="website-label" translatable="yes">https://www.theologeek.ch/manuskript/</property>
|
||||
<property name="authors">Olivier Keshavjee
|
||||
Curtis Gedak
|
||||
Youness Alaoui
|
||||
|
@ -118,7 +120,7 @@ nicxxx
|
|||
obw
|
||||
peter88213
|
||||
ssantos </property>
|
||||
<property name="logo">../icons/Manuskript/logo-400x104.png</property>
|
||||
<property name="logo">../icons/Manuskript/logo-400x104.png</property>
|
||||
<property name="license-type">gpl-3-0</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
|
|
|
@ -85,6 +85,201 @@ 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="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">1</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">Mange Templates</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>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="submenu">main</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<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">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkTextBuffer" id="notes"/>
|
||||
<object class="GtkTextBuffer" id="one_paragraph_summary"/>
|
||||
<object class="GtkTextBuffer" id="one_sentence_summary"/>
|
||||
|
@ -795,10 +990,7 @@ summary</property>
|
|||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">8</property>
|
||||
<property name="margin-end">8</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="border-width">8</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
|
@ -923,6 +1115,41 @@ summary</property>
|
|||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Next</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<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>
|
||||
<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>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
|
|
@ -127,10 +127,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="width-request">300</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">8</property>
|
||||
<property name="margin-end">8</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="border-width">8</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
|
@ -353,11 +350,8 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="width-request">250</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="margin-start">8</property>
|
||||
<property name="margin-end">8</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="border-width">8</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2
|
||||
<!-- Generated with glade 3.40.0
|
||||
|
||||
Copyright (C) 2015-2021 Olivier Keshavjee et al.
|
||||
|
||||
|
@ -429,6 +429,21 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="tip_of_the_day_grid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
Loading…
Reference in a new issue