Restructured settings pages into multiple files

Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
TheJackiMonster 2021-09-27 21:36:27 +02:00
parent 36568db070
commit ab6c8ab421
No known key found for this signature in database
GPG key ID: D850A5F772E880F9
17 changed files with 4194 additions and 3809 deletions

View file

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from manuskript.ui.settings.generalPage import GeneralPage
from manuskript.ui.settings.revisionsPage import RevisionsPage
from manuskript.ui.settings.viewsPage import ViewsPage
from manuskript.ui.settings.labelsPage import LabelsPage
from manuskript.ui.settings.statusPage import StatusPage
from manuskript.ui.settings.fullscreenPage import FullscreenPage

View file

@ -0,0 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class FullscreenPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/fullscreen.glade")
self.widget = builder.get_object("fullscreen_page")

View file

@ -0,0 +1,61 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class GeneralPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/general.glade")
self.widget = builder.get_object("general_page")
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.autoSave.set_active(self.settings.get("autoSave"))
self.autoSaveDelay.set_value(self.settings.get("autoSaveDelay"))
self.autoSaveNoChanges.set_active(self.settings.get("autoSaveNoChanges"))
self.autoSaveNoChangesDelay.set_value(self.settings.get("autoSaveNoChangesDelay"))
self.saveOnQuit.set_active(self.settings.get("saveOnQuit"))
self.saveToZip.set_active(self.settings.get("saveToZip"))
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)
def _autoSaveToggled(self, button: Gtk.ToggleButton):
self.settings.set("autoSave", button.get_active())
def _autoSaveChanged(self, button: Gtk.SpinButton):
self.settings.set("autoSaveDelay", button.get_value())
def _autoSaveNoChangesToggled(self, button: Gtk.ToggleButton):
self.settings.set("autoSaveNoChanges", button.get_active())
def _autoSaveNoChangesChanged(self, button: Gtk.SpinButton):
self.settings.set("autoSaveNoChangesDelay", button.get_value())
def _saveOnQuitToggled(self, button: Gtk.ToggleButton):
self.settings.set("saveOnQuit", button.get_active())
def _saveToZipToggled(self, button: Gtk.ToggleButton):
self.settings.set("saveToZip", button.get_active())

View file

@ -0,0 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class LabelsPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/labels.glade")
self.widget = builder.get_object("labels_page")

View file

@ -0,0 +1,37 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class RevisionsPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/revisions.glade")
self.widget = builder.get_object("revisions_page")
self.revisionsKeep = builder.get_object("revisions_keep")
self.revisionsSmartremove = builder.get_object("revisions_smartremove")
self.revisionsKeep.set_active(self.settings.get("revisions.keep"))
self.revisionsSmartremove.set_active(self.settings.get("revisions.smartremove"))
self.revisionsKeep.connect("toggled", self._revisionsKeepToggled)
self.revisionsSmartremove.connect("toggled", self._revisionsSmartremoveToggled)
def _revisionsKeepToggled(self, button: Gtk.ToggleButton):
self.settings.set("revisions.keep", button.get_active())
def _revisionsSmartremoveToggled(self, button: Gtk.ToggleButton):
self.settings.set("revisions.smartremove", button.get_active())

View file

@ -0,0 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class StatusPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/status.glade")
self.widget = builder.get_object("status_page")

View file

@ -0,0 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.data import Settings
class ViewsPage:
def __init__(self, settings: Settings):
self.settings = settings
builder = Gtk.Builder()
builder.add_from_file("ui/settings/views.glade")
self.widget = builder.get_object("views_page")

View file

@ -4,70 +4,52 @@
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gtk, Handy
Handy.init()
from manuskript.ui.abstractDialog import AbstractDialog
from manuskript.data import Settings
from manuskript.ui.settings import *
class SettingsWindow(AbstractDialog):
@classmethod
def packPage(cls, window, page_cls, settings: Settings):
if window is None:
return None
try:
page = page_cls(settings)
except Exception as e:
print(e)
return None
if page.widget is None:
return None
window.add(page.widget)
return page
def __init__(self, mainWindow):
AbstractDialog.__init__(self, mainWindow, "ui/settings.glade", "settings_window")
self.generalPage = None
self.revisionsPage = None
self.viewsPage = None
self.labelsPage = None
self.statusPage = None
self.fullscreenPage = None
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.generalPage = SettingsWindow.packPage(window, GeneralPage, self.getSettings())
self.revisionsPage = SettingsWindow.packPage(window, RevisionsPage, self.getSettings())
self.viewsPage = SettingsWindow.packPage(window, ViewsPage, self.getSettings())
self.labelsPage = SettingsWindow.packPage(window, LabelsPage, self.getSettings())
self.statusPage = SettingsWindow.packPage(window, StatusPage, self.getSettings())
self.fullscreenPage = SettingsWindow.packPage(window, FullscreenPage, self.getSettings())
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):
def getSettings(self) -> Settings:
return self.mainWindow.getSettings()

