Project class should not contain any GUI elements. Status icons moved to main GUI class.
This commit is contained in:
@@ -35,6 +35,7 @@ class GuiDocDetails(QFrame):
|
|||||||
logger.debug("Initialising DocDetails ...")
|
logger.debug("Initialising DocDetails ...")
|
||||||
self.mainConf = nw.CONFIG
|
self.mainConf = nw.CONFIG
|
||||||
self.debugGUI = self.mainConf.debugGUI
|
self.debugGUI = self.mainConf.debugGUI
|
||||||
|
self.theParent = theParent
|
||||||
self.theProject = theProject
|
self.theProject = theProject
|
||||||
|
|
||||||
self.mainBox = QGridLayout(self)
|
self.mainBox = QGridLayout(self)
|
||||||
@@ -70,11 +71,11 @@ class GuiDocDetails(QFrame):
|
|||||||
colTwo = [""]*4
|
colTwo = [""]*4
|
||||||
else:
|
else:
|
||||||
itemStatus = nwItem.itemStatus
|
itemStatus = nwItem.itemStatus
|
||||||
if itemStatus < 0 or itemStatus >= len(self.theProject.statusLabels):
|
if itemStatus < 0 or itemStatus >= len(self.theParent.statusLabels):
|
||||||
itemStatus = 0
|
itemStatus = 0
|
||||||
colTwo = [
|
colTwo = [
|
||||||
nwItem.itemName,
|
nwItem.itemName,
|
||||||
self.theProject.statusLabels[itemStatus],
|
self.theParent.statusLabels[itemStatus],
|
||||||
nwLabels.CLASS_NAME[nwItem.itemClass],
|
nwLabels.CLASS_NAME[nwItem.itemClass],
|
||||||
nwLabels.LAYOUT_NAME[nwItem.itemLayout],
|
nwLabels.LAYOUT_NAME[nwItem.itemLayout],
|
||||||
]
|
]
|
||||||
|
|||||||
+2
-2
@@ -252,12 +252,12 @@ class GuiDocTree(QTreeWidget):
|
|||||||
if nwItem.itemType == nwItemType.FILE:
|
if nwItem.itemType == nwItemType.FILE:
|
||||||
tStatus += "."+nwLabels.LAYOUT_FLAG[nwItem.itemLayout]
|
tStatus += "."+nwLabels.LAYOUT_FLAG[nwItem.itemLayout]
|
||||||
nStatus = nwItem.itemStatus
|
nStatus = nwItem.itemStatus
|
||||||
if nStatus < 0 or nStatus >= len(self.theProject.statusIcons):
|
if nStatus < 0 or nStatus >= len(self.theParent.statusIcons):
|
||||||
nStatus = 0
|
nStatus = 0
|
||||||
|
|
||||||
trItem.setText(self.C_NAME,tName)
|
trItem.setText(self.C_NAME,tName)
|
||||||
trItem.setText(self.C_FLAGS,tStatus)
|
trItem.setText(self.C_FLAGS,tStatus)
|
||||||
trItem.setIcon(self.C_FLAGS,self.theProject.statusIcons[nStatus])
|
trItem.setIcon(self.C_FLAGS,self.theParent.statusIcons[nStatus])
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
+24
-2
@@ -15,7 +15,7 @@ import nw
|
|||||||
|
|
||||||
from os import path
|
from os import path
|
||||||
from PyQt5.QtWidgets import QWidget, QMainWindow, QVBoxLayout, QFrame, QSplitter, QFileDialog, QStackedWidget, QShortcut, QMessageBox
|
from PyQt5.QtWidgets import QWidget, QMainWindow, QVBoxLayout, QFrame, QSplitter, QFileDialog, QStackedWidget, QShortcut, QMessageBox
|
||||||
from PyQt5.QtGui import QIcon
|
from PyQt5.QtGui import QIcon, QPixmap, QColor
|
||||||
from PyQt5.QtCore import Qt, QTimer
|
from PyQt5.QtCore import Qt, QTimer
|
||||||
|
|
||||||
from nw.gui.doctree import GuiDocTree
|
from nw.gui.doctree import GuiDocTree
|
||||||
@@ -57,6 +57,10 @@ class GuiMain(QMainWindow):
|
|||||||
self.mainMenu = GuiMainMenu(self, self.theProject)
|
self.mainMenu = GuiMainMenu(self, self.theProject)
|
||||||
self.statusBar = GuiMainStatus(self)
|
self.statusBar = GuiMainStatus(self)
|
||||||
|
|
||||||
|
# Minor Gui Elements
|
||||||
|
self.statusIcons = []
|
||||||
|
self.statusLabels = []
|
||||||
|
|
||||||
# Assemble Main Window
|
# Assemble Main Window
|
||||||
self.stackPane = QStackedWidget()
|
self.stackPane = QStackedWidget()
|
||||||
self.stackNone = self.stackPane.addWidget(QWidget())
|
self.stackNone = self.stackPane.addWidget(QWidget())
|
||||||
@@ -82,7 +86,7 @@ class GuiMain(QMainWindow):
|
|||||||
self.treeView.itemSelectionChanged.connect(self._treeSingleClick)
|
self.treeView.itemSelectionChanged.connect(self._treeSingleClick)
|
||||||
self.treeView.itemDoubleClicked.connect(self._treeDoubleClick)
|
self.treeView.itemDoubleClicked.connect(self._treeDoubleClick)
|
||||||
self.treeView.buildTree()
|
self.treeView.buildTree()
|
||||||
QShortcut(Qt.Key_Return, self.treeView, context=Qt.WidgetShortcut, activated=self._treeKeyPressReturn)
|
self._makeStatusIcons()
|
||||||
|
|
||||||
# Set Main Window Elements
|
# Set Main Window Elements
|
||||||
self.setMenuBar(self.mainMenu)
|
self.setMenuBar(self.mainMenu)
|
||||||
@@ -106,6 +110,13 @@ class GuiMain(QMainWindow):
|
|||||||
self.asDocTimer.timeout.connect(self._autoSaveDocument)
|
self.asDocTimer.timeout.connect(self._autoSaveDocument)
|
||||||
self.asDocTimer.start()
|
self.asDocTimer.start()
|
||||||
|
|
||||||
|
# Keyboard Shortcuts
|
||||||
|
QShortcut(Qt.Key_Return, self.treeView, context=Qt.WidgetShortcut, activated=self._treeKeyPressReturn)
|
||||||
|
|
||||||
|
# Forward Functions
|
||||||
|
self.setStatus = self.statusBar.setStatus
|
||||||
|
self.setProjectStatus = self.statusBar.setProjectStatus
|
||||||
|
|
||||||
if self.mainConf.showGUI:
|
if self.mainConf.showGUI:
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
@@ -162,6 +173,7 @@ class GuiMain(QMainWindow):
|
|||||||
self.treeView.buildTree()
|
self.treeView.buildTree()
|
||||||
self.mainMenu.updateRecentProjects()
|
self.mainMenu.updateRecentProjects()
|
||||||
self._setWindowTitle(self.theProject.projName)
|
self._setWindowTitle(self.theProject.projName)
|
||||||
|
self._makeStatusIcons()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def saveProject(self):
|
def saveProject(self):
|
||||||
@@ -340,6 +352,16 @@ class GuiMain(QMainWindow):
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def _makeStatusIcons(self):
|
||||||
|
self.statusIcons = []
|
||||||
|
self.statusLabels = []
|
||||||
|
for sLabel, sR, sG, sB in self.theProject.statusCols:
|
||||||
|
theIcon = QPixmap(32,32)
|
||||||
|
theIcon.fill(QColor(sR,sG,sB))
|
||||||
|
self.statusIcons.append(QIcon(theIcon))
|
||||||
|
self.statusLabels.append(sLabel)
|
||||||
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
# Events
|
# Events
|
||||||
##
|
##
|
||||||
|
|||||||
+5
-24
@@ -19,8 +19,6 @@ from hashlib import sha256
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
from PyQt5.QtGui import QIcon, QPixmap, QColor
|
|
||||||
|
|
||||||
from nw.enum import nwItemType, nwItemClass, nwItemLayout
|
from nw.enum import nwItemType, nwItemClass, nwItemLayout
|
||||||
from nw.project.item import NWItem
|
from nw.project.item import NWItem
|
||||||
|
|
||||||
@@ -31,8 +29,8 @@ class NWProject():
|
|||||||
def __init__(self, theParent):
|
def __init__(self, theParent):
|
||||||
|
|
||||||
# Internal
|
# Internal
|
||||||
self.mainConf = nw.CONFIG
|
|
||||||
self.theParent = theParent
|
self.theParent = theParent
|
||||||
|
self.mainConf = self.theParent.mainConf
|
||||||
self.projChanged = None
|
self.projChanged = None
|
||||||
|
|
||||||
# Project Settings
|
# Project Settings
|
||||||
@@ -46,8 +44,6 @@ class NWProject():
|
|||||||
self.bookTitle = None
|
self.bookTitle = None
|
||||||
self.bookAuthors = None
|
self.bookAuthors = None
|
||||||
self.statusCols = None
|
self.statusCols = None
|
||||||
self.statusIcons = None
|
|
||||||
self.statusLabels = None
|
|
||||||
|
|
||||||
self.clearProject()
|
self.clearProject()
|
||||||
|
|
||||||
@@ -108,7 +104,7 @@ class NWProject():
|
|||||||
hChapt = self.newFolder("New Chapter", nwItemClass.NOVEL, hNovel)
|
hChapt = self.newFolder("New Chapter", nwItemClass.NOVEL, hNovel)
|
||||||
hScene = self.newFile("New Scene", nwItemClass.NOVEL, hChapt)
|
hScene = self.newFile("New Scene", nwItemClass.NOVEL, hChapt)
|
||||||
|
|
||||||
return
|
return True
|
||||||
|
|
||||||
def clearProject(self):
|
def clearProject(self):
|
||||||
|
|
||||||
@@ -124,16 +120,12 @@ class NWProject():
|
|||||||
self.projName = ""
|
self.projName = ""
|
||||||
self.bookTitle = ""
|
self.bookTitle = ""
|
||||||
self.bookAuthors = []
|
self.bookAuthors = []
|
||||||
|
|
||||||
self.statusCols = [
|
self.statusCols = [
|
||||||
("New", 100,100,100),
|
("New", 100,100,100),
|
||||||
("Note", 200, 50, 0),
|
("Note", 200, 50, 0),
|
||||||
("Draft", 200,150, 0),
|
("Draft", 200,150, 0),
|
||||||
("Finished", 50,200, 0),
|
("Finished", 50,200, 0),
|
||||||
]
|
]
|
||||||
self.statusIcons = []
|
|
||||||
self.statusLabels = []
|
|
||||||
self._makeStatusIcons()
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -195,9 +187,8 @@ class NWProject():
|
|||||||
nwItem.setFromTag(xValue.tag,xValue.text)
|
nwItem.setFromTag(xValue.tag,xValue.text)
|
||||||
self._appendItem(tHandle,pHandle,nwItem)
|
self._appendItem(tHandle,pHandle,nwItem)
|
||||||
|
|
||||||
self._makeStatusIcons()
|
|
||||||
self.mainConf.setRecent(self.projPath)
|
self.mainConf.setRecent(self.projPath)
|
||||||
self.theParent.statusBar.setStatus("Opened Project: %s" % self.projName)
|
self.theParent.setStatus("Opened Project: %s" % self.projName)
|
||||||
|
|
||||||
self._scanProjectFolder()
|
self._scanProjectFolder()
|
||||||
self.setProjectChanged(False)
|
self.setProjectChanged(False)
|
||||||
@@ -258,7 +249,7 @@ class NWProject():
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
self.mainConf.setRecent(self.projPath)
|
self.mainConf.setRecent(self.projPath)
|
||||||
self.theParent.statusBar.setStatus("Saved Project: %s" % self.projName)
|
self.theParent.setStatus("Saved Project: %s" % self.projName)
|
||||||
self.setProjectChanged(False)
|
self.setProjectChanged(False)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
@@ -301,7 +292,7 @@ class NWProject():
|
|||||||
|
|
||||||
def setProjectChanged(self, bValue):
|
def setProjectChanged(self, bValue):
|
||||||
self.projChanged = bValue
|
self.projChanged = bValue
|
||||||
self.theParent.statusBar.setProjectStatus(self.projChanged)
|
self.theParent.setProjectStatus(self.projChanged)
|
||||||
return
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -411,16 +402,6 @@ class NWProject():
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def _makeStatusIcons(self):
|
|
||||||
self.statusIcons = []
|
|
||||||
self.statusLabels = []
|
|
||||||
for sLabel, sR, sG, sB in self.statusCols:
|
|
||||||
theIcon = QPixmap(32,32)
|
|
||||||
theIcon.fill(QColor(sR,sG,sB))
|
|
||||||
self.statusIcons.append(QIcon(theIcon))
|
|
||||||
self.statusLabels.append(sLabel)
|
|
||||||
return
|
|
||||||
|
|
||||||
def _makeHandle(self, addSeed=""):
|
def _makeHandle(self, addSeed=""):
|
||||||
newSeed = str(time()) + addSeed
|
newSeed = str(time()) + addSeed
|
||||||
logger.verbose("Generating handle with seed '%s'" % newSeed)
|
logger.verbose("Generating handle with seed '%s'" % newSeed)
|
||||||
|
|||||||
Reference in New Issue
Block a user