45 from .OfflineStorage.OfflineStorageConfigDialog import OfflineStorageConfigDialog |
45 from .OfflineStorage.OfflineStorageConfigDialog import OfflineStorageConfigDialog |
46 from .UserAgent.UserAgentMenu import UserAgentMenu |
46 from .UserAgent.UserAgentMenu import UserAgentMenu |
47 from .HelpTabWidget import HelpTabWidget |
47 from .HelpTabWidget import HelpTabWidget |
48 from .Download.DownloadManager import DownloadManager |
48 from .Download.DownloadManager import DownloadManager |
49 from .VirusTotalApi import VirusTotalAPI |
49 from .VirusTotalApi import VirusTotalAPI |
|
50 from .Feeds.FeedsManager import FeedsManager |
50 |
51 |
51 from E5Gui.E5Action import E5Action |
52 from E5Gui.E5Action import E5Action |
52 from E5Gui import E5MessageBox, E5FileDialog |
53 from E5Gui import E5MessageBox, E5FileDialog |
53 |
54 |
54 from E5Network.E5NetworkMonitor import E5NetworkMonitor |
55 from E5Network.E5NetworkMonitor import E5NetworkMonitor |
85 _bookmarksManager = None |
86 _bookmarksManager = None |
86 _historyManager = None |
87 _historyManager = None |
87 _passwordManager = None |
88 _passwordManager = None |
88 _adblockManager = None |
89 _adblockManager = None |
89 _downloadManager = None |
90 _downloadManager = None |
|
91 _feedsManager = None |
90 |
92 |
91 def __init__(self, home, path, parent, name, fromEric=False, |
93 def __init__(self, home, path, parent, name, fromEric=False, |
92 initShortcutsOnly=False, searchWord=None): |
94 initShortcutsOnly=False, searchWord=None): |
93 """ |
95 """ |
94 Constructor |
96 Constructor |
1143 )) |
1145 )) |
1144 if not self.initShortcutsOnly: |
1146 if not self.initShortcutsOnly: |
1145 self.showDownloadManagerAct.triggered[()].connect(self.__showDownloadsWindow) |
1147 self.showDownloadManagerAct.triggered[()].connect(self.__showDownloadsWindow) |
1146 self.__actions.append(self.showDownloadManagerAct) |
1148 self.__actions.append(self.showDownloadManagerAct) |
1147 |
1149 |
|
1150 self.feedsManagerAct = E5Action(self.trUtf8('RSS Feeds Dialog'), |
|
1151 UI.PixmapCache.getIcon("rss22.png"), |
|
1152 self.trUtf8('&RSS Feeds Dialog...'), |
|
1153 QKeySequence(self.trUtf8("Ctrl+Shift+F", "Help|RSS Feeds Dialog")), |
|
1154 0, self, 'help_rss_feeds') |
|
1155 self.feedsManagerAct.setStatusTip(self.trUtf8( |
|
1156 'Open a dialog showing the configured RSS feeds.')) |
|
1157 self.feedsManagerAct.setWhatsThis(self.trUtf8( |
|
1158 """<b>RSS Feeds Dialog...</b>""" |
|
1159 """<p>Open a dialog to show the configured RSS feeds.""" |
|
1160 """ It can be used to mange the feeds and to show their contents.</p>""" |
|
1161 )) |
|
1162 if not self.initShortcutsOnly: |
|
1163 self.feedsManagerAct.triggered[()].connect(self.__showFeedsManager) |
|
1164 self.__actions.append(self.feedsManagerAct) |
|
1165 |
1148 self.backAct.setEnabled(False) |
1166 self.backAct.setEnabled(False) |
1149 self.forwardAct.setEnabled(False) |
1167 self.forwardAct.setEnabled(False) |
1150 |
1168 |
1151 # now read the keyboard shortcuts for the actions |
1169 # now read the keyboard shortcuts for the actions |
1152 Shortcuts.readShortcuts(helpViewer=self) |
1170 Shortcuts.readShortcuts(helpViewer=self) |
1269 menu.addAction(self.clearPrivateDataAct) |
1287 menu.addAction(self.clearPrivateDataAct) |
1270 menu.addAction(self.clearIconsAct) |
1288 menu.addAction(self.clearIconsAct) |
1271 |
1289 |
1272 menu = mb.addMenu(self.trUtf8("&Tools")) |
1290 menu = mb.addMenu(self.trUtf8("&Tools")) |
1273 menu.setTearOffEnabled(True) |
1291 menu.setTearOffEnabled(True) |
|
1292 menu.addAction(self.feedsManagerAct) |
|
1293 menu.addSeparator() |
1274 menu.addAction(self.toolsMonitorAct) |
1294 menu.addAction(self.toolsMonitorAct) |
1275 |
1295 |
1276 menu = mb.addMenu(self.trUtf8("&Window")) |
1296 menu = mb.addMenu(self.trUtf8("&Window")) |
1277 menu.setTearOffEnabled(True) |
1297 menu.setTearOffEnabled(True) |
1278 menu.addAction(self.showDownloadManagerAct) |
1298 menu.addAction(self.showDownloadManagerAct) |
2738 elif evt.button() == Qt.XButton2: |
2758 elif evt.button() == Qt.XButton2: |
2739 self.currentBrowser().pageAction(QWebPage.Forward).trigger() |
2759 self.currentBrowser().pageAction(QWebPage.Forward).trigger() |
2740 else: |
2760 else: |
2741 super().mousePressEvent(evt) |
2761 super().mousePressEvent(evt) |
2742 |
2762 |
|
2763 @classmethod |
|
2764 def feedsManager(cls): |
|
2765 """ |
|
2766 Class method to get a reference to the RSS feeds manager. |
|
2767 |
|
2768 @return reference to the RSS feeds manager (FeedsManager) |
|
2769 """ |
|
2770 if cls._feedsManager is None: |
|
2771 cls._feedsManager = FeedsManager() |
|
2772 |
|
2773 return cls._feedsManager |
|
2774 |
|
2775 def __showFeedsManager(self): |
|
2776 """ |
|
2777 Private slot to show the feeds manager dialog. |
|
2778 """ |
|
2779 feedsManager = self.feedsManager() |
|
2780 feedsManager.openUrl.connect(self.openUrl) |
|
2781 feedsManager.newUrl.connect(self.openUrlNewTab) |
|
2782 feedsManager.rejected.connect(self.__feedsManagerClosed) |
|
2783 feedsManager.show() |
|
2784 |
|
2785 def __feedsManagerClosed(self): |
|
2786 feedsManager = self.sender() |
|
2787 feedsManager.openUrl.disconnect(self.openUrl) |
|
2788 feedsManager.newUrl.disconnect(self.openUrlNewTab) |
|
2789 feedsManager.rejected.disconnect(self.__feedsManagerClosed) |
|
2790 |
2743 ########################################################################### |
2791 ########################################################################### |
2744 ## Interface to VirusTotal below ## |
2792 ## Interface to VirusTotal below ## |
2745 ########################################################################### |
2793 ########################################################################### |
2746 |
2794 |
2747 def __virusTotalSearchChanged(self, txt): |
2795 def __virusTotalSearchChanged(self, txt): |