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
|
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")
|
||||||
|
|||||||
Reference in New Issue
Block a user