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
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")