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
CONFIG = Config()
# Constants
DOCTYPE_DOC = 0
DOCTYPE_PROJECT = 1
def main(sysArgs):
"""
Parses command line, sets up logging, and launches main GUI.
+27 -3
View File
@@ -18,6 +18,7 @@ from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QTabWidget, QWidget, QVBoxLayout
from nw.gui.doceditor import GuiDocEditor
from nw.gui.projecteditor import GuiProjectEditor
logger = logging.getLogger(__name__)
@@ -36,14 +37,37 @@ class GuiDocTabs(QTabWidget):
return
def createTab(self, docFile=None):
if docFile is None:
def createTab(self, theName=None, tabType=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"
else:
tabName = docFile
tabName = docName
thisTab = GuiDocEditor()
self.tabList.append(thisTab)
self.addTab(self.tabList[-1],tabName)
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
+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.statBar = self.statusBar()
self.statBar.showMessage("Hello Kitty!")
self.docTabs = GuiDocTabs()
@@ -59,11 +58,12 @@ class GuiMain(QMainWindow):
self._buildMenu()
self.docTabs.createTab()
# self.docTabs.createTab()
self.show()
logger.debug("GUI initialisation complete")
self.statBar.showMessage("Ready")
return
@@ -78,6 +78,17 @@ class GuiMain(QMainWindow):
self.setWindowTitle(winTitle)
return True
#
# Project Actions
#
def newProject(self):
logger.info("Creating new project")
self.docTabs.createTab(tabType=nw.DOCTYPE_PROJECT)
return
#
# Internal Functions
#
@@ -88,6 +99,38 @@ class GuiMain(QMainWindow):
# 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
menuNew = QAction(QIcon.fromTheme("document-new"), "&New", menuBar)
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