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)