diff --git a/nw/gui/doceditor.py b/nw/gui/doceditor.py new file mode 100644 index 00000000..cf278c89 --- /dev/null +++ b/nw/gui/doceditor.py @@ -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 diff --git a/nw/gui/doctabs.py b/nw/gui/doctabs.py new file mode 100644 index 00000000..4887d435 --- /dev/null +++ b/nw/gui/doctabs.py @@ -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 diff --git a/nw/gui/doctree.py b/nw/gui/doctree.py new file mode 100644 index 00000000..9a82c7af --- /dev/null +++ b/nw/gui/doctree.py @@ -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 diff --git a/nw/gui/winmain.py b/nw/gui/winmain.py index 219d569f..b2c84326 100644 --- a/nw/gui/winmain.py +++ b/nw/gui/winmain.py @@ -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")