diff --git a/src/mainWindow.py b/src/mainWindow.py
index 94c66cd..c6c562b 100644
--- a/src/mainWindow.py
+++ b/src/mainWindow.py
@@ -391,12 +391,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.treeRedacOutline.setCurrentIndex(self.mdlOutline.indexFromPath(settings.lastIndex))
# Set autosave
+ self.saveTimer = QTimer()
+ self.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000)
+ self.saveTimer.setSingleShot(False)
+ self.saveTimer.timeout.connect(self.saveDatas)
if settings.autoSave:
- self.saveTimer = QTimer()
- self.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000)
- self.saveTimer.setSingleShot(False)
- self.saveTimer.timeout.connect(self.saveDatas)
self.saveTimer.start()
+
+ # Set autosave if no changes
+ self.saveTimerNoChanges = QTimer()
+ self.saveTimerNoChanges.setInterval(settings.autoSaveNoChangesDelay * 1000)
+ self.saveTimerNoChanges.setSingleShot(True)
+ self.mdlOutline.dataChanged.connect(self.startTimerNoChanges)
+ self.saveTimerNoChanges.timeout.connect(self.saveDatas)
+ self.saveTimerNoChanges.stop()
# UI
self.actSave.setEnabled(True)
@@ -437,6 +445,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# closeEvent
QMainWindow.closeEvent(self, event)
+ def startTimerNoChanges(self):
+ if settings.autoSaveNoChanges:
+ self.saveTimerNoChanges.start()
+
def saveDatas(self):
# Saving
files = []
@@ -628,10 +640,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
####################################################################################################
def settingsLabel(self):
- self.settingsWindow(1)
+ self.settingsWindow(2)
def settingsStatus(self):
- self.settingsWindow(2)
+ self.settingsWindow(3)
def settingsWindow(self, tab=None):
self.sw = settingsWindow(self)
@@ -700,15 +712,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
a.setData("{},{},{}".format(mnud, sd, vd))
if settings.viewSettings[mnud][sd] == vd:
a.setChecked(True)
- a.triggered.connect(self.setViewElement)
+ a.triggered.connect(self.setViewSettingsAction)
agp.addAction(a)
m2.addAction(a)
m.addMenu(m2)
self.menuView.addMenu(m)
- def setViewElement(self):
+ def setViewSettingsAction(self):
action = self.sender()
item, part, element = action.data().split(",")
+ self.setViewSettings(item, part, element)
+
+ def setViewSettings(self, item, part, element):
settings.viewSettings[item][part] = element
if item == "Cork":
self.redacEditor.corkView.viewport().update()
diff --git a/src/models/outlineModel.py b/src/models/outlineModel.py
index 28d255c..e98fe56 100644
--- a/src/models/outlineModel.py
+++ b/src/models/outlineModel.py
@@ -90,21 +90,30 @@ class outlineModel(QAbstractItemModel):
def setData(self, index, value, role=Qt.EditRole):
item = index.internalPointer()
- item.setData(index.column(), value, role)
+ if item.data(index.column(), role) != value:
+ item.setData(index.column(), value, role)
- self.dataChanged.emit(index.sibling(index.row(), 0),
- index.sibling(index.row(), max([i.value for i in Outline])))
+ self.dataChanged.emit(index.sibling(index.row(), 0),
+ index.sibling(index.row(), max([i.value for i in Outline])))
return True
def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
+ if orientation == Qt.Horizontal and role in [Qt.DisplayRole, Qt.ToolTipRole]:
if section == Outline.title.value:
- return "Titre"
+ return self.tr("Title")
+ elif section == Outline.POV.value:
+ return self.tr("POV")
+ elif section == Outline.label.value:
+ return self.tr("Label")
+ elif section == Outline.status.value:
+ return self.tr("Status")
+ elif section == Outline.compile.value:
+ return self.tr("Compile")
elif section == Outline.wordCount.value:
- return "Mots"
+ return self.tr("Word count")
elif section == Outline.goal.value:
- return "Goal"
+ return self.tr("Goal")
elif section == Outline.goalPercentage.value:
return "%"
else:
diff --git a/src/settings.py b/src/settings.py
index 5e12f11..fa06c74 100644
--- a/src/settings.py
+++ b/src/settings.py
@@ -2,6 +2,7 @@
import pickle
import pprint
+from enums import *
viewSettings = {
"Tree": {
@@ -29,14 +30,19 @@ corkSizeFactor = 100
folderView = "cork"
lastTab = 0
lastIndex = ""
-autoSave = True
+autoSave = False
autoSaveDelay = 5
+autoSaveNoChanges = True
+autoSaveNoChangesDelay = 5
saveOnQuit = True
+outlineViewColumns = [Outline.title.value, Outline.POV.value, Outline.status.value,
+ Outline.compile.value, Outline.wordCount.value, Outline.goal.value,
+ Outline.goalPercentage.value, Outline.label.value]
def save(filename=None):
global spellcheck, dict, corkSliderFactor, viewSettings, corkSizeFactor, folderView, lastTab, lastIndex, \
- autoSave, autoSaveDelay, saveOnQuit
+ autoSave, autoSaveDelay, saveOnQuit, autoSaveNoChanges, autoSaveNoChangesDelay, outlineViewColumns
allSettings = {
"viewSettings": viewSettings,
@@ -49,6 +55,9 @@ def save(filename=None):
"autoSave":autoSave,
"autoSaveDelay":autoSaveDelay,
"saveOnQuit":saveOnQuit,
+ "autoSaveNoChanges":autoSaveNoChanges,
+ "autoSaveNoChangesDelay":autoSaveNoChangesDelay,
+ "outlineViewColumns":outlineViewColumns,
}
#pp=pprint.PrettyPrinter(indent=4, compact=False)
@@ -121,5 +130,15 @@ def load(string, fromString=False):
global saveOnQuit
saveOnQuit = allSettings["saveOnQuit"]
-
+ if "autoSaveNoChanges" in allSettings:
+ global autoSaveNoChanges
+ autoSaveNoChanges = allSettings["autoSaveNoChanges"]
+
+ if "autoSaveNoChangesDelay" in allSettings:
+ global autoSaveNoChangesDelay
+ autoSaveNoChangesDelay = allSettings["autoSaveNoChangesDelay"]
+
+ if "outlineViewColumns" in allSettings:
+ global outlineViewColumns
+ outlineViewColumns = allSettings["outlineViewColumns"]
\ No newline at end of file
diff --git a/src/settingsWindow.py b/src/settingsWindow.py
index be92923..aef06c7 100644
--- a/src/settingsWindow.py
+++ b/src/settingsWindow.py
@@ -27,12 +27,29 @@ class settingsWindow(QWidget, Ui_Settings):
self.cmbStyle.currentIndexChanged[str].connect(self.setStyle)
self.txtAutoSave.setValidator(QIntValidator(0, 999, self))
+ self.txtAutoSaveNoChanges.setValidator(QIntValidator(0, 999, self))
self.chkAutoSave.setChecked(settings.autoSave)
+ self.chkAutoSaveNoChanges.setChecked(settings.autoSaveNoChanges)
self.txtAutoSave.setText(str(settings.autoSaveDelay))
+ self.txtAutoSaveNoChanges.setText(str(settings.autoSaveNoChangesDelay))
self.chkSaveOnQuit.setChecked(settings.saveOnQuit)
self.chkAutoSave.stateChanged.connect(self.saveSettingsChanged)
+ self.chkAutoSaveNoChanges.stateChanged.connect(self.saveSettingsChanged)
self.chkSaveOnQuit.stateChanged.connect(self.saveSettingsChanged)
self.txtAutoSave.textEdited.connect(self.saveSettingsChanged)
+ self.txtAutoSaveNoChanges.textEdited.connect(self.saveSettingsChanged)
+
+ # Views
+ lst = ["Nothing", "POV", "Label", "Progress", "Compile"]
+ for cmb in self.viewSettingsDatas():
+ item, part = self.viewSettingsDatas()[cmb]
+ cmb.setCurrentIndex(lst.index(settings.viewSettings[item][part]))
+ cmb.currentIndexChanged.connect(self.viewSettingsChanged)
+
+ for chk in self.outlineColumnsData():
+ col = self.outlineColumnsData()[chk]
+ chk.setChecked(col in settings.outlineViewColumns)
+ chk.stateChanged.connect(self.outlineColumnsChanged)
# Labels
self.lstLabels.setModel(self.mw.mdlLabels)
@@ -48,6 +65,10 @@ class settingsWindow(QWidget, Ui_Settings):
self.btnStatusAdd.clicked.connect(self.addStatus)
self.btnStatusRemove.clicked.connect(self.removeStatus)
+####################################################################################################
+# GENERAL #
+####################################################################################################
+
def setStyle(self, style):
#Save style to Qt Settings
settings = QSettings(qApp.organizationName(), qApp.applicationName())
@@ -57,11 +78,73 @@ class settingsWindow(QWidget, Ui_Settings):
def saveSettingsChanged(self):
if self.txtAutoSave.text() in ["", "0"]:
self.txtAutoSave.setText("1")
+ if self.txtAutoSaveNoChanges.text() in ["", "0"]:
+ self.txtAutoSaveNoChanges.setText("1")
+
settings.autoSave = True if self.chkAutoSave.checkState() else False
+ settings.autoSaveNoChanges = True if self.chkAutoSaveNoChanges.checkState() else False
settings.saveOnQuit = True if self.chkSaveOnQuit.checkState() else False
settings.autoSaveDelay = int(self.txtAutoSave.text())
+ settings.autoSaveNoChangesDelay = int(self.txtAutoSaveNoChanges.text())
self.mw.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000)
+ self.mw.saveTimerNoChanges.setInterval(settings.autoSaveNoChangesDelay * 1000)
+
+####################################################################################################
+# VIEWS #
+####################################################################################################
+
+ def viewSettingsDatas(self):
+ return {
+ self.cmbTreeIcon: ("Tree", "Icon"),
+ self.cmbTreeText: ("Tree", "Text"),
+ self.cmbTreeBackground: ("Tree", "Background"),
+ self.cmbOutlineIcon: ("Outline", "Icon"),
+ self.cmbOutlineText: ("Outline", "Text"),
+ self.cmbOutlineBackground: ("Outline", "Background"),
+ self.cmbCorkIcon: ("Cork", "Icon"),
+ self.cmbCorkText: ("Cork", "Text"),
+ self.cmbCorkBackground: ("Cork", "Background"),
+ self.cmbCorkBorder: ("Cork", "Border"),
+ self.cmbCorkCorner: ("Cork", "Corner")
+ }
+ def viewSettingsChanged(self):
+ cmb = self.sender()
+ lst = ["Nothing", "POV", "Label", "Progress", "Compile"]
+ item, part = self.viewSettingsDatas()[cmb]
+ element = lst[cmb.currentIndex()]
+ self.mw.setViewSettings(item, part, element)
+
+ def outlineColumnsData(self):
+ return {
+ self.chkOutlineTitle: Outline.title.value,
+ self.chkOutlinePOV: Outline.POV.value,
+ self.chkOutlineLabel: Outline.label.value,
+ self.chkOutlineStatus: Outline.status.value,
+ self.chkOutlineCompile: Outline.compile.value,
+ self.chkOutlineWordCount: Outline.wordCount.value,
+ self.chkOutlineGoal: Outline.goal.value,
+ self.chkOutlinePercentage: Outline.goalPercentage.value,
+ }
+
+ def outlineColumnsChanged(self):
+ chk = self.sender()
+ val = True if chk.checkState() else False
+ col = self.outlineColumnsData()[chk]
+ if val and not col in settings.outlineViewColumns:
+ settings.outlineViewColumns.append(col)
+ elif not val and col in settings.outlineViewColumns:
+ settings.outlineViewColumns.remove(col)
+
+ # Update views
+ self.mw.redacEditor.outlineView.hideColumns()
+ self.mw.treePlanOutline.hideColumns()
+
+
+####################################################################################################
+# STATUS #
+####################################################################################################
+
def addStatus(self):
self.mw.mdlStatus.appendRow(QStandardItem(self.tr("New status")))
@@ -75,6 +158,10 @@ class settingsWindow(QWidget, Ui_Settings):
self.btnLabelColor.setIcon(QIcon(px))
self.btnLabelColor.setEnabled(True)
+####################################################################################################
+# LABELS #
+####################################################################################################
+
def addLabel(self):
px = QPixmap(32, 32)
px.fill(Qt.transparent)
diff --git a/src/ui/mainWindow.py b/src/ui/mainWindow.py
index b820f4f..3be8ac0 100644
--- a/src/ui/mainWindow.py
+++ b/src/ui/mainWindow.py
@@ -75,6 +75,7 @@ class Ui_MainWindow(object):
self.grpAuthor = QtWidgets.QGroupBox(self.lytTabOverview)
self.grpAuthor.setObjectName("grpAuthor")
self.formLayout_4 = QtWidgets.QFormLayout(self.grpAuthor)
+ self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow)
self.formLayout_4.setContentsMargins(6, 6, 6, -1)
self.formLayout_4.setObjectName("formLayout_4")
self.label_15 = QtWidgets.QLabel(self.grpAuthor)
@@ -89,9 +90,6 @@ class Ui_MainWindow(object):
self.txtGeneralEmail = lineEditView(self.grpAuthor)
self.txtGeneralEmail.setObjectName("txtGeneralEmail")
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.txtGeneralEmail)
- self.cmbStyle = QtWidgets.QComboBox(self.grpAuthor)
- self.cmbStyle.setObjectName("cmbStyle")
- self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbStyle)
self.horizontalLayout_26.addWidget(self.grpAuthor)
self.verticalLayout_23.addLayout(self.horizontalLayout_26)
self.tabMain.addTab(self.lytTabOverview, "")
@@ -1247,11 +1245,11 @@ class Ui_MainWindow(object):
self.actViewOutline.setText(_translate("MainWindow", "Outline"))
self.actSettings.setText(_translate("MainWindow", "Settings"))
-from ui.views.lineEditView import lineEditView
-from ui.views.outlineView import outlineView
-from ui.views.basicItemView import basicItemView
-from ui.views.textEditView import textEditView
-from ui.editors.editorWidget import editorWidget
-from ui.views.metadataView import metadataView
-from ui.sldImportance import sldImportance
from ui.views.treeView import treeView
+from ui.views.lineEditView import lineEditView
+from ui.sldImportance import sldImportance
+from ui.editors.editorWidget import editorWidget
+from ui.views.textEditView import textEditView
+from ui.views.basicItemView import basicItemView
+from ui.views.outlineView import outlineView
+from ui.views.metadataView import metadataView
diff --git a/src/ui/mainWindow.ui b/src/ui/mainWindow.ui
index 0926172..c954fcc 100644
--- a/src/ui/mainWindow.ui
+++ b/src/ui/mainWindow.ui
@@ -131,6 +131,9 @@
Author
+
+ QFormLayout::ExpandingFieldsGrow
+
6
@@ -160,9 +163,6 @@
-
- -
-
-
diff --git a/src/ui/settings.py b/src/ui/settings.py
index 14b49e2..fc97466 100644
--- a/src/ui/settings.py
+++ b/src/ui/settings.py
@@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Settings(object):
def setupUi(self, Settings):
Settings.setObjectName("Settings")
- Settings.resize(485, 379)
+ Settings.resize(485, 585)
self.verticalLayout = QtWidgets.QVBoxLayout(Settings)
self.verticalLayout.setObjectName("verticalLayout")
self.tabWidget = QtWidgets.QTabWidget(Settings)
@@ -60,14 +60,225 @@ class Ui_Settings(object):
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem)
self.verticalLayout_6.addLayout(self.horizontalLayout_5)
+ self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_7.setObjectName("horizontalLayout_7")
+ self.chkAutoSaveNoChanges = QtWidgets.QCheckBox(self.groupBox)
+ self.chkAutoSaveNoChanges.setChecked(True)
+ self.chkAutoSaveNoChanges.setObjectName("chkAutoSaveNoChanges")
+ self.horizontalLayout_7.addWidget(self.chkAutoSaveNoChanges)
+ self.txtAutoSaveNoChanges = QtWidgets.QLineEdit(self.groupBox)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.txtAutoSaveNoChanges.sizePolicy().hasHeightForWidth())
+ self.txtAutoSaveNoChanges.setSizePolicy(sizePolicy)
+ self.txtAutoSaveNoChanges.setMaximumSize(QtCore.QSize(50, 16777215))
+ self.txtAutoSaveNoChanges.setStyleSheet("border-radius: 6px;")
+ self.txtAutoSaveNoChanges.setMaxLength(3)
+ self.txtAutoSaveNoChanges.setAlignment(QtCore.Qt.AlignCenter)
+ self.txtAutoSaveNoChanges.setObjectName("txtAutoSaveNoChanges")
+ self.horizontalLayout_7.addWidget(self.txtAutoSaveNoChanges)
+ self.label_14 = QtWidgets.QLabel(self.groupBox)
+ self.label_14.setObjectName("label_14")
+ self.horizontalLayout_7.addWidget(self.label_14)
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_7.addItem(spacerItem1)
+ self.verticalLayout_6.addLayout(self.horizontalLayout_7)
self.chkSaveOnQuit = QtWidgets.QCheckBox(self.groupBox)
self.chkSaveOnQuit.setChecked(True)
self.chkSaveOnQuit.setObjectName("chkSaveOnQuit")
self.verticalLayout_6.addWidget(self.chkSaveOnQuit)
self.verticalLayout_7.addWidget(self.groupBox)
- spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.verticalLayout_7.addItem(spacerItem1)
+ spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout_7.addItem(spacerItem2)
self.tabWidget.addTab(self.tab_3, "")
+ self.tab_4 = QtWidgets.QWidget()
+ self.tab_4.setObjectName("tab_4")
+ self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.tab_4)
+ self.verticalLayout_9.setObjectName("verticalLayout_9")
+ self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_6.setObjectName("horizontalLayout_6")
+ self.groupBox_3 = QtWidgets.QGroupBox(self.tab_4)
+ self.groupBox_3.setObjectName("groupBox_3")
+ self.formLayout = QtWidgets.QFormLayout(self.groupBox_3)
+ self.formLayout.setObjectName("formLayout")
+ self.label_3 = QtWidgets.QLabel(self.groupBox_3)
+ self.label_3.setObjectName("label_3")
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_3)
+ self.cmbTreeIcon = QtWidgets.QComboBox(self.groupBox_3)
+ self.cmbTreeIcon.setObjectName("cmbTreeIcon")
+ self.cmbTreeIcon.addItem("")
+ self.cmbTreeIcon.addItem("")
+ self.cmbTreeIcon.addItem("")
+ self.cmbTreeIcon.addItem("")
+ self.cmbTreeIcon.addItem("")
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbTreeIcon)
+ self.label_4 = QtWidgets.QLabel(self.groupBox_3)
+ self.label_4.setObjectName("label_4")
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_4)
+ self.cmbTreeText = QtWidgets.QComboBox(self.groupBox_3)
+ self.cmbTreeText.setObjectName("cmbTreeText")
+ self.cmbTreeText.addItem("")
+ self.cmbTreeText.addItem("")
+ self.cmbTreeText.addItem("")
+ self.cmbTreeText.addItem("")
+ self.cmbTreeText.addItem("")
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbTreeText)
+ self.label_5 = QtWidgets.QLabel(self.groupBox_3)
+ self.label_5.setObjectName("label_5")
+ self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_5)
+ self.cmbTreeBackground = QtWidgets.QComboBox(self.groupBox_3)
+ self.cmbTreeBackground.setObjectName("cmbTreeBackground")
+ self.cmbTreeBackground.addItem("")
+ self.cmbTreeBackground.addItem("")
+ self.cmbTreeBackground.addItem("")
+ self.cmbTreeBackground.addItem("")
+ self.cmbTreeBackground.addItem("")
+ self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbTreeBackground)
+ self.horizontalLayout_6.addWidget(self.groupBox_3)
+ self.groupBox_5 = QtWidgets.QGroupBox(self.tab_4)
+ self.groupBox_5.setObjectName("groupBox_5")
+ self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_5)
+ self.formLayout_2.setObjectName("formLayout_2")
+ self.label_9 = QtWidgets.QLabel(self.groupBox_5)
+ self.label_9.setObjectName("label_9")
+ self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_9)
+ self.cmbCorkIcon = QtWidgets.QComboBox(self.groupBox_5)
+ self.cmbCorkIcon.setObjectName("cmbCorkIcon")
+ self.cmbCorkIcon.addItem("")
+ self.cmbCorkIcon.addItem("")
+ self.cmbCorkIcon.addItem("")
+ self.cmbCorkIcon.addItem("")
+ self.cmbCorkIcon.addItem("")
+ self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbCorkIcon)
+ self.label_10 = QtWidgets.QLabel(self.groupBox_5)
+ self.label_10.setObjectName("label_10")
+ self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_10)
+ self.cmbCorkText = QtWidgets.QComboBox(self.groupBox_5)
+ self.cmbCorkText.setObjectName("cmbCorkText")
+ self.cmbCorkText.addItem("")
+ self.cmbCorkText.addItem("")
+ self.cmbCorkText.addItem("")
+ self.cmbCorkText.addItem("")
+ self.cmbCorkText.addItem("")
+ self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbCorkText)
+ self.label_11 = QtWidgets.QLabel(self.groupBox_5)
+ self.label_11.setObjectName("label_11")
+ self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_11)
+ self.cmbCorkBackground = QtWidgets.QComboBox(self.groupBox_5)
+ self.cmbCorkBackground.setObjectName("cmbCorkBackground")
+ self.cmbCorkBackground.addItem("")
+ self.cmbCorkBackground.addItem("")
+ self.cmbCorkBackground.addItem("")
+ self.cmbCorkBackground.addItem("")
+ self.cmbCorkBackground.addItem("")
+ self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbCorkBackground)
+ self.label_12 = QtWidgets.QLabel(self.groupBox_5)
+ self.label_12.setObjectName("label_12")
+ self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_12)
+ self.cmbCorkBorder = QtWidgets.QComboBox(self.groupBox_5)
+ self.cmbCorkBorder.setObjectName("cmbCorkBorder")
+ self.cmbCorkBorder.addItem("")
+ self.cmbCorkBorder.addItem("")
+ self.cmbCorkBorder.addItem("")
+ self.cmbCorkBorder.addItem("")
+ self.cmbCorkBorder.addItem("")
+ self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.cmbCorkBorder)
+ self.label_13 = QtWidgets.QLabel(self.groupBox_5)
+ self.label_13.setObjectName("label_13")
+ self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_13)
+ self.cmbCorkCorner = QtWidgets.QComboBox(self.groupBox_5)
+ self.cmbCorkCorner.setObjectName("cmbCorkCorner")
+ self.cmbCorkCorner.addItem("")
+ self.cmbCorkCorner.addItem("")
+ self.cmbCorkCorner.addItem("")
+ self.cmbCorkCorner.addItem("")
+ self.cmbCorkCorner.addItem("")
+ self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.cmbCorkCorner)
+ self.horizontalLayout_6.addWidget(self.groupBox_5)
+ self.verticalLayout_9.addLayout(self.horizontalLayout_6)
+ self.groupBox_4 = QtWidgets.QGroupBox(self.tab_4)
+ self.groupBox_4.setObjectName("groupBox_4")
+ self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_4)
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.formLayout_3 = QtWidgets.QFormLayout()
+ self.formLayout_3.setObjectName("formLayout_3")
+ self.label_6 = QtWidgets.QLabel(self.groupBox_4)
+ self.label_6.setObjectName("label_6")
+ self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_6)
+ self.cmbOutlineIcon = QtWidgets.QComboBox(self.groupBox_4)
+ self.cmbOutlineIcon.setObjectName("cmbOutlineIcon")
+ self.cmbOutlineIcon.addItem("")
+ self.cmbOutlineIcon.addItem("")
+ self.cmbOutlineIcon.addItem("")
+ self.cmbOutlineIcon.addItem("")
+ self.cmbOutlineIcon.addItem("")
+ self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbOutlineIcon)
+ self.label_7 = QtWidgets.QLabel(self.groupBox_4)
+ self.label_7.setObjectName("label_7")
+ self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_7)
+ self.cmbOutlineText = QtWidgets.QComboBox(self.groupBox_4)
+ self.cmbOutlineText.setObjectName("cmbOutlineText")
+ self.cmbOutlineText.addItem("")
+ self.cmbOutlineText.addItem("")
+ self.cmbOutlineText.addItem("")
+ self.cmbOutlineText.addItem("")
+ self.cmbOutlineText.addItem("")
+ self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbOutlineText)
+ self.label_8 = QtWidgets.QLabel(self.groupBox_4)
+ self.label_8.setObjectName("label_8")
+ self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_8)
+ self.cmbOutlineBackground = QtWidgets.QComboBox(self.groupBox_4)
+ self.cmbOutlineBackground.setObjectName("cmbOutlineBackground")
+ self.cmbOutlineBackground.addItem("")
+ self.cmbOutlineBackground.addItem("")
+ self.cmbOutlineBackground.addItem("")
+ self.cmbOutlineBackground.addItem("")
+ self.cmbOutlineBackground.addItem("")
+ self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbOutlineBackground)
+ self.horizontalLayout_4.addLayout(self.formLayout_3)
+ self.line = QtWidgets.QFrame(self.groupBox_4)
+ self.line.setFrameShape(QtWidgets.QFrame.VLine)
+ self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.line.setObjectName("line")
+ self.horizontalLayout_4.addWidget(self.line)
+ self.verticalLayout_8 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_8.setObjectName("verticalLayout_8")
+ self.chkOutlineTitle = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineTitle.setChecked(True)
+ self.chkOutlineTitle.setObjectName("chkOutlineTitle")
+ self.verticalLayout_8.addWidget(self.chkOutlineTitle)
+ self.chkOutlinePOV = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlinePOV.setChecked(True)
+ self.chkOutlinePOV.setObjectName("chkOutlinePOV")
+ self.verticalLayout_8.addWidget(self.chkOutlinePOV)
+ self.chkOutlineLabel = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineLabel.setChecked(True)
+ self.chkOutlineLabel.setObjectName("chkOutlineLabel")
+ self.verticalLayout_8.addWidget(self.chkOutlineLabel)
+ self.chkOutlineStatus = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineStatus.setChecked(True)
+ self.chkOutlineStatus.setObjectName("chkOutlineStatus")
+ self.verticalLayout_8.addWidget(self.chkOutlineStatus)
+ self.chkOutlineCompile = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineCompile.setChecked(True)
+ self.chkOutlineCompile.setObjectName("chkOutlineCompile")
+ self.verticalLayout_8.addWidget(self.chkOutlineCompile)
+ self.chkOutlineWordCount = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineWordCount.setChecked(True)
+ self.chkOutlineWordCount.setObjectName("chkOutlineWordCount")
+ self.verticalLayout_8.addWidget(self.chkOutlineWordCount)
+ self.chkOutlineGoal = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlineGoal.setChecked(True)
+ self.chkOutlineGoal.setObjectName("chkOutlineGoal")
+ self.verticalLayout_8.addWidget(self.chkOutlineGoal)
+ self.chkOutlinePercentage = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkOutlinePercentage.setChecked(True)
+ self.chkOutlinePercentage.setObjectName("chkOutlinePercentage")
+ self.verticalLayout_8.addWidget(self.chkOutlinePercentage)
+ self.horizontalLayout_4.addLayout(self.verticalLayout_8)
+ self.verticalLayout_9.addWidget(self.groupBox_4)
+ self.tabWidget.addTab(self.tab_4, "")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.tab)
@@ -92,8 +303,8 @@ class Ui_Settings(object):
self.btnLabelColor.setIconSize(QtCore.QSize(64, 64))
self.btnLabelColor.setObjectName("btnLabelColor")
self.verticalLayout_2.addWidget(self.btnLabelColor)
- spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.verticalLayout_2.addItem(spacerItem2)
+ spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout_2.addItem(spacerItem3)
self.horizontalLayout_2.addLayout(self.verticalLayout_2)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
@@ -110,8 +321,8 @@ class Ui_Settings(object):
self.btnLabelRemove.setIcon(icon)
self.btnLabelRemove.setObjectName("btnLabelRemove")
self.horizontalLayout.addWidget(self.btnLabelRemove)
- spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout.addItem(spacerItem3)
+ spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout.addItem(spacerItem4)
self.verticalLayout_3.addLayout(self.horizontalLayout)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
@@ -135,14 +346,14 @@ class Ui_Settings(object):
self.btnStatusRemove.setIcon(icon)
self.btnStatusRemove.setObjectName("btnStatusRemove")
self.horizontalLayout_3.addWidget(self.btnStatusRemove)
- spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout_3.addItem(spacerItem4)
+ spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_3.addItem(spacerItem5)
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
self.tabWidget.addTab(self.tab_2, "")
self.verticalLayout.addWidget(self.tabWidget)
self.retranslateUi(Settings)
- self.tabWidget.setCurrentIndex(0)
+ self.tabWidget.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(Settings)
def retranslateUi(self, Settings):
@@ -153,8 +364,88 @@ class Ui_Settings(object):
self.groupBox.setTitle(_translate("Settings", "Saving"))
self.chkAutoSave.setText(_translate("Settings", "Automatically save every"))
self.label.setText(_translate("Settings", "minutes."))
+ self.chkAutoSaveNoChanges.setText(_translate("Settings", "If no changes during"))
+ self.label_14.setText(_translate("Settings", "seconds."))
self.chkSaveOnQuit.setText(_translate("Settings", "Save on quit"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Settings", "General"))
+ self.groupBox_3.setTitle(_translate("Settings", "Tree"))
+ self.label_3.setText(_translate("Settings", "Icon color:"))
+ self.cmbTreeIcon.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbTreeIcon.setItemText(1, _translate("Settings", "POV"))
+ self.cmbTreeIcon.setItemText(2, _translate("Settings", "Label"))
+ self.cmbTreeIcon.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbTreeIcon.setItemText(4, _translate("Settings", "Compile"))
+ self.label_4.setText(_translate("Settings", "Text color:"))
+ self.cmbTreeText.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbTreeText.setItemText(1, _translate("Settings", "POV"))
+ self.cmbTreeText.setItemText(2, _translate("Settings", "Label"))
+ self.cmbTreeText.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbTreeText.setItemText(4, _translate("Settings", "Compile"))
+ self.label_5.setText(_translate("Settings", "Background color:"))
+ self.cmbTreeBackground.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbTreeBackground.setItemText(1, _translate("Settings", "POV"))
+ self.cmbTreeBackground.setItemText(2, _translate("Settings", "Label"))
+ self.cmbTreeBackground.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbTreeBackground.setItemText(4, _translate("Settings", "Compile"))
+ self.groupBox_5.setTitle(_translate("Settings", "Index cards"))
+ self.label_9.setText(_translate("Settings", "Icon color:"))
+ self.cmbCorkIcon.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbCorkIcon.setItemText(1, _translate("Settings", "POV"))
+ self.cmbCorkIcon.setItemText(2, _translate("Settings", "Label"))
+ self.cmbCorkIcon.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbCorkIcon.setItemText(4, _translate("Settings", "Compile"))
+ self.label_10.setText(_translate("Settings", "Text color:"))
+ self.cmbCorkText.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbCorkText.setItemText(1, _translate("Settings", "POV"))
+ self.cmbCorkText.setItemText(2, _translate("Settings", "Label"))
+ self.cmbCorkText.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbCorkText.setItemText(4, _translate("Settings", "Compile"))
+ self.label_11.setText(_translate("Settings", "Background color:"))
+ self.cmbCorkBackground.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbCorkBackground.setItemText(1, _translate("Settings", "POV"))
+ self.cmbCorkBackground.setItemText(2, _translate("Settings", "Label"))
+ self.cmbCorkBackground.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbCorkBackground.setItemText(4, _translate("Settings", "Compile"))
+ self.label_12.setText(_translate("Settings", "Border color:"))
+ self.cmbCorkBorder.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbCorkBorder.setItemText(1, _translate("Settings", "POV"))
+ self.cmbCorkBorder.setItemText(2, _translate("Settings", "Label"))
+ self.cmbCorkBorder.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbCorkBorder.setItemText(4, _translate("Settings", "Compile"))
+ self.label_13.setText(_translate("Settings", "Corner color:"))
+ self.cmbCorkCorner.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbCorkCorner.setItemText(1, _translate("Settings", "POV"))
+ self.cmbCorkCorner.setItemText(2, _translate("Settings", "Label"))
+ self.cmbCorkCorner.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbCorkCorner.setItemText(4, _translate("Settings", "Compile"))
+ self.groupBox_4.setTitle(_translate("Settings", "Outline"))
+ self.label_6.setText(_translate("Settings", "Icon color:"))
+ self.cmbOutlineIcon.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbOutlineIcon.setItemText(1, _translate("Settings", "POV"))
+ self.cmbOutlineIcon.setItemText(2, _translate("Settings", "Label"))
+ self.cmbOutlineIcon.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbOutlineIcon.setItemText(4, _translate("Settings", "Compile"))
+ self.label_7.setText(_translate("Settings", "Text color:"))
+ self.cmbOutlineText.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbOutlineText.setItemText(1, _translate("Settings", "POV"))
+ self.cmbOutlineText.setItemText(2, _translate("Settings", "Label"))
+ self.cmbOutlineText.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbOutlineText.setItemText(4, _translate("Settings", "Compile"))
+ self.label_8.setText(_translate("Settings", "Background color:"))
+ self.cmbOutlineBackground.setItemText(0, _translate("Settings", "Nothing"))
+ self.cmbOutlineBackground.setItemText(1, _translate("Settings", "POV"))
+ self.cmbOutlineBackground.setItemText(2, _translate("Settings", "Label"))
+ self.cmbOutlineBackground.setItemText(3, _translate("Settings", "Progress"))
+ self.cmbOutlineBackground.setItemText(4, _translate("Settings", "Compile"))
+ self.chkOutlineTitle.setText(_translate("Settings", "Title"))
+ self.chkOutlinePOV.setText(_translate("Settings", "POV"))
+ self.chkOutlineLabel.setText(_translate("Settings", "Label"))
+ self.chkOutlineStatus.setText(_translate("Settings", "Status"))
+ self.chkOutlineCompile.setText(_translate("Settings", "Compile"))
+ self.chkOutlineWordCount.setText(_translate("Settings", "Word count"))
+ self.chkOutlineGoal.setText(_translate("Settings", "Goal"))
+ self.chkOutlinePercentage.setText(_translate("Settings", "Percentage"))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Settings", "Views"))
self.btnLabelColor.setShortcut(_translate("Settings", "Ctrl+S"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Settings", "Labels"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Settings", "Status"))
diff --git a/src/ui/settings.ui b/src/ui/settings.ui
index 8e78126..4afa7d3 100644
--- a/src/ui/settings.ui
+++ b/src/ui/settings.ui
@@ -7,7 +7,7 @@
0
0
485
- 379
+ 585
@@ -17,7 +17,7 @@
-
- 0
+ 1
true
@@ -111,6 +111,65 @@
+ -
+
+
-
+
+
+ If no changes during
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ border-radius: 6px;
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ seconds.
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
-
@@ -139,6 +198,535 @@
+
+
+ Views
+
+
+ -
+
+
-
+
+
+ Tree
+
+
+
-
+
+
+ Icon color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Text color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Background color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+
+
+
+ -
+
+
+ Index cards
+
+
+
-
+
+
+ Icon color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Text color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Background color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Border color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Corner color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Outline
+
+
+
-
+
+
-
+
+
+ Icon color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Text color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+ -
+
+
+ Background color:
+
+
+
+ -
+
+
-
+
+ Nothing
+
+
+ -
+
+ POV
+
+
+ -
+
+ Label
+
+
+ -
+
+ Progress
+
+
+ -
+
+ Compile
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
-
+
+
+ Title
+
+
+ true
+
+
+
+ -
+
+
+ POV
+
+
+ true
+
+
+
+ -
+
+
+ Label
+
+
+ true
+
+
+
+ -
+
+
+ Status
+
+
+ true
+
+
+
+ -
+
+
+ Compile
+
+
+ true
+
+
+
+ -
+
+
+ Word count
+
+
+ true
+
+
+
+ -
+
+
+ Goal
+
+
+ true
+
+
+
+ -
+
+
+ Percentage
+
+
+ true
+
+
+
+
+
+
+
+
+
+
Labels
diff --git a/src/ui/views/outlineView.py b/src/ui/views/outlineView.py
index 5520df7..8dacd9a 100644
--- a/src/ui/views/outlineView.py
+++ b/src/ui/views/outlineView.py
@@ -55,12 +55,7 @@ class outlineView(QTreeView, dndView, outlineBasics):
self.setItemDelegateForColumn(Outline.label.value, self.outlineLabelDelegate)
# Hiding columns
- for c in range(1, self.model().columnCount()):
- self.hideColumn(c)
- for c in [Outline.POV.value, Outline.status.value, Outline.compile.value,
- Outline.wordCount.value, Outline.goal.value, Outline.goalPercentage.value,
- Outline.label.value]:
- self.showColumn(c)
+ self.hideColumns()
self.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)
self.header().setSectionResizeMode(Outline.POV.value, QHeaderView.ResizeToContents)
@@ -71,6 +66,12 @@ class outlineView(QTreeView, dndView, outlineBasics):
self.header().setSectionResizeMode(Outline.goal.value, QHeaderView.ResizeToContents)
self.header().setSectionResizeMode(Outline.goalPercentage.value, QHeaderView.ResizeToContents)
+ def hideColumns(self):
+ for c in range(self.model().columnCount()):
+ self.hideColumn(c)
+ for c in settings.outlineViewColumns:
+ self.showColumn(c)
+
def setRootIndex(self, index):
QTreeView.setRootIndex(self, index)
self.outlineGoalPercentageDelegate = outlineGoalPercentageDelegate(index)