Fixed logo in about dialog and adjusted settings key usage

Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
TheJackiMonster 2021-09-25 22:06:26 +02:00
parent 6dc89db53d
commit 2b6ce28135
No known key found for this signature in database
GPG key ID: D850A5F772E880F9
6 changed files with 99 additions and 17 deletions

View file

@ -16,13 +16,25 @@ class Settings:
Settings.loadDefaultSettings(self)
def get(self, key: str):
return self.properties.get(key)
props = self.properties
path = key.split(".")
for part in path[:-1]:
props = props.get(part)
return props.get(path[-1:][0])
def isEnabled(self, key: str) -> bool:
return self.properties.get(key, False) is True
def set(self, key: str, value):
self.properties[key] = value
props = self.properties
path = key.split(".")
for part in path[:-1]:
props = props.get(part)
props[path[-1:][0]] = value
def __iter__(self):
return self.properties.__iter__()

View file

@ -28,13 +28,13 @@ class AbstractDialog:
builder.add_from_file(self.builderTemplatePath)
self.window = builder.get_object(self.builderObjectId)
self.window.connect("destroy", self.__destroyWindow)
self.window.connect("destroy", self._destroyWindow)
self.window.set_transient_for(self.mainWindow.window)
self.window.set_modal(True)
self.initWindow(builder, self.window)
def __destroyWindow(self, window: Gtk.Widget):
def _destroyWindow(self, window: Gtk.Widget):
self.window = None
def show(self):

View file

@ -73,6 +73,12 @@ class MainWindow:
MainWindow.bindMenuItem(builder, "settings_menu_item", self.openSettings)
MainWindow.bindMenuItem(builder, "about_menu_item", self.openAbout)
def getProject(self):
return self.project
def getSettings(self):
return self.getProject().settings
def openSettings(self, menuItem: Gtk.MenuItem):
self.settingsWindow.show()

View file

@ -1,6 +1,11 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from manuskript.ui.abstractDialog import AbstractDialog
@ -8,3 +13,61 @@ class SettingsWindow(AbstractDialog):
def __init__(self, mainWindow):
AbstractDialog.__init__(self, mainWindow, "ui/settings.glade", "settings_window")
def initWindow(self, builder, window):
self.autoSave = builder.get_object("auto_save")
self.autoSaveDelay = builder.get_object("auto_save_delay")
self.autoSaveNoChanges = builder.get_object("auto_save_nochanges")
self.autoSaveNoChangesDelay = builder.get_object("auto_save_nochanges_delay")
self.saveOnQuit = builder.get_object("save_on_quit")
self.saveToZip = builder.get_object("save_to_zip")
self.revisionsKeep = builder.get_object("revisions_keep")
self.revisionsSmartremove = builder.get_object("revisions_smartremove")
self.autoSave.set_active(self.getSettings().get("autoSave"))
self.autoSaveDelay.set_value(self.getSettings().get("autoSaveDelay"))
self.autoSaveNoChanges.set_active(self.getSettings().get("autoSaveNoChanges"))
self.autoSaveNoChangesDelay.set_value(self.getSettings().get("autoSaveNoChangesDelay"))
self.saveOnQuit.set_active(self.getSettings().get("saveOnQuit"))
self.saveToZip.set_active(self.getSettings().get("saveToZip"))
self.revisionsKeep.set_active(self.getSettings().get("revisions.keep"))
self.revisionsSmartremove.set_active(self.getSettings().get("revisions.smartremove"))
self.autoSave.connect("toggled", self._autoSaveToggled)
self.autoSaveDelay.connect("value-changed", self._autoSaveChanged)
self.autoSaveNoChanges.connect("toggled", self._autoSaveNoChangesToggled)
self.autoSaveNoChangesDelay.connect("value-changed", self._autoSaveNoChangesChanged)
self.saveOnQuit.connect("toggled", self._saveOnQuitToggled)
self.saveToZip.connect("toggled", self._saveToZipToggled)
self.revisionsKeep.connect("toggled", self._revisionsKeepToggled)
self.revisionsSmartremove.connect("toggled", self._revisionsSmartremoveToggled)
def _autoSaveToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("autoSave", button.get_active())
def _autoSaveChanged(self, button: Gtk.SpinButton):
self.getSettings().set("autoSaveDelay", button.get_value())
def _autoSaveNoChangesToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("autoSaveNoChanges", button.get_active())
def _autoSaveNoChangesChanged(self, button: Gtk.SpinButton):
self.getSettings().set("autoSaveNoChangesDelay", button.get_value())
def _saveOnQuitToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("saveOnQuit", button.get_active())
def _saveToZipToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("saveToZip", button.get_active())
def _revisionsKeepToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("revisions.keep", button.get_active())
def _revisionsSmartremoveToggled(self, button: Gtk.ToggleButton):
self.getSettings().set("revisions.smartremove", button.get_active())
def getSettings(self):
return self.mainWindow.getSettings()

View file

@ -21,7 +21,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-local-resource-path . -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
@ -118,7 +118,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">

View file

@ -308,7 +308,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
</packing>
</child>
<child>
<object class="GtkComboBox">
<object class="GtkComboBox" id="general_language">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="model">languages_store</property>
@ -359,7 +359,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
</packing>
</child>
<child>
<object class="GtkSpinButton">
<object class="GtkSpinButton" id="general_font_size">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="input-purpose">number</property>
@ -394,7 +394,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">True</property>
<property name="title">Automatic loading</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="automatic_load">
<property name="label" translatable="yes">Automatically load last project on startup</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -434,7 +434,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="auto_save">
<property name="label" translatable="yes">Automatically save every</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -448,7 +448,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
</packing>
</child>
<child>
<object class="GtkSpinButton">
<object class="GtkSpinButton" id="auto_save_delay">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">0</property>
@ -494,7 +494,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="auto_save_nochanges">
<property name="label" translatable="yes">If no changes during</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -508,7 +508,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
</packing>
</child>
<child>
<object class="GtkSpinButton">
<object class="GtkSpinButton" id="auto_save_nochanges_delay">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">0</property>
@ -544,7 +544,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">True</property>
<property name="title">Save on closure</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="save_on_quit">
<property name="label" translatable="yes">Save on project close</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -564,7 +564,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">True</property>
<property name="title">Single file mode</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="save_to_zip">
<property name="label" translatable="yes">Save to one single file</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -603,7 +603,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">True</property>
<property name="title">Keep revisions</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="revisions_keep">
<property name="label" translatable="yes">Keep revisions</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -623,7 +623,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">True</property>
<property name="title">Smart remove</property>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="revisions_smartremove">
<property name="label" translatable="yes">Smart remove</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -2522,6 +2522,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="receives-default">False</property>
<property name="font">Sans 12</property>
</object>
<packing>
<property name="expand">True</property>