View file

@ -2,7 +2,6 @@
# -*- coding: utf-8 -*-
from manuskript.ui.views.generalView import GeneralView
from manuskript.ui.views.charactersView import CharactersView
from manuskript.ui.views.editorView import EditorView
from manuskript.ui.views.outlineView import OutlineView

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
Copyright (C) 2015-2021 Olivier Keshavjee et al.
This file is part of Manuskript.
Manuskript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Manuskript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
<object class="HdyPreferencesPage" id="fullscreen_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">video-display-symbolic</property>
<property name="title" translatable="yes">Fullscreen</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Fullscreen</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Edit labels</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="height-request">300</property>
<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="GtkIconView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin">6</property>
<property name="model">fullscreen_theme_store</property>
<property name="item-width">48</property>
<property name="spacing">2</property>
<property name="tooltip-column">0</property>
<child>
<object class="GtkCellRendererPixbuf">
<property name="stock_size">5</property>
</object>
<attributes>
<attribute name="pixbuf">1</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererText">
<property name="alignment">center</property>
</object>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</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="halign">start</property>
<property name="valign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkButton">
<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">
<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">gtk-edit</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<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">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<object class="GtkListStore" id="fullscreen_theme_store">
<columns>
<!-- column-name name -->
<column type="gchararray"/>
<!-- column-name preview -->
<column type="GdkPixbuf"/>
</columns>
</object>
</interface>

383
ui/settings/general.glade Normal file
View file

@ -0,0 +1,383 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
Copyright (C) 2015-2021 Olivier Keshavjee et al.
This file is part of Manuskript.
Manuskript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Manuskript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
<object class="HdyPreferencesPage" id="general_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">applications-system-symbolic</property>
<property name="title" translatable="yes">General</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="description" translatable="yes">Restarting Manuskript ensures all settings take effect.</property>
<property name="title" translatable="yes">Application Settings</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Language</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Language:</property>
<property name="justify">right</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="general_language">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="model">languages_store</property>
<property name="active">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Font size</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Font size:</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="general_font_size">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="input-purpose">number</property>
<property name="adjustment">font_size</property>
<property name="numeric">True</property>
<property name="value">4</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Loading</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Automatic loading</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="draw-indicator">True</property>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Saving</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Autosave delay</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<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>
<property name="input-purpose">number</property>
<property name="adjustment">autosave_minutes</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">minutes</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Autosave interval</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<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>
<property name="input-purpose">number</property>
<property name="adjustment">autosave_interval_seconds</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">seconds</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Save on closure</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="draw-indicator">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Single file mode</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="draw-indicator">True</property>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label4"/>
<widget name="label5"/>
</widgets>
</object>
<object class="GtkAdjustment" id="autosave_interval_seconds">
<property name="upper">300</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="autosave_minutes">
<property name="upper">120</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkListStore" id="languages_store">
<columns>
<!-- column-name name -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">English</col>
</row>
<row>
<col id="0" translatable="yes">German</col>
</row>
</data>
</object>
<object class="GtkAdjustment" id="font_size">
<property name="lower">4</property>
<property name="upper">99</property>
<property name="value">4</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
</interface>

41
ui/settings/general.ui~ Normal file
View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<object class="HdyPreferencesPage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="description" translatable="yes">Restarting Manuskript ensures all settings take effect.</property>
<property name="title" translatable="yes">Application Settings</property>
<child>
<placeholder/>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Group 2</property>
<child>
<placeholder/>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Group 3</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</interface>

170
ui/settings/labels.glade Normal file
View file

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
Copyright (C) 2015-2021 Olivier Keshavjee et al.
This file is part of Manuskript.
Manuskript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Manuskript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
<object class="HdyPreferencesPage" id="labels_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emoji-symbols-symbolic</property>
<property name="title" translatable="yes">Labels</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Labels</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Edit labels</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="height-request">300</property>
<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="GtkListBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkColorButton">
<property name="width-request">48</property>
<property name="height-request">48</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">start</property>
<property name="valign">start</property>
</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">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="halign">start</property>
<property name="valign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkButton">
<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">
<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">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</interface>

