WebBrowser/History/HistoryMenu.py

changeset 5038
df7103c3f2a6
parent 4735
84e78ee0f361
child 5389
9b1c800daff3
diff -r b2b37d7c0791 -r df7103c3f2a6 WebBrowser/History/HistoryMenu.py
--- a/WebBrowser/History/HistoryMenu.py	Thu Jul 14 18:56:39 2016 +0200
+++ b/WebBrowser/History/HistoryMenu.py	Sun Jul 17 15:36:11 2016 +0200
@@ -255,10 +255,18 @@
     Class implementing the history menu.
     
     @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
+    @signal newTab(QUrl, str) emitted to open a URL in a new tab
+    @signal newBackgroundTab(QUrl, str) emitted to open a URL in a new
+        background tab
+    @signal newWindow(QUrl, str) emitted to open a URL in a new window
+    @signal newPrivateWindow(QUrl, str) emitted to open a URL in a new
+        private window
     """
     openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
+    newTab = pyqtSignal(QUrl, str)
+    newBackgroundTab = pyqtSignal(QUrl, str)
+    newWindow = pyqtSignal(QUrl, str)
+    newPrivateWindow = pyqtSignal(QUrl, str)
     
     def __init__(self, parent=None, tabWidget=None):
         """
@@ -295,7 +303,11 @@
         @param idx index of the activated item (QModelIndex)
         """
         if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
+            self.newTab.emit(
+                idx.data(HistoryModel.UrlRole),
+                idx.data(HistoryModel.TitleRole))
+        elif self._keyboardModifiers & Qt.ShiftModifier:
+            self.newWindow.emit(
                 idx.data(HistoryModel.UrlRole),
                 idx.data(HistoryModel.TitleRole))
         else:
@@ -310,9 +322,8 @@
         @return flag indicating if any actions were added (boolean)
         """
         if self.__historyManager is None:
-            import WebBrowser.WebBrowserWindow
-            self.__historyManager = \
-                WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager()
+            from WebBrowser.WebBrowserWindow import WebBrowserWindow
+            self.__historyManager = WebBrowserWindow.historyManager()
             self.__historyMenuModel = HistoryMenuModel(
                 self.__historyManager.historyTreeModel(), self)
             self.setModel(self.__historyMenuModel)
@@ -337,7 +348,12 @@
             self.__mostVisitedMenu = HistoryMostVisitedMenu(10, self)
             self.__mostVisitedMenu.setTitle(self.tr("Most Visited"))
             self.__mostVisitedMenu.openUrl.connect(self.openUrl)
-            self.__mostVisitedMenu.newUrl.connect(self.newUrl)
+            self.__mostVisitedMenu.newTab.connect(self.newTab)
+            self.__mostVisitedMenu.newBackgroundTab.connect(
+                self.newBackgroundTab)
+            self.__mostVisitedMenu.newWindow.connect(self.newWindow)
+            self.__mostVisitedMenu.newPrivateWindow.connect(
+                self.newPrivateWindow)
         self.addMenu(self.__mostVisitedMenu)
         act = self.addMenu(self.__closedTabsMenu)
         act.setIcon(UI.PixmapCache.getIcon("trash.png"))
@@ -368,8 +384,11 @@
         """
         from .HistoryDialog import HistoryDialog
         dlg = HistoryDialog(self)
-        dlg.newUrl.connect(self.newUrl)
         dlg.openUrl.connect(self.openUrl)
+        dlg.newTab.connect(self.newTab)
+        dlg.newBackgroundTab.connect(self.newBackgroundTab)
+        dlg.newWindow.connect(self.newWindow)
+        dlg.newPrivateWindow.connect(self.newPrivateWindow)
         dlg.show()
     
     def __clearHistoryDialog(self):
@@ -422,10 +441,18 @@
     Class implementing the most visited history menu.
     
     @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
+    @signal newTab(QUrl, str) emitted to open a URL in a new tab
+    @signal newBackgroundTab(QUrl, str) emitted to open a URL in a new
+        background tab
+    @signal newWindow(QUrl, str) emitted to open a URL in a new window
+    @signal newPrivateWindow(QUrl, str) emitted to open a URL in a new
+        private window
     """
     openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
+    newTab = pyqtSignal(QUrl, str)
+    newBackgroundTab = pyqtSignal(QUrl, str)
+    newWindow = pyqtSignal(QUrl, str)
+    newPrivateWindow = pyqtSignal(QUrl, str)
     
     def __init__(self, count, parent=None):
         """
@@ -440,7 +467,7 @@
         
         self.setMaxRows(count + 1)
         
-        self.activated.connect(self.__activated)
+##        self.activated.connect(self.__activated)
         self.setStatusBarTextRole(HistoryModel.UrlStringRole)
     
     def __activated(self, idx):
@@ -450,7 +477,11 @@
         @param idx index of the activated item (QModelIndex)
         """
         if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
+            self.newTab.emit(
+                idx.data(HistoryModel.UrlRole),
+                idx.data(HistoryModel.TitleRole))
+        elif self._keyboardModifiers & Qt.ShiftModifier:
+            self.newWindow.emit(
                 idx.data(HistoryModel.UrlRole),
                 idx.data(HistoryModel.TitleRole))
         else:
@@ -465,9 +496,8 @@
         @return flag indicating if any actions were added (boolean)
         """
         if self.__historyMenuModel is None:
-            import WebBrowser.WebBrowserWindow
-            historyManager = \
-                WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager()
+            from WebBrowser.WebBrowserWindow import WebBrowserWindow
+            historyManager = WebBrowserWindow.historyManager()
             self.__historyMenuModel = HistoryMostVisitedMenuModel(
                 historyManager.historyFilterModel(), self)
             self.setModel(self.__historyMenuModel)

eric ide

mercurial