Started adding project and doc classes.
This commit is contained in:
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user