479
ui/settings/revisions.glade Normal file
View file

@ -0,0 +1,479 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
Copyright (C) 2015-2021 Olivier Keshavjee et al.
This file is part of Manuskript.
Manuskript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Manuskript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
<object class="HdyPreferencesPage" id="revisions_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emoji-recent-symbolic</property>
<property name="title" translatable="yes">Revisions</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="description" translatable="yes">Revisions are a way to keep track of modifications. For each text item, it stores any changes you make to the main text, allowing you to see and restoring previous versions.</property>
<property name="title" translatable="yes">Revisions</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Keep revisions</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="draw-indicator">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Smart remove</property>
<child>
<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>
<property name="receives-default">False</property>
<property name="margin-start">24</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="draw-indicator">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Revision delays</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">24</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">2</property>
<property name="margin-top">12</property>
<property name="margin-bottom">2</property>
<property name="orientation">vertical</property>
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Keep:</property>
</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="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="input-purpose">number</property>
<property name="adjustment">revision_delay1</property>
<property name="numeric">True</property>
<property name="value">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">revisions per minute for the last 10 minutes</property>
<property name="wrap">True</property>
</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">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">1</property>
<property name="input-purpose">number</property>
<property name="adjustment">revision_delay2</property>
<property name="numeric">True</property>
<property name="value">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">revisions per 10 minutes for the last hour</property>
<property name="wrap">True</property>
</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">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">1</property>
<property name="input-purpose">number</property>
<property name="adjustment">revision_delay3</property>
<property name="numeric">True</property>
<property name="value">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">revisions per hour for the last day</property>
<property name="wrap">True</property>
</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">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">1</property>
<property name="input-purpose">number</property>
<property name="adjustment">revision_delay4</property>
<property name="numeric">True</property>
<property name="value">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">revisions per day for the last month</property>
<property name="wrap">True</property>
</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">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="text" translatable="yes">1</property>
<property name="input-purpose">number</property>
<property name="adjustment">revision_delay5</property>
<property name="numeric">True</property>
<property name="value">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">revisions per week till the end of time</property>
<property name="wrap">True</property>
</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">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-end">12</property>
<property name="label" translatable="yes">Smart remove allows you to keep only a certain number of revisions. It is strongly recommended to use it, lest you file will becomes full of thousands of insignificant changes.</property>
<property name="wrap">True</property>
<property name="xalign">0.10000000149011612</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="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">The Revisions feature has been at the source of many reported issues. In this version of Manuskript it has been turned off by default for new projects in order to provide the best experience.</property>
<property name="wrap">True</property>
<property name="xalign">0.10000000149011612</property>
<attributes>
<attribute name="weight" value="semibold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFlowBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">12</property>
<property name="max-children-per-line">2</property>
<child>
<object class="GtkFlowBoxChild">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Why aren't these issues fixed already?</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkFlowBoxChild">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkLinkButton">
<property name="label" translatable="yes">We need your help to make Manuskript better!</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="uri">https://www.theologeek.ch/manuskript/contribute/</property>
</object>
</child>
</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">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<object class="GtkAdjustment" id="revision_delay1">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="revision_delay2">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="revision_delay3">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="revision_delay4">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="revision_delay5">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
</interface>

142
ui/settings/status.glade Normal file
View file

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
Copyright (C) 2015-2021 Olivier Keshavjee et al.
This file is part of Manuskript.
Manuskript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Manuskript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
-->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="0.0"/>
<!-- interface-local-resource-path ../ -->
<!-- interface-license-type gplv3 -->
<!-- interface-name Manuskript -->
<!-- interface-description Manuskript is an open-source tool for writers. -->
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
<object class="HdyPreferencesPage" id="status_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emoji-flags-symbolic</property>
<property name="title" translatable="yes">Status</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">Status</property>
<child>
<object class="HdyPreferencesRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="title">Edit status</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="height-request">300</property>
<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="GtkListBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
</object>
</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="halign">start</property>
<property name="valign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkButton">
<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">
<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">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</interface>

2557
ui/settings/views.glade Normal file

File diff suppressed because it is too large Load diff