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),