Added classes for tabs and document editor.

This commit is contained in:
Veronica K. B. Olsen
2018-09-29 16:35:11 +02:00
parent c03db3205d
commit 4a83e210a3
4 changed files with 165 additions and 14 deletions
+38
View File
@@ -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
+55
View File
@@ -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
+42
View File
@@ -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
View File
@@ -6,7 +6,7 @@
Class holding the main window Class holding the main window
File History: 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.QtCore import Qt
from PyQt5.QtGui import QIcon, QStandardItemModel from PyQt5.QtGui import QIcon, QStandardItemModel
from nw.gui.doctree import GuiDocTree
from nw.gui.doctabs import GuiDocTabs
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class GuiMain(QMainWindow): class GuiMain(QMainWindow):
@@ -28,30 +31,25 @@ class GuiMain(QMainWindow):
logger.debug("Initialising GUI ...") logger.debug("Initialising GUI ...")
self.mainConf = nw.CONFIG self.mainConf = nw.CONFIG
self.resize(900,600) self.resize(1100,650)
self.setWindowTitle("%s [%s]" % (nw.__package__, nw.__version__)) self.setTitle()
self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg"))) self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg")))
self.statBar = self.statusBar() self.statBar = self.statusBar()
self.statBar.showMessage("Hello Kitty!") self.statBar.showMessage("Hello Kitty!")
self.docTabs = GuiDocTabs()
self.treePane = QFrame() self.treePane = QFrame()
self.treePane.setFrameShape(QFrame.StyledPanel) self.treePane.setFrameShape(QFrame.StyledPanel)
self.textPane = QFrame() # self.textPane = QFrame()
self.textPane.setFrameShape(QFrame.StyledPanel) # self.textPane.setFrameShape(QFrame.StyledPanel)
self.splitMain = QSplitter(Qt.Horizontal) self.splitMain = QSplitter(Qt.Horizontal)
self.splitMain.addWidget(self.treePane) self.splitMain.addWidget(self.treePane)
self.splitMain.addWidget(self.textPane) self.splitMain.addWidget(self.docTabs)
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.treeBox = QVBoxLayout() self.treeBox = QVBoxLayout()
# self.treeBox.addStretch(1) self.treeView = GuiDocTree()
self.treeView = QTreeView()
self.treeView.setModel(self.treeModel)
self.treeBox.addWidget(self.treeView) self.treeBox.addWidget(self.treeView)
self.treePane.setLayout(self.treeBox) self.treePane.setLayout(self.treeBox)
@@ -59,11 +57,29 @@ class GuiMain(QMainWindow):
self._buildMenu() self._buildMenu()
self.docTabs.createTab()
self.show() self.show()
logger.debug("GUI initialisation complete") logger.debug("GUI initialisation complete")
return 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): def _buildMenu(self):
menuBar = self.menuBar() menuBar = self.menuBar()
menuBar.addMenu("File") menuBar.addMenu("File")