Added classes for tabs and document editor.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# -*- coding: utf-8 -*
|
||||
"""novelWriter GUI Document Editor
|
||||
|
||||
novelWriter – GUI Document Editor
|
||||
===================================
|
||||
Class holding the document editor
|
||||
|
||||
File History:
|
||||
Created: 2018-09-29 [0.1.0]
|
||||
|
||||
"""
|
||||
|
||||
import logging
|
||||
import nw
|
||||
|
||||
from os import path
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QTextEdit
|
||||
# from PyQt5.QtWidgets import QTabWidget, QWidget
|
||||
# from PyQt5.QtGui import QStandardItemModel
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class GuiDocEditor(QTextEdit):
|
||||
|
||||
def __init__(self):
|
||||
QTextEdit.__init__(self)
|
||||
|
||||
logger.debug("Initialising DocEditor ...")
|
||||
self.mainConf = nw.CONFIG
|
||||
self.setPlainText("Hello Kitty!")
|
||||
|
||||
logger.debug("DocEditor initialisation complete")
|
||||
|
||||
return
|
||||
|
||||
|
||||
# END Class GuiDocEditor
|
||||
@@ -0,0 +1,55 @@
|
||||
# -*- coding: utf-8 -*
|
||||
"""novelWriter GUI Document Tabs
|
||||
|
||||
novelWriter – GUI Document Tabs
|
||||
=================================
|
||||
Class holding the document tab view
|
||||
|
||||
File History:
|
||||
Created: 2018-09-29 [0.1.0]
|
||||
|
||||
"""
|
||||
|
||||
import logging
|
||||
import nw
|
||||
|
||||
from os import path
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QTabWidget, QWidget, QVBoxLayout
|
||||
|
||||
from nw.gui.doceditor import GuiDocEditor
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class GuiDocTabs(QTabWidget):
|
||||
|
||||
def __init__(self):
|
||||
QTabWidget.__init__(self)
|
||||
|
||||
logger.debug("Initialising DocTabs ...")
|
||||
self.mainConf = nw.CONFIG
|
||||
self.docList = []
|
||||
self.tabList = []
|
||||
|
||||
self.resize(900,500)
|
||||
|
||||
logger.debug("DocTabs initialisation complete")
|
||||
|
||||
return
|
||||
|
||||
def createTab(self, docFile=None):
|
||||
if docFile is None:
|
||||
tabName = "New Document"
|
||||
else:
|
||||
tabName = docFile
|
||||
thisTab = QWidget()
|
||||
tabBox = QVBoxLayout()
|
||||
thisDoc = GuiDocEditor()
|
||||
tabBox.addWidget(thisDoc)
|
||||
thisTab.setLayout(tabBox)
|
||||
self.tabList.append(thisTab)
|
||||
self.docList.append(thisDoc)
|
||||
self.addTab(self.tabList[-1],tabName)
|
||||
return True
|
||||
|
||||
# END Class GuiDocTabs
|
||||
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*
|
||||
"""novelWriter GUI Document Tree
|
||||
|
||||
novelWriter – GUI Document Tree
|
||||
=================================
|
||||
Class holding the left side document tree view
|
||||
|
||||
File History:
|
||||
Created: 2018-09-29 [0.1.0]
|
||||
|
||||
"""
|
||||
|
||||
import logging
|
||||
import nw
|
||||
|
||||
from os import path
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QTreeView
|
||||
from PyQt5.QtGui import QStandardItemModel
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class GuiDocTree(QTreeView):
|
||||
|
||||
def __init__(self):
|
||||
QTreeView.__init__(self)
|
||||
|
||||
logger.debug("Initialising DocTree ...")
|
||||
self.mainConf = nw.CONFIG
|
||||
|
||||
self.treeModel = QStandardItemModel(0, 3, self)
|
||||
self.treeModel.setHeaderData(0, Qt.Horizontal, "Name")
|
||||
self.treeModel.setHeaderData(1, Qt.Horizontal, "Words")
|
||||
self.treeModel.setHeaderData(2, Qt.Horizontal, "Status")
|
||||
|
||||
self.setModel(self.treeModel)
|
||||
|
||||
logger.debug("DocTree initialisation complete")
|
||||
|
||||
return
|
||||
|
||||
# END Class GuiDocTree
|
||||
+30
-14
@@ -6,7 +6,7 @@
|
||||
Class holding the main window
|
||||
|
||||
File History:
|
||||
Created: 2018-0+-22 [0.1.0]
|
||||
Created: 2018-09-22 [0.1.0]
|
||||
|
||||
"""
|
||||
|
||||
@@ -18,6 +18,9 @@ from PyQt5.QtWidgets import QWidget, QMainWindow, QHBoxLayout, QVBoxLayout, QFra
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QIcon, QStandardItemModel
|
||||
|
||||
from nw.gui.doctree import GuiDocTree
|
||||
from nw.gui.doctabs import GuiDocTabs
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class GuiMain(QMainWindow):
|
||||
@@ -28,30 +31,25 @@ class GuiMain(QMainWindow):
|
||||
logger.debug("Initialising GUI ...")
|
||||
self.mainConf = nw.CONFIG
|
||||
|
||||
self.resize(900,600)
|
||||
self.setWindowTitle("%s [%s]" % (nw.__package__, nw.__version__))
|
||||
self.resize(1100,650)
|
||||
self.setTitle()
|
||||
self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg")))
|
||||
|
||||
self.statBar = self.statusBar()
|
||||
self.statBar.showMessage("Hello Kitty!")
|
||||
|
||||
self.docTabs = GuiDocTabs()
|
||||
|
||||
self.treePane = QFrame()
|
||||
self.treePane.setFrameShape(QFrame.StyledPanel)
|
||||
self.textPane = QFrame()
|
||||
self.textPane.setFrameShape(QFrame.StyledPanel)
|
||||
# self.textPane = QFrame()
|
||||
# self.textPane.setFrameShape(QFrame.StyledPanel)
|
||||
self.splitMain = QSplitter(Qt.Horizontal)
|
||||
self.splitMain.addWidget(self.treePane)
|
||||
self.splitMain.addWidget(self.textPane)
|
||||
|
||||
self.treeModel = QStandardItemModel(0, 3, self)
|
||||
self.treeModel.setHeaderData(0, Qt.Horizontal, "Name")
|
||||
self.treeModel.setHeaderData(1, Qt.Horizontal, "Words")
|
||||
self.treeModel.setHeaderData(2, Qt.Horizontal, "Status")
|
||||
self.splitMain.addWidget(self.docTabs)
|
||||
|
||||
self.treeBox = QVBoxLayout()
|
||||
# self.treeBox.addStretch(1)
|
||||
self.treeView = QTreeView()
|
||||
self.treeView.setModel(self.treeModel)
|
||||
self.treeView = GuiDocTree()
|
||||
self.treeBox.addWidget(self.treeView)
|
||||
self.treePane.setLayout(self.treeBox)
|
||||
|
||||
@@ -59,11 +57,29 @@ class GuiMain(QMainWindow):
|
||||
|
||||
self._buildMenu()
|
||||
|
||||
self.docTabs.createTab()
|
||||
|
||||
self.show()
|
||||
|
||||
logger.debug("GUI initialisation complete")
|
||||
|
||||
return
|
||||
|
||||
#
|
||||
# Set and Get Methods
|
||||
#
|
||||
|
||||
def setTitle(self, projName=None):
|
||||
winTitle = "%s [%s]" % (nw.__package__, nw.__version__)
|
||||
if projName is not None:
|
||||
winTitle += " - %s" % projName
|
||||
self.setWindowTitle(winTitle)
|
||||
return True
|
||||
|
||||
#
|
||||
# Internal Functions
|
||||
#
|
||||
|
||||
def _buildMenu(self):
|
||||
menuBar = self.menuBar()
|
||||
menuBar.addMenu("File")
|
||||
|
||||
Reference in New Issue
Block a user