mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-12 00:42:32 +12:00
Merge branch 'gtk' of https://github.com/TheShadowOfHassen/manuskript into gtk_template
This commit is contained in:
commit
9c0bf58f27
|
@ -152,8 +152,9 @@ class OutlineText(OutlineItem):
|
|||
metadata, body = self.file.loadMMD(optimized)
|
||||
OutlineItem.loadMetadata(self, metadata)
|
||||
|
||||
if not optimized:
|
||||
if body is not None:
|
||||
self.text = body
|
||||
optimized = False
|
||||
|
||||
self.complete(optimized=optimized)
|
||||
|
||||
|
|
|
@ -24,7 +24,8 @@ class MmdFile(AbstractFile):
|
|||
metaValue = None
|
||||
|
||||
with open(self.path, 'rt', encoding='utf-8') as file:
|
||||
for line in file:
|
||||
line = file.readline()
|
||||
while line:
|
||||
m = metaPattern.match(line)
|
||||
|
||||
if not (m is None):
|
||||
|
@ -33,14 +34,15 @@ class MmdFile(AbstractFile):
|
|||
|
||||
metaKey = m.group(1)
|
||||
metaValue = m.group(2)
|
||||
continue
|
||||
else:
|
||||
m = metaValuePattern.match(line)
|
||||
|
||||
m = metaValuePattern.match(line)
|
||||
if not (m is None):
|
||||
metaValue += "\n" + m.group(2)
|
||||
elif line == "\n":
|
||||
break
|
||||
|
||||
if not (m is None):
|
||||
metaValue += "\n" + m.group(2)
|
||||
elif line == "\n":
|
||||
break
|
||||
line = file.readline()
|
||||
|
||||
if not (metaKey is None):
|
||||
metadata[metaKey] = metaValue
|
||||
|
@ -50,6 +52,14 @@ class MmdFile(AbstractFile):
|
|||
|
||||
if (len(body) > 0) and (body[0] == "\n"):
|
||||
body = body[1:]
|
||||
elif file.seekable():
|
||||
currentPosition = file.tell()
|
||||
|
||||
file.seek(0, 2)
|
||||
endPosition = file.tell()
|
||||
|
||||
if endPosition - currentPosition == 1:
|
||||
body = ""
|
||||
|
||||
return metadata, body
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
from manuskript.ui.util import *
|
||||
|
||||
from manuskript.ui.aboutDialog import AboutDialog
|
||||
from manuskript.ui.compileWindow import CompileWindow
|
||||
from manuskript.ui.importWindow import ImportWindow
|
||||
from manuskript.ui.mainWindow import MainWindow
|
||||
from manuskript.ui.settingsWindow import SettingsWindow
|
||||
from manuskript.ui.startupWindow import StartupWindow
|
||||
|
|
53
manuskript/ui/compileWindow.py
Normal file
53
manuskript/ui/compileWindow.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GObject, Gtk, Handy
|
||||
|
||||
Handy.init()
|
||||
|
||||
from manuskript.ui.abstractDialog import AbstractDialog
|
||||
|
||||
from manuskript.data import Project
|
||||
|
||||
|
||||
class CompileWindow(AbstractDialog):
|
||||
|
||||
def __init__(self, mainWindow):
|
||||
AbstractDialog.__init__(self, mainWindow, "ui/compile.glade", "compile_window")
|
||||
|
||||
self.headerBar = None
|
||||
self.back = None
|
||||
self.forward = None
|
||||
self.previewLeaflet = None
|
||||
self.manageExportersButton = None
|
||||
|
||||
def initWindow(self, builder, window):
|
||||
self.headerBar = builder.get_object("header_bar")
|
||||
self.back = builder.get_object("back")
|
||||
self.forward = builder.get_object("forward")
|
||||
self.previewLeaflet = builder.get_object("preview_leaflet")
|
||||
self.manageExportersButton = builder.get_object("manage_exporters")
|
||||
|
||||
self.previewLeaflet.bind_property("folded", self.back, "visible",
|
||||
GObject.BindingFlags.SYNC_CREATE)
|
||||
self.previewLeaflet.bind_property("folded", self.forward, "visible",
|
||||
GObject.BindingFlags.SYNC_CREATE)
|
||||
self.previewLeaflet.bind_property("folded", self.headerBar, "show-close-button",
|
||||
GObject.BindingFlags.SYNC_CREATE |
|
||||
GObject.BindingFlags.INVERT_BOOLEAN)
|
||||
|
||||
self.back.connect("clicked", self._backClicked)
|
||||
self.forward.connect("clicked", self._forwardClicked)
|
||||
|
||||
def _backClicked(self, button: Gtk.Button):
|
||||
if self.previewLeaflet.get_visible_child_name() == "preview_box":
|
||||
self.previewLeaflet.set_visible_child_name("settings_box")
|
||||
else:
|
||||
self.hide()
|
||||
|
||||
def _forwardClicked(self, button: Gtk.Button):
|
||||
if self.previewLeaflet.get_visible_child_name() == "settings_box":
|
||||
self.previewLeaflet.set_visible_child_name("preview_box")
|
51
manuskript/ui/importWindow.py
Normal file
51
manuskript/ui/importWindow.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GObject, Gtk, Handy
|
||||
|
||||
Handy.init()
|
||||
|
||||
from manuskript.ui.abstractDialog import AbstractDialog
|
||||
|
||||
from manuskript.data import Project
|
||||
|
||||
|
||||
class ImportWindow(AbstractDialog):
|
||||
|
||||
def __init__(self, mainWindow):
|
||||
AbstractDialog.__init__(self, mainWindow, "ui/import.glade", "import_window")
|
||||
|
||||
self.headerBar = None
|
||||
self.back = None
|
||||
self.forward = None
|
||||
self.previewLeaflet = None
|
||||
|
||||
def initWindow(self, builder, window):
|
||||
self.headerBar = builder.get_object("header_bar")
|
||||
self.back = builder.get_object("back")
|
||||
self.forward = builder.get_object("forward")
|
||||
self.previewLeaflet = builder.get_object("preview_leaflet")
|
||||
|
||||
self.previewLeaflet.bind_property("folded", self.back, "visible",
|
||||
GObject.BindingFlags.SYNC_CREATE)
|
||||
self.previewLeaflet.bind_property("folded", self.forward, "visible",
|
||||
GObject.BindingFlags.SYNC_CREATE)
|
||||
self.previewLeaflet.bind_property("folded", self.headerBar, "show-close-button",
|
||||
GObject.BindingFlags.SYNC_CREATE |
|
||||
GObject.BindingFlags.INVERT_BOOLEAN)
|
||||
|
||||
self.back.connect("clicked", self._backClicked)
|
||||
self.forward.connect("clicked", self._forwardClicked)
|
||||
|
||||
def _backClicked(self, button: Gtk.Button):
|
||||
if self.previewLeaflet.get_visible_child_name() == "preview_box":
|
||||
self.previewLeaflet.set_visible_child_name("settings_box")
|
||||
else:
|
||||
self.hide()
|
||||
|
||||
def _forwardClicked(self, button: Gtk.Button):
|
||||
if self.previewLeaflet.get_visible_child_name() == "settings_box":
|
||||
self.previewLeaflet.set_visible_child_name("preview_box")
|
|
@ -15,6 +15,8 @@ from manuskript.ui.views import *
|
|||
|
||||
from manuskript.ui.tools import *
|
||||
from manuskript.ui.aboutDialog import AboutDialog
|
||||
from manuskript.ui.compileWindow import CompileWindow
|
||||
from manuskript.ui.importWindow import ImportWindow
|
||||
from manuskript.ui.settingsWindow import SettingsWindow
|
||||
from manuskript.ui.startupWindow import StartupWindow
|
||||
from manuskript.ui.util import bindMenuItem
|
||||
|
@ -76,6 +78,8 @@ class MainWindow:
|
|||
self.aboutDialog = AboutDialog(self)
|
||||
self.frequencyWindow = FrequencyWindow(self)
|
||||
self.settingsWindow = SettingsWindow(self)
|
||||
self.importWindow = ImportWindow(self)
|
||||
self.compileWindow = CompileWindow(self)
|
||||
|
||||
self.windows = [
|
||||
self.startupWindow,
|
||||
|
@ -87,6 +91,8 @@ class MainWindow:
|
|||
bindMenuItem(builder, "open_menu_item", self._openAction)
|
||||
bindMenuItem(builder, "save_menu_item", self._saveAction)
|
||||
bindMenuItem(builder, "close_menu_item", self._closeAction)
|
||||
bindMenuItem(builder, "import_menu_item", self._importAction)
|
||||
bindMenuItem(builder, "compile_menu_item", self._compileAction)
|
||||
bindMenuItem(builder, "quit_menu_item", self._quitAction)
|
||||
|
||||
bindMenuItem(builder, "settings_menu_item", self._settingsAction)
|
||||
|
@ -112,6 +118,12 @@ class MainWindow:
|
|||
|
||||
def _closeAction(self, menuItem: Gtk.MenuItem):
|
||||
self.closeProject()
|
||||
|
||||
def _importAction(self, menuItem: Gtk.MenuItem):
|
||||
self.importWindow.show()
|
||||
|
||||
def _compileAction(self, menuItem: Gtk.MenuItem):
|
||||
self.compileWindow.show()
|
||||
|
||||
def _quitAction(self, menuItem: Gtk.MenuItem):
|
||||
self.exit(True)
|
||||
|
|
|
@ -4,9 +4,22 @@
|
|||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GObject, Gtk, Handy
|
||||
from gi.repository import GObject, Gtk
|
||||
|
||||
import re
|
||||
|
||||
from enum import Enum, unique
|
||||
|
||||
from manuskript.data import OutlineFolder, OutlineText, OutlineState, Project
|
||||
from manuskript.ui.abstractDialog import AbstractDialog
|
||||
from manuskript.util import validString, validInt
|
||||
|
||||
|
||||
@unique
|
||||
class AnalyzeStatus(Enum):
|
||||
NONE = 0
|
||||
WORDS = 1
|
||||
PHRASES = 2
|
||||
|
||||
|
||||
class FrequencyWindow(AbstractDialog):
|
||||
|
@ -14,18 +27,56 @@ class FrequencyWindow(AbstractDialog):
|
|||
def __init__(self, mainWindow):
|
||||
AbstractDialog.__init__(self, mainWindow, "ui/frequency.glade", "frequency_window")
|
||||
|
||||
self.analyzeStatus = AnalyzeStatus.NONE
|
||||
self.analyzeTexts = list()
|
||||
self.outlineCompletion = list()
|
||||
self.analyzeCompleted = 0
|
||||
|
||||
self.headerBar = None
|
||||
self.back = None
|
||||
self.wordLeaflet = None
|
||||
self.wordsProgress = None
|
||||
self.analyzeWords = None
|
||||
self.phrasesProgress = None
|
||||
self.analyzePhrases = None
|
||||
self.wordEntry = None
|
||||
self.removeWord = None
|
||||
self.addWord = None
|
||||
|
||||
self.excludeWordSelection = None
|
||||
self.excludeWordsStore = None
|
||||
self.wordsFrequencyStore = None
|
||||
self.phrasesFrequencyStore = None
|
||||
|
||||
self.phraseMinimum = None
|
||||
self.phraseMaximum = None
|
||||
self.wordSize = None
|
||||
|
||||
def initWindow(self, builder, window):
|
||||
self.headerBar = builder.get_object("header_bar")
|
||||
self.back = builder.get_object("back")
|
||||
self.wordLeaflet = builder.get_object("word_leaflet")
|
||||
self.wordsProgress = builder.get_object("words_progress")
|
||||
self.analyzeWords = builder.get_object("analyze_words")
|
||||
self.phrasesProgress = builder.get_object("phrases_progress")
|
||||
self.analyzePhrases = builder.get_object("analyze_phrases")
|
||||
self.wordEntry = builder.get_object("word_entry")
|
||||
self.removeWord = builder.get_object("remove_word")
|
||||
self.addWord = builder.get_object("add_word")
|
||||
|
||||
self.excludeWordSelection = builder.get_object("exclude_word_selection")
|
||||
self.excludeWordsStore = builder.get_object("exclude_words_store")
|
||||
self.wordsFrequencyStore = builder.get_object("words_frequency_store")
|
||||
self.phrasesFrequencyStore = builder.get_object("phrases_frequency_store")
|
||||
|
||||
self.filteredFrequencyStore = builder.get_object("filtered_frequency_store")
|
||||
|
||||
self.filteredFrequencyStore.set_visible_func(self._filterFrequencies)
|
||||
self.filteredFrequencyStore.refilter()
|
||||
|
||||
self.phraseMinimum = builder.get_object("phrase_minimum")
|
||||
self.phraseMaximum = builder.get_object("phrase_maximum")
|
||||
self.wordSize = builder.get_object("word_size")
|
||||
|
||||
self.wordLeaflet.bind_property("folded", self.back, "visible",
|
||||
GObject.BindingFlags.SYNC_CREATE)
|
||||
|
@ -35,12 +86,182 @@ class FrequencyWindow(AbstractDialog):
|
|||
|
||||
self.back.connect("clicked", self._backClicked)
|
||||
self.analyzeWords.connect("clicked", self._analyzeWordsClicked)
|
||||
self.analyzePhrases.connect("clicked", self._analyzePhrasesClicked)
|
||||
self.wordSize.connect("value-changed", self._wordSizeChanged)
|
||||
self.excludeWordSelection.connect("changed", self._excludeWordSelectionChanged)
|
||||
self.removeWord.connect("clicked", self._removeWordClicked)
|
||||
self.addWord.connect("clicked", self._addWordClicked)
|
||||
|
||||
def getProject(self) -> Project:
|
||||
return self.mainWindow.getProject()
|
||||
|
||||
def _filterFrequencies(self, model, iterator, userdata):
|
||||
word = model[iterator][0]
|
||||
|
||||
if word is None:
|
||||
return False
|
||||
|
||||
word_size = validInt(self.wordSize.get_value())
|
||||
|
||||
if len(word) < word_size:
|
||||
return False
|
||||
|
||||
iter = self.excludeWordsStore.get_iter_first()
|
||||
while iter is not None:
|
||||
excluded = self.excludeWordsStore.get_value(iter, 0)
|
||||
if word == excluded:
|
||||
return False
|
||||
|
||||
iter = self.excludeWordsStore.iter_next(iter)
|
||||
|
||||
return True
|
||||
|
||||
def _backClicked(self, button: Gtk.Button):
|
||||
if self.wordLeaflet.get_visible_child_name() == "wordlist_view":
|
||||
self.wordLeaflet.set_visible_child_name("wordfilter_view")
|
||||
else:
|
||||
self.hide()
|
||||
|
||||
def __completeOutlineItem(self):
|
||||
outline_item = self.outlineCompletion.pop(0)
|
||||
|
||||
if isinstance(outline_item, OutlineFolder):
|
||||
for item in outline_item:
|
||||
self.outlineCompletion.append(item)
|
||||
elif isinstance(outline_item, OutlineText):
|
||||
if outline_item.state != OutlineState.COMPLETE:
|
||||
outline_item.load(False)
|
||||
|
||||
self.analyzeTexts.append(outline_item.text)
|
||||
|
||||
self.analyzeCompleted = self.analyzeCompleted + 1
|
||||
|
||||
incomplete = len(self.outlineCompletion)
|
||||
complete = self.analyzeCompleted
|
||||
fraction = 1.0 * complete / (complete + incomplete)
|
||||
|
||||
if self.analyzeStatus == AnalyzeStatus.WORDS:
|
||||
self.wordsProgress.set_fraction(fraction)
|
||||
elif self.analyzeStatus == AnalyzeStatus.PHRASES:
|
||||
self.phrasesProgress.set_fraction(fraction)
|
||||
|
||||
if incomplete > 0:
|
||||
return True
|
||||
|
||||
patterns = list()
|
||||
|
||||
if self.analyzeStatus == AnalyzeStatus.WORDS:
|
||||
word_size = validInt(self.wordSize.get_value())
|
||||
|
||||
patterns.append(re.compile(r"\w{" + str(word_size) + r",}"))
|
||||
elif self.analyzeStatus == AnalyzeStatus.PHRASES:
|
||||
phrase_minimum = validInt(self.phraseMinimum.get_value())
|
||||
phrase_maximum = validInt(self.phraseMaximum.get_value())
|
||||
|
||||
for n in range(phrase_minimum, phrase_maximum + 1):
|
||||
patterns.append(re.compile(r"\w+" + r"\s+\w+" * (n - 1)))
|
||||
|
||||
frequencies = dict()
|
||||
text = "\n".join(self.analyzeTexts)
|
||||
|
||||
for pattern in patterns:
|
||||
for match in pattern.findall(text):
|
||||
if match is None:
|
||||
continue
|
||||
|
||||
if match in frequencies:
|
||||
frequencies[match] = frequencies[match] + 1
|
||||
else:
|
||||
frequencies[match] = 1
|
||||
|
||||
if self.analyzeStatus == AnalyzeStatus.WORDS:
|
||||
self.wordsFrequencyStore.clear()
|
||||
|
||||
for word, frequency in frequencies.items():
|
||||
tree_iter = self.wordsFrequencyStore.append()
|
||||
|
||||
if tree_iter is None:
|
||||
continue
|
||||
|
||||
self.wordsFrequencyStore.set_value(tree_iter, 0, validString(word))
|
||||
self.wordsFrequencyStore.set_value(tree_iter, 1, validInt(frequency))
|
||||
|
||||
self.wordLeaflet.set_visible_child_name("wordlist_view")
|
||||
elif self.analyzeStatus == AnalyzeStatus.PHRASES:
|
||||
self.phrasesFrequencyStore.clear()
|
||||
|
||||
for phrase, frequency in frequencies.items():
|
||||
tree_iter = self.phrasesFrequencyStore.append()
|
||||
|
||||
if tree_iter is None:
|
||||
continue
|
||||
|
||||
self.phrasesFrequencyStore.set_value(tree_iter, 0, validString(phrase))
|
||||
self.phrasesFrequencyStore.set_value(tree_iter, 1, validInt(frequency))
|
||||
|
||||
self.analyzeStatus = AnalyzeStatus.NONE
|
||||
self.analyzeTexts = list()
|
||||
|
||||
self.analyzeWords.set_sensitive(True)
|
||||
self.analyzePhrases.set_sensitive(True)
|
||||
return False
|
||||
|
||||
def analyze(self, status: AnalyzeStatus):
|
||||
if self.analyzeStatus != AnalyzeStatus.NONE:
|
||||
return
|
||||
|
||||
project = self.getProject()
|
||||
|
||||
if project is None:
|
||||
return
|
||||
|
||||
self.analyzeWords.set_sensitive(False)
|
||||
self.analyzePhrases.set_sensitive(False)
|
||||
|
||||
self.analyzeStatus = status
|
||||
|
||||
if len(self.outlineCompletion) == 0:
|
||||
self.analyzeTexts = list()
|
||||
self.analyzeCompleted = 0
|
||||
|
||||
if self.analyzeStatus == AnalyzeStatus.WORDS:
|
||||
self.wordsProgress.set_fraction(0.0)
|
||||
elif self.analyzeStatus == AnalyzeStatus.PHRASES:
|
||||
self.phrasesProgress.set_fraction(0.0)
|
||||
|
||||
GObject.idle_add(self.__completeOutlineItem)
|
||||
for outline_item in project.outline:
|
||||
self.outlineCompletion.append(outline_item)
|
||||
|
||||
def _analyzeWordsClicked(self, button: Gtk.Button):
|
||||
self.wordLeaflet.set_visible_child_name("wordlist_view")
|
||||
self.analyze(AnalyzeStatus.WORDS)
|
||||
|
||||
def _analyzePhrasesClicked(self, button: Gtk.Button):
|
||||
self.analyze(AnalyzeStatus.PHRASES)
|
||||
|
||||
def _wordSizeChanged(self, adjustment: Gtk.Adjustment):
|
||||
self.filteredFrequencyStore.refilter()
|
||||
|
||||
def _excludeWordSelectionChanged(self, selection: Gtk.TreeSelection):
|
||||
model, tree_iter = selection.get_selected()
|
||||
|
||||
self.removeWord.set_sensitive(tree_iter is not None)
|
||||
|
||||
def _removeWordClicked(self, button: Gtk.Button):
|
||||
model, tree_iter = self.excludeWordSelection.get_selected()
|
||||
|
||||
if tree_iter is None:
|
||||
return
|
||||
|
||||
self.excludeWordsStore.remove(tree_iter)
|
||||
self.filteredFrequencyStore.refilter()
|
||||
|
||||
def _addWordClicked(self, button: Gtk.Button):
|
||||
tree_iter = self.excludeWordsStore.append()
|
||||
|
||||
if tree_iter is None:
|
||||
return
|
||||
|
||||
word = self.wordEntry.get_buffer().get_text()
|
||||
self.excludeWordsStore.set_value(tree_iter, 0, word)
|
||||
self.filteredFrequencyStore.refilter()
|
||||
|
|
|
@ -270,8 +270,6 @@ class EditorView:
|
|||
self.editorItems = self.project.outline.items
|
||||
elif type(outlineItem) is OutlineFolder:
|
||||
self.editorItems = outlineItem.items
|
||||
elif type(outlineItem) is OutlineText:
|
||||
self.__appendOutlineItemText(outlineItem)
|
||||
|
||||
if outlineItem is None:
|
||||
for item in self.editorItems:
|
||||
|
|
875
ui/compile.glade
Normal file
875
ui/compile.glade
Normal file
|
@ -0,0 +1,875 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0
|
||||
|
||||
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="GtkListStore" id="file_format_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name mimeType -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Markdown</col>
|
||||
<col id="1" translatable="yes">text/markdown</col>
|
||||
<col id="2" translatable="yes">text-x-generic</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Folder</col>
|
||||
<col id="1" translatable="yes">directory</col>
|
||||
<col id="2" translatable="yes">folder</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">OPML</col>
|
||||
<col id="1" translatable="yes">text/opml</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Mind Map</col>
|
||||
<col id="1" translatable="yes">text/mind-map</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="HdyWindow" id="compile_window">
|
||||
<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">Export</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="back">
|
||||
<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">go-previous-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="forward">
|
||||
<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">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</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="HdyLeaflet" id="preview_leaflet">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="width-request">300</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">4</property>
|
||||
<property name="margin-end">4</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Format:</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="GtkComboBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="model">file_format_store</property>
|
||||
<property name="active">0</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="icon-name">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="manage_exporters">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">preferences-other-symbolic</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">Manage Exporters</property>
|
||||
<property name="ellipsize">end</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</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="margin-start">8</property>
|
||||
<property name="margin-end">8</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</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="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="label" translatable="yes">Settings</property>
|
||||
<property name="xalign">0</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="GtkExpander">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<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>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Decide here what will be included in the final export.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<!-- n-columns=3 n-rows=3 -->
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">4</property>
|
||||
<property name="column-homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Type</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Title</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Text</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes"> </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="left-attach">1</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes"> </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="left-attach">2</property>
|
||||
<property name="top-attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes"> </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="left-attach">1</property>
|
||||
<property name="top-attach">2</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="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">folder-symbolic</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">Folder</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</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="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">text-x-generic-symbolic</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">Folder</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">I need more granularity</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">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</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="border-width">4</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkExpander">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</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">Filters what items will be included in the final export.
|
||||
(Not fully implemented yet.)</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Ignore compile status (include all items)</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">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Subitems of:</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">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Labels</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">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Status</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">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Filters</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Content</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="GtkExpander">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Separations</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkExpander">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Transformations</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkExpander">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Preview</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">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">settings_box</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="width-request">250</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<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="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="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="label" translatable="yes">Preview</property>
|
||||
<property name="xalign">0</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="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="has-subtitle">False</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">4</property>
|
||||
<property name="margin-end">4</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="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">emblem-synchronizing-symbolic</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">Preview</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</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="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">document-revert-symbolic</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">Export</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</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="pack-type">end</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">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">preview_box</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="GtkTreeStore" id="file_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="under_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
</interface>
|
|
@ -65,16 +65,6 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="editable">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tag">
|
||||
<object class="GtkTextTag">
|
||||
<property name="font">Normal</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tag">
|
||||
<object class="GtkTextTag">
|
||||
<property name="font">Normal</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tag">
|
||||
<object class="GtkTextTag" id="h2_tag">
|
||||
<property name="name">h2</property>
|
||||
|
@ -173,7 +163,21 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<object class="GtkTextTag" id="p_tag">
|
||||
<property name="name">p</property>
|
||||
<property name="font">Normal</property>
|
||||
<property name="pixels-above-lines">4</property>
|
||||
<property name="pixels-below-lines">4</property>
|
||||
<property name="left-margin">8</property>
|
||||
<property name="indent">20</property>
|
||||
<property name="right-margin">8</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tag">
|
||||
<object class="GtkTextTag" id="line_tag">
|
||||
<property name="name">line</property>
|
||||
<property name="font">Normal</property>
|
||||
<property name="editable">False</property>
|
||||
<property name="left-margin">4</property>
|
||||
<property name="strikethrough">True</property>
|
||||
<property name="right-margin">4</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -397,6 +401,11 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<property name="left-margin">8</property>
|
||||
<property name="right-margin">8</property>
|
||||
<property name="top-margin">4</property>
|
||||
<property name="bottom-margin">4</property>
|
||||
<property name="indent">4</property>
|
||||
<property name="buffer">editor_text</property>
|
||||
<property name="input-hints">GTK_INPUT_HINT_SPELLCHECK | GTK_INPUT_HINT_WORD_COMPLETION | GTK_INPUT_HINT_NONE</property>
|
||||
</object>
|
||||
|
|
|
@ -27,6 +27,12 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<!-- interface-name Manuskript -->
|
||||
<!-- interface-description Manuskript is an open-source tool for writers. -->
|
||||
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
|
||||
<object class="GtkListStore" id="exclude_words_store">
|
||||
<columns>
|
||||
<!-- column-name word -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="phrase_maximum">
|
||||
<property name="lower">2</property>
|
||||
<property name="upper">99</property>
|
||||
|
@ -41,6 +47,14 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkListStore" id="phrases_frequency_store">
|
||||
<columns>
|
||||
<!-- column-name phrase -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name frequency -->
|
||||
<column type="guint"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="word_size">
|
||||
<property name="lower">1</property>
|
||||
<property name="upper">99</property>
|
||||
|
@ -48,6 +62,17 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkListStore" id="words_frequency_store">
|
||||
<columns>
|
||||
<!-- column-name word -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name frequency -->
|
||||
<column type="guint"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkTreeModelFilter" id="filtered_frequency_store">
|
||||
<property name="child-model">words_frequency_store</property>
|
||||
</object>
|
||||
<object class="HdyWindow" id="frequency_window">
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
|
@ -181,9 +206,26 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<object class="GtkTreeView">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="model">exclude_words_store</property>
|
||||
<property name="headers-visible">False</property>
|
||||
<property name="headers-clickable">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="exclude_word_selection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Word</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -201,8 +243,9 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="can-focus">False</property>
|
||||
<property name="spacing">8</property>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="remove_word">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
|
@ -220,7 +263,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry">
|
||||
<object class="GtkEntry" id="word_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
|
@ -231,7 +274,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="add_word">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
|
@ -274,10 +317,9 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLevelBar">
|
||||
<object class="GtkProgressBar" id="words_progress">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">12</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -316,9 +358,43 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<object class="GtkTreeView">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="model">filtered_frequency_store</property>
|
||||
<property name="search-column">0</property>
|
||||
<property name="show-expanders">False</property>
|
||||
<property name="tooltip-column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Word</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="sort-column-id">0</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Frequency</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="sort-indicator">True</property>
|
||||
<property name="sort-column-id">1</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -484,9 +560,43 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<object class="GtkTreeView">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="model">phrases_frequency_store</property>
|
||||
<property name="search-column">0</property>
|
||||
<property name="show-expanders">False</property>
|
||||
<property name="tooltip-column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Phrase</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="sort-column-id">0</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<property name="title" translatable="yes">Frequency</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="sort-indicator">True</property>
|
||||
<property name="sort-column-id">1</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -500,7 +610,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar">
|
||||
<object class="GtkProgressBar" id="phrases_progress">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
|
|
114
ui/import.glade
114
ui/import.glade
|
@ -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.
|
||||
|
||||
|
@ -27,7 +27,55 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<!-- interface-name Manuskript -->
|
||||
<!-- interface-description Manuskript is an open-source tool for writers. -->
|
||||
<!-- interface-copyright 2015-2021 Olivier Keshavjee et al. -->
|
||||
<object class="HdyWindow">
|
||||
<object class="GtkListStore" id="file_format_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name mimeType -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Markdown</col>
|
||||
<col id="1" translatable="yes">text/markdown</col>
|
||||
<col id="2" translatable="yes">text-x-generic</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Folder</col>
|
||||
<col id="1" translatable="yes">directory</col>
|
||||
<col id="2" translatable="yes">folder</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">OPML</col>
|
||||
<col id="1" translatable="yes">text/opml</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Mind Map</col>
|
||||
<col id="1" translatable="yes">text/mind-map</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="file_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="under_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="HdyWindow" id="import_window">
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
|
@ -39,12 +87,12 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="HdyHeaderBar">
|
||||
<object class="HdyHeaderBar" id="header_bar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="title" translatable="yes">Import</property>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="back">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
|
@ -58,7 +106,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="forward">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
|
@ -85,7 +133,7 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="HdyLeaflet">
|
||||
<object class="HdyLeaflet" id="preview_leaflet">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
|
@ -366,6 +414,9 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">settings_box</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
|
@ -609,6 +660,9 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">preview_box</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -620,52 +674,4 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
|
|||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkListStore" id="file_format_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name mimeType -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Markdown</col>
|
||||
<col id="1" translatable="yes">text/markdown</col>
|
||||
<col id="2" translatable="yes">text-x-generic</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Folder</col>
|
||||
<col id="1" translatable="yes">directory</col>
|
||||
<col id="2" translatable="yes">folder</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">OPML</col>
|
||||
<col id="1" translatable="yes">text/opml</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Mind Map</col>
|
||||
<col id="1" translatable="yes">text/mind-map</col>
|
||||
<col id="2" translatable="yes">text-x-generic-template</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="file_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="under_store">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name icon -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
Loading…
Reference in a new issue