Started adding project and doc classes.

This commit is contained in:
Veronica K. B. Olsen
2018-09-29 20:33:19 +02:00
parent 009555b963
commit abd9d441ad
6 changed files with 187 additions and 9 deletions
+4
View File
@@ -74,6 +74,10 @@ logger = logging.getLogger(__name__)
# Load the main config as a global object # Load the main config as a global object
CONFIG = Config() CONFIG = Config()
# Constants
DOCTYPE_DOC = 0
DOCTYPE_PROJECT = 1
def main(sysArgs): def main(sysArgs):
""" """
Parses command line, sets up logging, and launches main GUI. Parses command line, sets up logging, and launches main GUI.
+31 -7
View File
@@ -13,11 +13,12 @@
import logging import logging
import nw import nw
from os import path from os import path
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QTabWidget, QWidget, QVBoxLayout from PyQt5.QtWidgets import QTabWidget, QWidget, QVBoxLayout
from nw.gui.doceditor import GuiDocEditor from nw.gui.doceditor import GuiDocEditor
from nw.gui.projecteditor import GuiProjectEditor
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -36,14 +37,37 @@ class GuiDocTabs(QTabWidget):
return return
def createTab(self, docFile=None): def createTab(self, theName=None, tabType=None):
if docFile is None: if tabType == nw.DOCTYPE_DOC:
self._createTabDoc(theName)
return True
elif tabType == nw.DOCTYPE_PROJECT:
self._createTabProject(theName)
return True
return False
#
# Internal Functions
#
def _createTabDoc(self, docName=None):
if docName is None:
tabName = "New Document" tabName = "New Document"
else: else:
tabName = docFile tabName = docName
thisTab = GuiDocEditor() thisTab = GuiDocEditor()
self.tabList.append(thisTab) self.tabList.append(thisTab)
self.addTab(self.tabList[-1],tabName) self.addTab(self.tabList[-1],tabName)
return True return True
def _createTabProject(self, projectName=None):
if projectName is None:
tabName = "New Project"
else:
tabName = projectName
thisTab = GuiProjectEditor()
self.tabList.append(thisTab)
self.addTab(self.tabList[-1],tabName)
return True
# END Class GuiDocTabs # END Class GuiDocTabs
+48
View File
@@ -0,0 +1,48 @@
# -*- coding: utf-8 -*
"""novelWriter GUI Project Editor
novelWriter GUI Project Editor
===================================
Class holding the project editor
File History:
Created: 2018-09-29 [0.1.0]
"""
import logging
import nw
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGroupBox, QFormLayout, QLabel, QLineEdit, QPlainTextEdit
logger = logging.getLogger(__name__)
class GuiProjectEditor(QWidget):
def __init__(self):
QWidget.__init__(self)
logger.debug("Initialising ProjectEditor ...")
self.outerBox = QVBoxLayout()
self.setLayout(self.outerBox)
self.mainGroup = QGroupBox("Project Settings")
self.mainForm = QFormLayout()
self.editName = QLineEdit()
self.editTitle = QLineEdit()
self.editAuthors = QPlainTextEdit()
self.mainForm.addRow("Working Name", self.editName)
self.mainForm.addRow("Book Title", self.editTitle)
self.mainForm.addRow("Book Authors", self.editAuthors)
self.mainGroup.setLayout(self.mainForm)
self.outerBox.addWidget(self.mainGroup)
logger.debug("ProjectEditor initialisation complete")
return
# END Class GuiProjectEditor
+45 -2
View File
@@ -36,7 +36,6 @@ class GuiMain(QMainWindow):
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.docTabs = GuiDocTabs() self.docTabs = GuiDocTabs()
@@ -59,11 +58,12 @@ class GuiMain(QMainWindow):
self._buildMenu() self._buildMenu()
self.docTabs.createTab() # self.docTabs.createTab()
self.show() self.show()
logger.debug("GUI initialisation complete") logger.debug("GUI initialisation complete")
self.statBar.showMessage("Ready")
return return
@@ -78,6 +78,17 @@ class GuiMain(QMainWindow):
self.setWindowTitle(winTitle) self.setWindowTitle(winTitle)
return True return True
#
# Project Actions
#
def newProject(self):
logger.info("Creating new project")
self.docTabs.createTab(tabType=nw.DOCTYPE_PROJECT)
return
# #
# Internal Functions # Internal Functions
# #
@@ -88,6 +99,38 @@ class GuiMain(QMainWindow):
# File # File
fileMenu = menuBar.addMenu("&File") fileMenu = menuBar.addMenu("&File")
# File > New Project
menuNewProject = QAction(QIcon.fromTheme("folder-new"), "New Project", menuBar)
menuNewProject.setStatusTip("Create New Project")
menuNewProject.triggered.connect(self.newProject)
fileMenu.addAction(menuNewProject)
# File > Open Project
menuOpenProject = QAction(QIcon.fromTheme("folder-open"), "Open Project", menuBar)
menuOpenProject.setStatusTip("Open Project")
fileMenu.addAction(menuOpenProject)
# File > Save Project
menuSaveProject = QAction(QIcon.fromTheme("document-save"), "Save Project", menuBar)
menuSaveProject.setStatusTip("Save Project")
fileMenu.addAction(menuSaveProject)
# File > Recent Project
menuRecentProject = QAction(QIcon.fromTheme("document-open-recent"), "Open Recent Project", menuBar)
menuRecentProject.setStatusTip("Open Recent Project")
fileMenu.addAction(menuRecentProject)
# ---------------------
fileMenu.addSeparator()
# File > Project Settings
menuProjectSettings = QAction(QIcon.fromTheme("document-properties"), "Project Settings", menuBar)
menuProjectSettings.setStatusTip("Project Settings")
fileMenu.addAction(menuProjectSettings)
# ---------------------
fileMenu.addSeparator()
# File > New # File > New
menuNew = QAction(QIcon.fromTheme("document-new"), "&New", menuBar) menuNew = QAction(QIcon.fromTheme("document-new"), "&New", menuBar)
menuNew.setShortcut("Ctrl+N") menuNew.setShortcut("Ctrl+N")
+26
View File
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*
"""novelWriter Project Document
novelWriter Project Document
================================
Class holding a document
File History:
Created: 2018-09-29 [0.1.0]
"""
import logging
import nw
from os import path
logger = logging.getLogger(__name__)
class NWDoc():
def __init__(self):
return
# END Class NWDoc
+33
View File
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*
"""novelWriter Project Wrapper
novelWriter Project Wrapper
===============================
Class holding a project
File History:
Created: 2018-09-29 [0.1.0]
"""
import logging
import nw
from os import path
logger = logging.getLogger(__name__)
class NWProject():
def __init__(self):
self.projFolder = None
self.projTree = []
return
def buildProjectTree(self):
return True
# END Class NWProject