diff --git a/nw/gui/projecteditor.py b/nw/gui/projecteditor.py index d0737b10..291ae00b 100644 --- a/nw/gui/projecteditor.py +++ b/nw/gui/projecteditor.py @@ -33,6 +33,8 @@ class GuiProjectEditor(QDialog): self.outerBox = QHBoxLayout() self.innerBox = QVBoxLayout() + self.setWindowTitle("Project Settings") + self.gradPath = path.abspath(path.join(self.mainConf.appPath,"graphics","block.svg")) self.svgGradient = QSvgWidget(self.gradPath) self.svgGradient.setFixedWidth(80) diff --git a/nw/gui/winmain.py b/nw/gui/winmain.py index b3daf676..59de525a 100644 --- a/nw/gui/winmain.py +++ b/nw/gui/winmain.py @@ -35,7 +35,7 @@ class GuiMain(QMainWindow): self.theProject = NWProject() self.resize(1100,650) - self.setTitle() + self._setWindowTitle() self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg"))) self.docEditor = GuiDocEditor() @@ -70,26 +70,13 @@ class GuiMain(QMainWindow): 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 - # # Project Actions # def newProject(self): - logger.info("Creating new project") self.docTabs.createTab(tabType=nw.DOCTYPE_PROJECT) - return def openProject(self): @@ -99,6 +86,7 @@ class GuiMain(QMainWindow): self,"Open novelWriter Project","","novelWriter Project File (nwProject.nwx);;All Files (*)", options=dlgOpt) if projPath: self.theProject.openProject(projPath) + self._setWindowTitle(self.theProject.projName) else: return False return True @@ -121,14 +109,18 @@ class GuiMain(QMainWindow): dlgProj.exec_() return True + def openRecentProject(self, recentItem): + logger.vverbose("User requested opening recent project #%d" % recentItem) + self.theProject.openProject(self.mainConf.recentList[recentItem]) + self._setWindowTitle(self.theProject.projName) + return True + # # Document Actions # def saveDocument(self): - self.docEditor.getText() - return # @@ -136,7 +128,7 @@ class GuiMain(QMainWindow): # def _buildMenu(self): - menuBar = self.menuBar() + menuBar = self.menuBar() # File fileMenu = menuBar.addMenu("&File") @@ -160,9 +152,14 @@ class GuiMain(QMainWindow): 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) + recentMenu = fileMenu.addMenu(QIcon.fromTheme("document-open-recent"),"Recent Projects") + itemCount = 0 + for recentProject in self.mainConf.recentList: + if recentProject == "": continue + menuRecentProject = QAction(QIcon.fromTheme("folder-open"), "%d: %s" % (itemCount,recentProject), fileMenu) + menuRecentProject.triggered.connect(self.openRecentProject, itemCount) + recentMenu.addAction(menuRecentProject) + itemCount += 1 # --------------------- fileMenu.addSeparator() @@ -240,6 +237,13 @@ class GuiMain(QMainWindow): self.mainConf.saveConfig() return + def _setWindowTitle(self, projName=None): + winTitle = "%s [%s]" % (nw.__package__, nw.__version__) + if projName is not None: + winTitle += " - %s" % projName + self.setWindowTitle(winTitle) + return True + # # Menu Action # diff --git a/nw/project/project.py b/nw/project/project.py index 2e912283..1fa354dd 100644 --- a/nw/project/project.py +++ b/nw/project/project.py @@ -42,8 +42,10 @@ class NWProject(): def openProject(self, fileName): if not path.isfile(fileName): - logger.error("File not found: %s" % fileName) - return False + fileName = path.join(fileName, "nwProject.nwx") + if not path.isfile(fileName): + logger.error("File not found: %s" % fileName) + return False self.projPath = path.dirname(fileName) @@ -66,7 +68,10 @@ class NWProject(): logger.debug("Found book data") for xItem in xChild: if xItem.text is None: continue - if xItem.tag == "title": + if xItem.tag == "name": + logger.verbose("Working Title: '%s'" % xItem.text) + self.projName = xItem.text + elif xItem.tag == "title": logger.verbose("Title is '%s'" % xItem.text) self.bookTitle = xItem.text elif xItem.tag == "author": diff --git a/sample/sampleNovel/nwProject.nwx b/sample/sampleNovel/nwProject.nwx index d0072fed..fffe3249 100644 --- a/sample/sampleNovel/nwProject.nwx +++ b/sample/sampleNovel/nwProject.nwx @@ -4,6 +4,6 @@ Sample Project Sample Project Jane Smith - Jane Doh + Jay Doh