WebBrowser/Session/SessionManager.py

changeset 6121
d3d64f3128b3
parent 6048
82ad8ec9548c
child 6645
ad476851d7e0
diff -r 4c60a21ce6dd -r d3d64f3128b3 WebBrowser/Session/SessionManager.py
--- a/WebBrowser/Session/SessionManager.py	Wed Feb 07 18:57:46 2018 +0100
+++ b/WebBrowser/Session/SessionManager.py	Wed Feb 07 20:14:09 2018 +0100
@@ -14,7 +14,7 @@
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, \
     QFile, QFileInfo, QFileSystemWatcher, QByteArray, QDateTime
-from PyQt5.QtWidgets import QMenu, QAction, QActionGroup, QApplication, \
+from PyQt5.QtWidgets import QActionGroup, QApplication, \
     QInputDialog, QLineEdit, QDialog, QDialogButtonBox, QLabel, QComboBox, \
     QVBoxLayout
 
@@ -352,33 +352,35 @@
         self.sessionsMetaDataChanged.emit()
     
     @pyqtSlot()
-    def aboutToShowSessionsMenu(self):
+    def aboutToShowSessionsMenu(self, menu):
         """
         Public slot to populate the sessions selection menu.
+        
+        @param menu reference to the menu about to be shown
+        @type QMenu
         """
-        menu = self.sender()
-        if isinstance(menu, QMenu):
-            menu.clear()
-            
-            actionGroup = QActionGroup(menu)
-            sessions = self.sessionMetaData(includeBackups=False)
-            for session in sessions:
-                act = menu.addAction(session.name)
-                act.setCheckable(True)
-                act.setChecked(session.isActive)
-                act.setData(session.filePath)
-                actionGroup.addAction(act)
-                act.triggered.connect(self.__sessionActTriggered)
+        menu.clear()
+        
+        actionGroup = QActionGroup(menu)
+        sessions = self.sessionMetaData(includeBackups=False)
+        for session in sessions:
+            act = menu.addAction(session.name)
+            act.setCheckable(True)
+            act.setChecked(session.isActive)
+            act.setData(session.filePath)
+            actionGroup.addAction(act)
+            act.triggered.connect(lambda: self.__sessionActTriggered(act))
     
     @pyqtSlot()
-    def __sessionActTriggered(self):
+    def __sessionActTriggered(self, act):
         """
         Private slot to handle the menu selection of a session.
+        
+        @param act reference to the action that triggered
+        @type QAction
         """
-        act = self.sender()
-        if isinstance(act, QAction):
-            path = act.data()
-            self.switchToSession(path)
+        path = act.data()
+        self.switchToSession(path)
     
     def openSession(self, sessionFilePath, flags=0):
         """

eric ide

mercurial