@@ -63,24 +63,6 @@ def _buildMenus(self, mainMenu, mainWindow):
6363 self .viewMenu .addAction (_emptyAction )
6464 self ._menuDict ['View' ] = self .viewMenu
6565
66- # self.mapsMenu.aboutToShow.connect(self._refreshMapsMenu)
67-
68- # #
69- # # stacks
70- # name = "Stacks"
71- # self.stacksMenu = mainMenu.addMenu(name)
72- # _emptyAction = QtWidgets.QAction("None", self.getApp())
73- # self.stacksMenu.addAction(_emptyAction)
74- # self.stacksMenu.aboutToShow.connect(self._refreshStacksMenu)
75- # # self.stacksMenu.triggered.connect(partial(self._onStacksMenuAction, name))
76-
77- # #
78- # # maps
79- # self.mapsMenu = mainMenu.addMenu("Maps")
80- # _emptyAction = QtWidgets.QAction("None", self.getApp())
81- # self.mapsMenu.addAction(_emptyAction)
82- # self.mapsMenu.aboutToShow.connect(self._refreshMapsMenu)
83-
8466 # plugin (stack then map plugins)
8567 name = "Plugins"
8668 self .pluginsMenu = mainMenu .addMenu (name )
@@ -316,11 +298,12 @@ def _refreshEditMenu(self):
316298
317299 # from pymapmanager.interface.stackWidgets import stackWidget
318300 frontWindow = self .getApp ().getFrontWindow ()
319- if isinstance (frontWindow , (mmWidget2 , mapWidget )):
320- nextUndo = frontWindow .getUndoRedo ().nextUndoStr ()
321- nextRedo = frontWindow .getUndoRedo ().nextRedoStr ()
322- enableUndo = frontWindow .getUndoRedo ().numUndo () > 0
323- enableRedo = frontWindow .getUndoRedo ().numRedo () > 0
301+ if isinstance (frontWindow , (mmWidget2 , mapWidget )) \
302+ and frontWindow .getUndoRedo () is not None :
303+ nextUndo = frontWindow .getUndoRedo ().nextUndoStr ()
304+ nextRedo = frontWindow .getUndoRedo ().nextRedoStr ()
305+ enableUndo = frontWindow .getUndoRedo ().numUndo () > 0
306+ enableRedo = frontWindow .getUndoRedo ().numRedo () > 0
324307 else :
325308 nextUndo = ''
326309 nextRedo = ''
@@ -416,25 +399,35 @@ def _refreshFileMenu(self):
416399
417400 self .fileMenu .clear ()
418401
419- frontWindow = self .getApp ().getFrontWindow ()
420- _frontStackWindow = self .getApp ().getFrontStackWindow ()
421-
422- loadFileAction = QtWidgets .QAction ("Open..." , self .getApp ())
423- loadFileAction .setCheckable (False ) # setChecked is True by default?
424- loadFileAction .setShortcut ("Ctrl+O" )
425402 _app = self .getApp ()
426- # if _app is not None:
427- # loadFileAction.triggered.connect(_app.openFile)
428- self .fileMenu .addAction (loadFileAction )
403+ frontWindow = self .getApp ().getFrontWindow ()
404+ # _frontStackWindow = self.getApp().getFrontStackWindow()
405+
406+ openMapAction = QtWidgets .QAction ("Open mmap Folder..." , self .getApp ())
407+ openMapAction .setCheckable (False ) # setChecked is True by default?
408+ openMapAction .setShortcut ("Ctrl+O" )
409+ if _app is not None :
410+ openMapAction .triggered .connect (_app .openMap )
411+ self .fileMenu .addAction (openMapAction )
412+
413+ importFileAction = QtWidgets .QAction ("Open File..." , self .getApp ())
414+ importFileAction .setCheckable (False ) # setChecked is True by default?
415+ importFileAction .setShortcut ("Ctrl+Shift+O" )
416+ if _app is not None :
417+ importFileAction .triggered .connect (_app .openFile )
418+ self .fileMenu .addAction (importFileAction )
429419
430420 # loadFolderAction = QtWidgets.QAction("Open Time-Series...", self.getApp())
431421 # loadFolderAction.setCheckable(False) # setChecked is True by default?
432422 # loadFolderAction.triggered.connect(self.getApp().openTimeSeries)
433423 # self.fileMenu.addAction(loadFolderAction)
434424 # self.fileMenu.addSeparator()
435425
436- # enableUndo = False
437- # enableRedo = False
426+ # open recent (submenu) will show two lists, one for files and then one for folders
427+ self .openRecentMenu = QtWidgets .QMenu ("Open Recent ..." )
428+ self .openRecentMenu .aboutToShow .connect (self ._refreshOpenRecent )
429+ self .fileMenu .addMenu (self .openRecentMenu )
430+
438431 enableSave = False
439432
440433 if isinstance (frontWindow , (mmWidget2 , mapWidget )):
@@ -451,37 +444,18 @@ def _refreshFileMenu(self):
451444 saveFileAction .setShortcut ("Ctrl+S" )
452445 # saveFileAction.setEnabled(enableUndo and isDirty)
453446 saveFileAction .setEnabled (enableSave )
454- # saveFileAction.triggered.connect(self.getApp().saveFile )
447+ saveFileAction .triggered .connect (self .getApp ().saveAs )
455448 self .fileMenu .addAction (saveFileAction )
456449
450+ # TODO: add export mmap to zip (a bit complicated)
457451 # save as
458- saveAsFileAction = QtWidgets .QAction ("Save As" , self .getApp ())
452+ saveAsFileAction = QtWidgets .QAction ("Save As... " , self .getApp ())
459453 saveAsFileAction .setCheckable (False ) # setChecked is True by default?
460454 saveAsFileAction .triggered .connect (self .getApp ().saveAs )
461455 self .fileMenu .addAction (saveAsFileAction )
462456
463457 self .fileMenu .addSeparator ()
464458
465- # open recent (submenu) will show two lists, one for files and then one for folders
466- self .openRecentMenu = QtWidgets .QMenu ("Open Recent ..." )
467- self .openRecentMenu .aboutToShow .connect (self ._refreshOpenRecent )
468- self .fileMenu .addMenu (self .openRecentMenu )
469-
470- clearRecentAction = QtWidgets .QAction ("Clear Recent" , self .getApp ()) # abj
471- clearRecentAction .setObjectName ("Clear Recent" )
472- clearRecentAction .setCheckable (False )
473- clearRecentAction .triggered .connect (self .getApp ().clearRecentFiles )
474- self .fileMenu .addAction (clearRecentAction )
475- self .fileMenu .addSeparator ()
476-
477- # 202504 debug
478- # _actions = self.fileMenu.actions()
479- # for _action in _actions:
480- # logger.error(f' action.objectName(): "{_action.objectName()}"')
481- # logger.error(f'clearRecentAction objectName:{clearRecentAction.objectName()}')
482- # clear_recent_action = self.fileMenu.findChild(QtWidgets.QAction, 'Clear Recent')
483- # logger.error(f'clear_recent_action:{clear_recent_action}')
484-
485459 self .settingsMenu = self .fileMenu .addMenu ('User Options...' )
486460 self .settingsMenu .aboutToShow .connect (self ._refreshSettingsMenu )
487461 self .fileMenu .addSeparator ()
@@ -490,11 +464,11 @@ def _refreshFileMenu(self):
490464 analysisParametersAction .triggered .connect (self .getApp ()._showAnalysisParameters )
491465 self .fileMenu .addAction (analysisParametersAction )
492466
493- self .fileMenu .addSeparator ()
494- importNewTIFAction = QtWidgets .QAction ('Import new TIF (channel)' , self .getApp ())
495- importNewTIFAction .setEnabled (_frontStackWindow is not None )
496- importNewTIFAction .triggered .connect (self .getApp ().importNewTIF )
497- self .fileMenu .addAction (importNewTIFAction )
467+ # self.fileMenu.addSeparator()
468+ # importNewTIFAction = QtWidgets.QAction('Import new TIF (channel)', self.getApp())
469+ # importNewTIFAction.setEnabled(_frontStackWindow is not None)
470+ # importNewTIFAction.triggered.connect(self.getApp().importNewTIF)
471+ # self.fileMenu.addAction(importNewTIFAction)
498472
499473 # open some mapmanagercore sample data (download and store locally with pooch)
500474 self .fileMenu .addSeparator ()
@@ -544,6 +518,14 @@ def _refreshOpenRecent(self):
544518
545519 self .openRecentMenu .addAction (loadFileAction )
546520
521+ self .openRecentMenu .addSeparator ()
522+
523+ clearRecentAction = QtWidgets .QAction ("Clear Recent" , self .getApp ()) # abj
524+ # clearRecentAction.setObjectName("Clear Recent")
525+ clearRecentAction .setCheckable (False )
526+ clearRecentAction .triggered .connect (self .getApp ().clearRecentFiles )
527+ self .openRecentMenu .addAction (clearRecentAction )
528+
547529 # self.openRecentMenu.addSeparator()
548530
549531 # add recent folders
0 commit comments