WebBrowser/Bookmarks/BookmarksDialog.py

changeset 5038
df7103c3f2a6
parent 5015
ca1d44f0f6b2
child 5389
9b1c800daff3
diff -r b2b37d7c0791 -r df7103c3f2a6 WebBrowser/Bookmarks/BookmarksDialog.py
--- a/WebBrowser/Bookmarks/BookmarksDialog.py	Thu Jul 14 18:56:39 2016 +0200
+++ b/WebBrowser/Bookmarks/BookmarksDialog.py	Sun Jul 17 15:36:11 2016 +0200
@@ -23,10 +23,15 @@
     Class implementing a dialog to manage bookmarks.
     
     @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
     """
     openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
+    newTab = pyqtSignal(QUrl, str)
+    newBackgroundTab = pyqtSignal(QUrl, str)
+    newWindow = pyqtSignal(QUrl, str)
     
     def __init__(self, parent=None, manager=None):
         """
@@ -148,6 +153,9 @@
             menu.addAction(
                 self.tr("Open in New &Tab"), self.__openBookmarkInNewTab)
             menu.addAction(
+                self.tr("Open in New &Background Tab"),
+                self.__openBookmarkInNewBackgroundTab)
+            menu.addAction(
                 self.tr("Open in New &Window"), self.__openBookmarkInNewWindow)
             menu.addAction(
                 self.tr("Open in New Pri&vate Window"),
@@ -172,34 +180,45 @@
         
         @param idx reference to the entry index (QModelIndex)
         """
-        self.__openBookmark(
-            QApplication.keyboardModifiers() & Qt.ControlModifier)
+        if QApplication.keyboardModifiers() & Qt.ControlModifier:
+            self.__openBookmarkInNewTab()
+        elif QApplication.keyboardModifiers() & Qt.ShiftModifier:
+            self.__openBookmarkInNewWindow()
+        else:
+            self.__openBookmarkInCurrentTab()
         
     def __openBookmarkInCurrentTab(self):
         """
         Private slot to open a bookmark in the current browser tab.
         """
-        self.__openBookmark(False)
+        self.__openBookmark()
     
     def __openBookmarkInNewTab(self):
         """
         Private slot to open a bookmark in a new browser tab.
         """
-        self.__openBookmark(True)
+        self.__openBookmark(newTab=True)
+    
+    def __openBookmarkInNewBackgroundTab(self):
+        """
+        Private slot to open a bookmark in a new browser tab.
+        """
+        self.__openBookmark(newTab=True, background=True)
     
     def __openBookmarkInNewWindow(self):
         """
         Private slot to open a bookmark in a new browser window.
         """
-        self.__openBookmark(False, True, False)
+        self.__openBookmark(newWindow=True)
     
     def __openBookmarkInPrivateWindow(self):
         """
         Private slot to open a bookmark in a new private browser window.
         """
-        self.__openBookmark(False, True, True)
+        self.__openBookmark(newWindow=True, privateWindow=True)
     
-    def __openBookmark(self, newTab, newWindow=False, privateWindow=False):
+    def __openBookmark(self, newTab=False, newWindow=False,
+                       privateWindow=False, background=False):
         """
         Private method to open a bookmark.
         
@@ -210,6 +229,9 @@
         @param privateWindow flag indicating to open the bookmark in a new
             private window
         @type bool
+        @param background flag indicating to open the bookmark in a new
+            background tab
+        @type bool
         """
         from .BookmarkNode import BookmarkNode
         from .BookmarksModel import BookmarksModel
@@ -231,9 +253,14 @@
                 WebBrowserWindow.mainWindow().newWindow(url)
         else:
             if newTab:
-                self.newUrl.emit(
-                    idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),
-                    idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
+                if background:
+                    self.newBackgroundTab.emit(
+                        idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),
+                        idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
+                else:
+                    self.newTab.emit(
+                        idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),
+                        idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
             else:
                 self.openUrl.emit(
                     idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),

eric ide

mercurial