mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-14 09:52:27 +12:00
Saving and loading some settings, in an ugly way
This commit is contained in:
parent
9452b32f50
commit
f89998743f
|
@ -1,9 +1,6 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
|
||||
from ui.mainWindow import *
|
||||
|
@ -14,6 +11,7 @@ from models.outlineModel import *
|
|||
from models.persosProxyModel import *
|
||||
from functions import *
|
||||
from settingsWindow import *
|
||||
import settings
|
||||
|
||||
# Spell checker support
|
||||
try:
|
||||
|
@ -212,6 +210,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
self.actLabels.triggered.connect(self.settingsLabel)
|
||||
self.actStatus.triggered.connect(self.settingsStatus)
|
||||
self.actQuit.triggered.connect(self.close)
|
||||
self.generateViewMenu()
|
||||
|
||||
#Debug
|
||||
self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"])
|
||||
|
@ -378,6 +377,21 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(project))
|
||||
loadStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(project))
|
||||
self.mdlOutline.loadFromXML("{}/outline.xml".format(project))
|
||||
settings.load("{}/settings.pickle".format(project))
|
||||
|
||||
# Stuff from settings
|
||||
self.generateViewMenu()
|
||||
self.sldCorkSizeFactor.setValue(settings.corkSizeFactor)
|
||||
self.actSpellcheck.setChecked(settings.spellcheck)
|
||||
self.updateMenuDict()
|
||||
self.setDictionary()
|
||||
self.redacEditor.setFolderView(settings.folderView)
|
||||
if settings.folderView == "text":
|
||||
self.btnRedacFolderText.setChecked(True)
|
||||
elif settings.folderView == "cork":
|
||||
self.btnRedacFolderCork.setChecked(True)
|
||||
elif settings.folderView == "outline":
|
||||
self.btnRedacFolderOutline.setChecked(True)
|
||||
|
||||
# Stuff
|
||||
self.checkPersosID()
|
||||
|
@ -393,9 +407,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
def closeEvent(self, event):
|
||||
# Save State and geometry
|
||||
settings = QSettings(qApp.organizationName(), qApp.applicationName())
|
||||
settings.setValue("geometry", self.saveGeometry())
|
||||
settings.setValue("windowState", self.saveState())
|
||||
stgs = QSettings(qApp.organizationName(), qApp.applicationName())
|
||||
stgs.setValue("geometry", self.saveGeometry())
|
||||
stgs.setValue("windowState", self.saveState())
|
||||
|
||||
# Save data from models
|
||||
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
||||
|
@ -404,6 +418,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
saveStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
|
||||
saveStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
|
||||
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
|
||||
settings.save("{}/settings.pickle".format(self.currentProject))
|
||||
|
||||
# closeEvent
|
||||
QMainWindow.closeEvent(self, event)
|
||||
|
@ -500,23 +515,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
if enchant:
|
||||
self.menuDict = QMenu(self.tr("Dictionary"))
|
||||
self.menuDictGroup = QActionGroup(self)
|
||||
|
||||
for i in enchant.list_dicts():
|
||||
a = QAction(str(i[0]), self)
|
||||
a.setCheckable(True)
|
||||
a.triggered.connect(self.setDictionary)
|
||||
if str(i[0]) == enchant.get_default_language(): # "fr_CH"
|
||||
a.setChecked(True)
|
||||
self.menuDictGroup.addAction(a)
|
||||
self.menuDict.addAction(a)
|
||||
|
||||
self.updateMenuDict()
|
||||
self.menuTools.addMenu(self.menuDict)
|
||||
|
||||
self.actSpellcheck.toggled.connect(self.redacEditor.toggleSpellcheck)
|
||||
self.actSpellcheck.toggled.connect(self.redacMetadata.toggleSpellcheck)
|
||||
self.actSpellcheck.toggled.connect(self.outlineItemEditor.toggleSpellcheck)
|
||||
self.actSpellcheck.toggled.connect(self.toggleSpellcheck)
|
||||
self.dictChanged.connect(self.redacEditor.setDict)
|
||||
|
||||
self.dictChanged.connect(self.redacMetadata.setDict)
|
||||
self.dictChanged.connect(self.outlineItemEditor.setDict)
|
||||
|
||||
else:
|
||||
# No Spell check support
|
||||
|
@ -528,14 +533,33 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
self.btnRedacFullscreen.clicked.connect(self.redacEditor.showFullscreen)
|
||||
|
||||
def updateMenuDict(self):
|
||||
self.menuDict.clear()
|
||||
for i in enchant.list_dicts():
|
||||
a = QAction(str(i[0]), self)
|
||||
a.setCheckable(True)
|
||||
a.triggered.connect(self.setDictionary)
|
||||
if settings.dict == None:
|
||||
settings.dict = enchant.get_default_language()
|
||||
if str(i[0]) == settings.dict:
|
||||
a.setChecked(True)
|
||||
self.menuDictGroup.addAction(a)
|
||||
self.menuDict.addAction(a)
|
||||
|
||||
def setDictionary(self):
|
||||
for i in self.menuDictGroup.actions():
|
||||
if i.isChecked():
|
||||
self.dictChanged.emit(i.text().replace("&", ""))
|
||||
settings.dict = i.text().replace("&", "")
|
||||
|
||||
def openPyEnchantWebPage(self):
|
||||
QDesktopServices.openUrl(QUrl("http://pythonhosted.org/pyenchant/"))
|
||||
|
||||
def toggleSpellcheck(self, val):
|
||||
settings.spellcheck = val
|
||||
self.redacEditor.toggleSpellcheck(val)
|
||||
self.redacMetadata.toggleSpellcheck(val)
|
||||
self.outlineItemEditor.toggleSpellcheck(val)
|
||||
|
||||
####################################################################################################
|
||||
# SETTINGS #
|
||||
|
@ -558,4 +582,69 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
if tab:
|
||||
self.sw.tabWidget.setCurrentIndex(tab)
|
||||
self.sw.show()
|
||||
|
||||
|
||||
####################################################################################################
|
||||
# VIEW MENU #
|
||||
####################################################################################################
|
||||
|
||||
def generateViewMenu(self):
|
||||
|
||||
values = [
|
||||
(self.tr("Nothing"), "Nothing"),
|
||||
(self.tr("POV"), "POV"),
|
||||
(self.tr("Label"), "Label"),
|
||||
(self.tr("Progress"), "Progress"),
|
||||
(self.tr("Compile"), "Compile"),
|
||||
]
|
||||
|
||||
menus = [
|
||||
(self.tr("Tree"), "Tree"),
|
||||
(self.tr("Index cards"), "Cork"),
|
||||
(self.tr("Outline"), "Outline")
|
||||
]
|
||||
|
||||
submenus = {
|
||||
"Tree": [
|
||||
(self.tr("Icon color"), "Icon"),
|
||||
(self.tr("Text color"), "Text"),
|
||||
(self.tr("Background color"), "Background"),
|
||||
],
|
||||
"Cork": [
|
||||
(self.tr("Icon"), "Icon"),
|
||||
(self.tr("Text"), "Text"),
|
||||
(self.tr("Background"), "Background"),
|
||||
(self.tr("Border"), "Border"),
|
||||
(self.tr("Corner"), "Corner"),
|
||||
],
|
||||
"Outline": [
|
||||
(self.tr("Icon color"), "Icon"),
|
||||
(self.tr("Text color"), "Text"),
|
||||
(self.tr("Background color"), "Background"),
|
||||
],
|
||||
}
|
||||
|
||||
self.menuView.clear()
|
||||
|
||||
#print("Generating menus with", settings.viewSettings)
|
||||
|
||||
for mnu, mnud in menus:
|
||||
m = QMenu(mnu, self.menuView)
|
||||
for s, sd in submenus[mnud]:
|
||||
m2 = QMenu(s, m)
|
||||
agp = QActionGroup(m2)
|
||||
for v, vd in values:
|
||||
a = QAction(v, m)
|
||||
a.setCheckable(True)
|
||||
a.setData("{},{},{}".format(mnud, sd, vd))
|
||||
if settings.viewSettings[mnud][sd] == vd:
|
||||
a.setChecked(True)
|
||||
a.triggered.connect(self.setViewElement)
|
||||
agp.addAction(a)
|
||||
m2.addAction(a)
|
||||
m.addMenu(m2)
|
||||
self.menuView.addMenu(m)
|
||||
|
||||
def setViewElement(self):
|
||||
action = self.sender()
|
||||
item, part, element = action.data().split(",")
|
||||
settings.viewSettings[item][part] = element
|
86
src/settings.py
Normal file
86
src/settings.py
Normal file
|
@ -0,0 +1,86 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pickle
|
||||
import pprint
|
||||
|
||||
viewSettings = {
|
||||
"Tree": {
|
||||
"Icon": "Nothing",
|
||||
"Text": "Compile",
|
||||
"Background": "Nothing",
|
||||
},
|
||||
"Cork": {
|
||||
"Icon": "Nothing",
|
||||
"Text": "Nothing",
|
||||
"Background": "Nothing",
|
||||
"Corner": "Label",
|
||||
"Border": "Nothing",
|
||||
},
|
||||
"Outline": {
|
||||
"Icon": "Nothing",
|
||||
"Text": "Compile",
|
||||
"Background": "Nothing",
|
||||
},
|
||||
}
|
||||
|
||||
spellcheck = False
|
||||
dict = None
|
||||
corkSizeFactor = 100
|
||||
folderView = "cork"
|
||||
|
||||
def save(filename):
|
||||
|
||||
global spellcheck, dict, corkSliderFactor, viewSettings, corkSizeFactor, folderView
|
||||
|
||||
allSettings = {
|
||||
"viewSettings": viewSettings,
|
||||
"dict": dict,
|
||||
"spellcheck": spellcheck,
|
||||
"corkSizeFactor": corkSizeFactor,
|
||||
"folderView": folderView
|
||||
}
|
||||
|
||||
#pp=pprint.PrettyPrinter(indent=4, compact=False)
|
||||
#print("Saving:")
|
||||
#pp.pprint(allSettings)
|
||||
|
||||
f = open(filename, "wb")
|
||||
pickle.dump(allSettings, f)
|
||||
|
||||
def load(filename):
|
||||
try:
|
||||
global allSettings
|
||||
|
||||
f = open(filename, "rb")
|
||||
allSettings = pickle.load(f)
|
||||
|
||||
except:
|
||||
print("{} doesn't exist, cannot load settings.".format(filename))
|
||||
return
|
||||
|
||||
#pp=pprint.PrettyPrinter(indent=4, compact=False)
|
||||
#print("Loading:")
|
||||
#pp.pprint(allSettings)
|
||||
|
||||
if "viewSettings" in allSettings:
|
||||
global viewSettings
|
||||
viewSettings = allSettings["viewSettings"]
|
||||
|
||||
if "dict" in allSettings:
|
||||
global dict
|
||||
dict = allSettings["dict"]
|
||||
|
||||
if "spellcheck" in allSettings:
|
||||
global spellcheck
|
||||
spellcheck = allSettings["spellcheck"]
|
||||
|
||||
if "corkSizeFactor" in allSettings:
|
||||
global corkSizeFactor
|
||||
corkSizeFactor = allSettings["corkSizeFactor"]
|
||||
|
||||
if "folderView" in allSettings:
|
||||
global folderView
|
||||
folderView = allSettings["folderView"]
|
||||
|
||||
|
||||
|
|
@ -6,6 +6,7 @@ from enums import *
|
|||
from ui.editors.editorWidget_ui import *
|
||||
from ui.views.textEditView import *
|
||||
from functions import *
|
||||
import settings
|
||||
|
||||
class editorWidget(QWidget, Ui_editorWidget_ui):
|
||||
|
||||
|
@ -37,11 +38,16 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
else:
|
||||
self.folderView = "text"
|
||||
|
||||
# Saving value
|
||||
settings.folderView = self.folderView
|
||||
|
||||
if oldV != self.folderView and self.currentIndex:
|
||||
self.setCurrentModelIndex(self.currentIndex)
|
||||
|
||||
def setCorkSizeFactor(self, v):
|
||||
self.corkView.itemDelegate().setCorkSizeFactor(v)
|
||||
settings.corkSizeFactor = v
|
||||
|
||||
r = self.corkView.rootIndex()
|
||||
|
||||
if r.isValid():
|
||||
|
@ -70,7 +76,7 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
self.currentIndex = index
|
||||
|
||||
def addTitle(itm):
|
||||
edt = customTextEdit(self, html="<h{l}>{t}</h{l}>".format(l=min(itm.level()+1, 5), t=itm.title()), autoResize=True)
|
||||
edt = textEditView(self, html="<h{l}>{t}</h{l}>".format(l=min(itm.level()+1, 5), t=itm.title()), autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
self.txtEdits.append(edt)
|
||||
l.addWidget(edt)
|
||||
|
@ -82,7 +88,7 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
l.addWidget(line)
|
||||
|
||||
def addText(itm):
|
||||
edt = customTextEdit(self, index=itm.index(), spellcheck=self.spellcheck, dict=self.currentDict, autoResize=True)
|
||||
edt = textEditView(self, index=itm.index(), spellcheck=self.spellcheck, dict=self.currentDict, autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
edt.setStatusTip(itm.path())
|
||||
self.toggledSpellcheck.connect(edt.toggleSpellcheck)
|
||||
|
|
|
@ -982,6 +982,8 @@ class Ui_MainWindow(object):
|
|||
self.menuTools.setObjectName("menuTools")
|
||||
self.menuEdit = QtWidgets.QMenu(self.menubar)
|
||||
self.menuEdit.setObjectName("menuEdit")
|
||||
self.menuView = QtWidgets.QMenu(self.menubar)
|
||||
self.menuView.setObjectName("menuView")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
|
@ -1006,10 +1008,6 @@ class Ui_MainWindow(object):
|
|||
icon = QtGui.QIcon.fromTheme("application-exit")
|
||||
self.actQuit.setIcon(icon)
|
||||
self.actQuit.setObjectName("actQuit")
|
||||
self.actSnowflakeMode = QtWidgets.QAction(MainWindow)
|
||||
self.actSnowflakeMode.setCheckable(True)
|
||||
self.actSnowflakeMode.setChecked(True)
|
||||
self.actSnowflakeMode.setObjectName("actSnowflakeMode")
|
||||
self.actNew = QtWidgets.QAction(MainWindow)
|
||||
icon = QtGui.QIcon.fromTheme("document-new")
|
||||
self.actNew.setIcon(icon)
|
||||
|
@ -1030,6 +1028,22 @@ class Ui_MainWindow(object):
|
|||
self.actLabels.setObjectName("actLabels")
|
||||
self.actStatus = QtWidgets.QAction(MainWindow)
|
||||
self.actStatus.setObjectName("actStatus")
|
||||
self.actViewTree = QtWidgets.QAction(MainWindow)
|
||||
self.actViewTree.setObjectName("actViewTree")
|
||||
self.actModeNorma = QtWidgets.QAction(MainWindow)
|
||||
self.actModeNorma.setCheckable(True)
|
||||
self.actModeNorma.setChecked(True)
|
||||
self.actModeNorma.setObjectName("actModeNorma")
|
||||
self.actModeSimple = QtWidgets.QAction(MainWindow)
|
||||
self.actModeSimple.setCheckable(True)
|
||||
self.actModeSimple.setObjectName("actModeSimple")
|
||||
self.actModeFractal = QtWidgets.QAction(MainWindow)
|
||||
self.actModeFractal.setCheckable(True)
|
||||
self.actModeFractal.setObjectName("actModeFractal")
|
||||
self.actViewCork = QtWidgets.QAction(MainWindow)
|
||||
self.actViewCork.setObjectName("actViewCork")
|
||||
self.actViewOutline = QtWidgets.QAction(MainWindow)
|
||||
self.actViewOutline.setObjectName("actViewOutline")
|
||||
self.menuFile.addAction(self.actNew)
|
||||
self.menuFile.addAction(self.actOpen)
|
||||
self.menuFile.addAction(self.actRecents)
|
||||
|
@ -1037,7 +1051,9 @@ class Ui_MainWindow(object):
|
|||
self.menuFile.addAction(self.actSaveAs)
|
||||
self.menuFile.addSeparator()
|
||||
self.menuFile.addAction(self.actQuit)
|
||||
self.menuMode.addAction(self.actSnowflakeMode)
|
||||
self.menuMode.addAction(self.actModeNorma)
|
||||
self.menuMode.addAction(self.actModeSimple)
|
||||
self.menuMode.addAction(self.actModeFractal)
|
||||
self.menuHelp.addAction(self.actShowHelp)
|
||||
self.menuTools.addAction(self.actSpellcheck)
|
||||
self.menuEdit.addAction(self.actLabels)
|
||||
|
@ -1045,11 +1061,12 @@ class Ui_MainWindow(object):
|
|||
self.menubar.addAction(self.menuFile.menuAction())
|
||||
self.menubar.addAction(self.menuEdit.menuAction())
|
||||
self.menubar.addAction(self.menuMode.menuAction())
|
||||
self.menubar.addAction(self.menuView.menuAction())
|
||||
self.menubar.addAction(self.menuTools.menuAction())
|
||||
self.menubar.addAction(self.menuHelp.menuAction())
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.tabMain.setCurrentIndex(2)
|
||||
self.tabMain.setCurrentIndex(6)
|
||||
self.tabSummary.setCurrentIndex(0)
|
||||
self.tabPersos.setCurrentIndex(0)
|
||||
self.tabPlot.setCurrentIndex(0)
|
||||
|
@ -1168,7 +1185,7 @@ class Ui_MainWindow(object):
|
|||
self.treeWidget_2.setSortingEnabled(__sortingEnabled)
|
||||
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Outline"))
|
||||
self.btnRedacFolderText.setText(_translate("MainWindow", "Text"))
|
||||
self.btnRedacFolderCork.setText(_translate("MainWindow", "Cork"))
|
||||
self.btnRedacFolderCork.setText(_translate("MainWindow", "Index cards"))
|
||||
self.btnRedacFolderOutline.setText(_translate("MainWindow", "Outline"))
|
||||
self.btnRedacFullscreen.setShortcut(_translate("MainWindow", "F11"))
|
||||
self.tabRedacInfos.setTabText(self.tabRedacInfos.indexOf(self.tab_17), _translate("MainWindow", "Metadata"))
|
||||
|
@ -1198,6 +1215,7 @@ class Ui_MainWindow(object):
|
|||
self.menuHelp.setTitle(_translate("MainWindow", "Help"))
|
||||
self.menuTools.setTitle(_translate("MainWindow", "Tools"))
|
||||
self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
|
||||
self.menuView.setTitle(_translate("MainWindow", "View"))
|
||||
self.actOpen.setText(_translate("MainWindow", "Open"))
|
||||
self.actOpen.setShortcut(_translate("MainWindow", "Ctrl+O"))
|
||||
self.actRecents.setText(_translate("MainWindow", "Recents"))
|
||||
|
@ -1208,7 +1226,6 @@ class Ui_MainWindow(object):
|
|||
self.actSaveAs.setShortcut(_translate("MainWindow", "Ctrl+Shift+S"))
|
||||
self.actQuit.setText(_translate("MainWindow", "Quit"))
|
||||
self.actQuit.setShortcut(_translate("MainWindow", "Ctrl+Q"))
|
||||
self.actSnowflakeMode.setText(_translate("MainWindow", "&Snowflake"))
|
||||
self.actNew.setText(_translate("MainWindow", "New"))
|
||||
self.actNew.setShortcut(_translate("MainWindow", "Ctrl+N"))
|
||||
self.actShowHelp.setText(_translate("MainWindow", "Show help texts"))
|
||||
|
@ -1217,12 +1234,18 @@ class Ui_MainWindow(object):
|
|||
self.actSpellcheck.setShortcut(_translate("MainWindow", "F8"))
|
||||
self.actLabels.setText(_translate("MainWindow", "Labels..."))
|
||||
self.actStatus.setText(_translate("MainWindow", "Status..."))
|
||||
self.actViewTree.setText(_translate("MainWindow", "Tree"))
|
||||
self.actModeNorma.setText(_translate("MainWindow", "Normal"))
|
||||
self.actModeSimple.setText(_translate("MainWindow", "Simple"))
|
||||
self.actModeFractal.setText(_translate("MainWindow", "Fractal"))
|
||||
self.actViewCork.setText(_translate("MainWindow", "Index cards"))
|
||||
self.actViewOutline.setText(_translate("MainWindow", "Outline"))
|
||||
|
||||
from ui.views.treeView import treeView
|
||||
from ui.views.basicItemView import basicItemView
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.views.lineEditView import lineEditView
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.metadataView import metadataView
|
||||
from ui.views.basicItemView import basicItemView
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.treeView import treeView
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<item>
|
||||
<widget class="QTabWidget" name="tabMain">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>true</bool>
|
||||
|
@ -1560,7 +1560,7 @@
|
|||
<item>
|
||||
<widget class="QPushButton" name="btnRedacFolderCork">
|
||||
<property name="text">
|
||||
<string>Cork</string>
|
||||
<string>Index cards</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
|
@ -1893,7 +1893,9 @@
|
|||
<property name="title">
|
||||
<string>Mode</string>
|
||||
</property>
|
||||
<addaction name="actSnowflakeMode"/>
|
||||
<addaction name="actModeNorma"/>
|
||||
<addaction name="actModeSimple"/>
|
||||
<addaction name="actModeFractal"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
<property name="title">
|
||||
|
@ -1914,9 +1916,15 @@
|
|||
<addaction name="actLabels"/>
|
||||
<addaction name="actStatus"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuView">
|
||||
<property name="title">
|
||||
<string>View</string>
|
||||
</property>
|
||||
</widget>
|
||||
<addaction name="menuFile"/>
|
||||
<addaction name="menuEdit"/>
|
||||
<addaction name="menuMode"/>
|
||||
<addaction name="menuView"/>
|
||||
<addaction name="menuTools"/>
|
||||
<addaction name="menuHelp"/>
|
||||
</widget>
|
||||
|
@ -1986,17 +1994,6 @@
|
|||
<string>Ctrl+Q</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actSnowflakeMode">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Snowflake</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actNew">
|
||||
<property name="icon">
|
||||
<iconset theme="document-new">
|
||||
|
@ -2058,6 +2055,48 @@
|
|||
<string>Status...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actViewTree">
|
||||
<property name="text">
|
||||
<string>Tree</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actModeNorma">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Normal</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actModeSimple">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Simple</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actModeFractal">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fractal</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actViewCork">
|
||||
<property name="text">
|
||||
<string>Index cards</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actViewOutline">
|
||||
<property name="text">
|
||||
<string>Outline</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
|
|
@ -54,6 +54,8 @@ class basicItemView(QWidget, Ui_basicItemView):
|
|||
self.cmbPOV.setCurrentModelIndexes(indexes)
|
||||
self.txtGoal.setCurrentModelIndexes(indexes)
|
||||
|
||||
def setDict(self, d):
|
||||
self.txtSummaryFull.setDict(d)
|
||||
|
||||
def toggleSpellcheck(self, v):
|
||||
self.txtSummaryFull.toggleSpellcheck(v)
|
||||
|
|
|
@ -55,6 +55,10 @@ class metadataView(QWidget, Ui_metadataView):
|
|||
|
||||
self.properties.selectionChanged(sourceView)
|
||||
|
||||
def setDict(self, d):
|
||||
self.txtNotes.setDict(d)
|
||||
self.txtSummaryFull.setDict(d)
|
||||
|
||||
def toggleSpellcheck(self, v):
|
||||
self.txtNotes.toggleSpellcheck(v)
|
||||
self.txtSummaryFull.toggleSpellcheck(v)
|
||||
|
|
|
@ -179,8 +179,10 @@ class textEditView(QTextEdit):
|
|||
# Spellchecking based on http://john.nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check/
|
||||
|
||||
def setDict(self, d):
|
||||
self.currentDict = d
|
||||
self.dict = enchant.Dict(d)
|
||||
self.highlighter.rehighlight()
|
||||
if self.highlighter:
|
||||
self.highlighter.rehighlight()
|
||||
|
||||
def toggleSpellcheck(self, v):
|
||||
self.spellcheck = v
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<outlineItem title="root" type="folder" compile="2" wordCount="2126" setGoal="112">
|
||||
<outlineItem title="root" type="folder" compile="2" wordCount="2140" setGoal="112">
|
||||
<outlineItem title="Nouveau" type="folder" compile="2" wordCount="15">
|
||||
<outlineItem title="Nouveau" type="text" POV="1" label="2" status="2" compile="2" text="return QTextEdit.resizeEvent(self, e) ad ad ad ad adaasd ad adsdasd ad e drset" wordCount="15"/>
|
||||
</outlineItem>
|
||||
|
@ -52,12 +52,12 @@
|
|||
<outlineItem title="A" type="text" label="0" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="Same title" type="text" summarySentance="Résumé court" POV="0" label="5" status="3" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd AAAAA" wordCount="60" setGoal="50"/>
|
||||
<outlineItem title="Nouveau" type="folder" POV="1" label="5" status="1" compile="2" wordCount="596">
|
||||
<outlineItem title="Nouveau" type="text" POV="0" label="0" status="4" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="Nouveau" type="folder" POV="1" label="5" status="1" compile="2" wordCount="607">
|
||||
<outlineItem title="Nouveau" type="text" POV="0" label="0" status="4" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa English French Français" wordCount="222"/>
|
||||
<outlineItem title="Avec titre" type="text" POV="0" label="1" status="4" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="100"/>
|
||||
<outlineItem title="Avec titre" type="text" POV="0" label="1" status="4" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="Titre cool" type="text" POV="0" label="1" status="4" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="Avec titre" type="text" POV="0" label="1" status="4" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="100"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="Same title 2" type="text" POV="1" label="5" status="1" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd asdasd asdasd asd " wordCount="64" setGoal="1000"/>
|
||||
<outlineItem title="Same title 2" type="text" summaryFull="Français French Word Mot" POV="1" label="5" status="1" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd asdasd asdasd asd maison français French " wordCount="67" setGoal="1000"/>
|
||||
</outlineItem>
|
||||
|
|
BIN
test_project/settings.pickle
Normal file
BIN
test_project/settings.pickle
Normal file
Binary file not shown.
Loading…
Reference in a new issue