Sat, 08 Mar 2014 20:09:41 +0100
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
3160
209a07d7e401
Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
3 | # Copyright (c) 2011 - 2014 Detlev Offenbach <detlev@die-offenbachs.de> |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a RSS feeds manager dialog. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt4.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QXmlStreamReader |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
11 | from PyQt4.QtGui import QDialog, QIcon, QTreeWidgetItem, QMenu, QCursor, \ |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
12 | QApplication |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from PyQt4.QtWebKit import QWebSettings |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from E5Gui import E5MessageBox |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .Ui_FeedsManager import Ui_FeedsManager |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import Preferences |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import UI.PixmapCache |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class FeedsManager(QDialog, Ui_FeedsManager): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Class implementing a RSS feeds manager dialog. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @signal openUrl(QUrl, str) emitted to open a URL in the current tab |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @signal newUrl(QUrl, str) emitted to open a URL in a new tab |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | openUrl = pyqtSignal(QUrl, str) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | newUrl = pyqtSignal(QUrl, str) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | UrlStringRole = Qt.UserRole |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | ErrorDataRole = Qt.UserRole + 1 |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | def __init__(self, parent=None): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | Constructor |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param parent reference to the parent widget (QWidget) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | super().__init__(parent) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.setupUi(self) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__wasShown = False |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.__loaded = False |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.__feeds = [] |
1474
1eaec11a0078
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1415
diff
changeset
|
49 | self.__replies = {} # dict key is the id of the request object |
1eaec11a0078
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1415
diff
changeset
|
50 | # dict value is a tuple of request and tree item |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.feedsTree.setContextMenuPolicy(Qt.CustomContextMenu) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.feedsTree.customContextMenuRequested.connect( |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__customContextMenuRequested) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.feedsTree.itemActivated.connect(self.__itemActivated) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | def show(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | Public slot to show the feeds manager dialog. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | super().show() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | if not self.__wasShown: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.__enableButtons() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | self.on_reloadAllButton_clicked() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | self.__wasShown = True |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | def addFeed(self, urlString, title, icon): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | Public method to add a feed. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @param urlString URL of the feed (string) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | @param title title of the feed (string) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | @param icon icon for the feed (QIcon) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | @return flag indicating a successful addition of the feed (boolean) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if urlString == "": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | return False |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | if not self.__loaded: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__load() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | # step 1: check, if feed was already added |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | for feed in self.__feeds: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | if feed[0] == urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | return False |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | # step 2: add the feed |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | if icon.isNull() or \ |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
90 | icon == QIcon(QWebSettings.webGraphic( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
91 | QWebSettings.DefaultFrameIconGraphic)): |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | icon = UI.PixmapCache.getIcon("rss16.png") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | feed = (urlString, title, icon) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | self.__feeds.append(feed) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__addFeedItem(feed) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.__save() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | return True |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | def __addFeedItem(self, feed): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | Private slot to add a top level feed item. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | @param feed tuple containing feed info (URL, title, icon) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | (string, string, QIcon) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | itm = QTreeWidgetItem(self.feedsTree, [feed[1]]) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | itm.setIcon(0, feed[2]) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | itm.setData(0, FeedsManager.UrlStringRole, feed[0]) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | def __load(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | Private method to load the feeds data. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | self.__feeds = Preferences.getHelp("RssFeeds") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self.__loaded = True |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | # populate the feeds tree top level with the feeds |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | self.feedsTree.clear() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | for feed in self.__feeds: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.__addFeedItem(feed) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | def __save(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | Private method to store the feeds data. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | if not self.__loaded: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__load() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | Preferences.setHelp("RssFeeds", self.__feeds) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | @pyqtSlot() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | def on_reloadAllButton_clicked(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | Private slot to reload all feeds. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | if not self.__loaded: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | self.__load() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | for index in range(self.feedsTree.topLevelItemCount()): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | itm = self.feedsTree.topLevelItem(index) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.__reloadFeed(itm) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | @pyqtSlot() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | def on_reloadButton_clicked(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | Private slot to reload the selected feed. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | itm = self.feedsTree.selectedItems()[0] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.__reloadFeed(itm) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | @pyqtSlot() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | def on_editButton_clicked(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | Private slot to edit the selected feed. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | itm = self.feedsTree.selectedItems()[0] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | origTitle = itm.text(0) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | origUrlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | feedToChange = None |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | for feed in self.__feeds: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | if feed[0] == origUrlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | feedToChange = feed |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | break |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | if feedToChange: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | feedIndex = self.__feeds.index(feedToChange) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
169 | from .FeedEditDialog import FeedEditDialog |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | dlg = FeedEditDialog(origUrlString, origTitle) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | if dlg.exec_() == QDialog.Accepted: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | urlString, title = dlg.getData() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | for feed in self.__feeds: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | if feed[0] == urlString: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
175 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
176 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
177 | self.tr("Duplicate Feed URL"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
178 | self.tr( |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
179 | """A feed with the URL {0} exists already.""" |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
180 | """ Aborting...""".format(urlString))) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | self.__feeds[feedIndex] = (urlString, title, feedToChange[2]) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | self.__save() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | itm.setText(0, title) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | itm.setData(0, FeedsManager.UrlStringRole, urlString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | self.__reloadFeed(itm) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | @pyqtSlot() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | def on_deleteButton_clicked(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | Private slot to delete the selected feed. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | itm = self.feedsTree.selectedItems()[0] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | title = itm.text(0) |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
197 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
198 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
199 | self.tr("Delete Feed"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
200 | self.tr( |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
201 | """<p>Do you really want to delete the feed""" |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
202 | """ <b>{0}</b>?</p>""".format(title))) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | if res: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | urlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | if urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | feedToDelete = None |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | for feed in self.__feeds: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | if feed[0] == urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | feedToDelete = feed |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | break |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | if feedToDelete: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | self.__feeds.remove(feedToDelete) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | self.__save() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | index = self.feedsTree.indexOfTopLevelItem(itm) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | if index != -1: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | self.feedsTree.takeTopLevelItem(index) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | del itm |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | @pyqtSlot() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | def on_feedsTree_itemSelectionChanged(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | Private slot to enable the various buttons depending on the selection. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | self.__enableButtons() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | def __enableButtons(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | Private slot to disable/enable various buttons. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | selItems = self.feedsTree.selectedItems() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | if len(selItems) == 1 and \ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | self.feedsTree.indexOfTopLevelItem(selItems[0]) != -1: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | enable = True |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | else: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | enable = False |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.reloadButton.setEnabled(enable) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | self.editButton.setEnabled(enable) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | self.deleteButton.setEnabled(enable) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | def __reloadFeed(self, itm): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | Private method to reload the given feed. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | @param itm feed item to be reloaded (QTreeWidgetItem) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | urlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | if urlString == "": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | for child in itm.takeChildren(): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | del child |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
255 | import Helpviewer.HelpWindow |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | request = QNetworkRequest(QUrl(urlString)) |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
257 | reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()\ |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
258 | .get(request) |
3345
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
259 | reply.finished.connect(self.__feedLoaded) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | self.__replies[id(reply)] = (reply, itm) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | def __feedLoaded(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | Private slot to extract the loaded feed data. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | reply = self.sender() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | if id(reply) not in self.__replies: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | topItem = self.__replies[id(reply)][1] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | del self.__replies[id(reply)] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | if reply.error() == QNetworkReply.NoError: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | linkString = "" |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | titleString = "" |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | xml = QXmlStreamReader() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | xmlData = reply.readAll() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | xml.addData(xmlData) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | while not xml.atEnd(): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | xml.readNext() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | if xml.isStartElement(): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | if xml.name() == "item": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | linkString = xml.attributes().value("rss:about") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | elif xml.name() == "link": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | linkString = xml.attributes().value("href") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | currentTag = xml.name() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | elif xml.isEndElement(): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | if xml.name() in ["item", "entry"]: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | itm = QTreeWidgetItem(topItem) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | itm.setText(0, titleString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | itm.setData(0, FeedsManager.UrlStringRole, linkString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | itm.setIcon(0, UI.PixmapCache.getIcon("rss16.png")) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | linkString = "" |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | titleString = "" |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | elif xml.isCharacters() and not xml.isWhitespace(): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | if currentTag == "title": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | titleString = xml.text() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | elif currentTag == "link": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | linkString += xml.text() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | if topItem.childCount() == 0: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | itm = QTreeWidgetItem(topItem) |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
306 | itm.setText(0, self.tr("Error fetching feed")) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | itm.setData(0, FeedsManager.UrlStringRole, "") |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
308 | itm.setData(0, FeedsManager.ErrorDataRole, |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
309 | str(xmlData, encoding="utf-8")) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | topItem.setExpanded(True) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | else: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | linkString = "" |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | titleString = reply.errorString() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | itm = QTreeWidgetItem(topItem) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | itm.setText(0, titleString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | itm.setData(0, FeedsManager.UrlStringRole, linkString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | topItem.setExpanded(True) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | def __customContextMenuRequested(self, pos): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | Private slot to handle the context menu request for the bookmarks tree. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | @param pos position the context menu was requested (QPoint) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | itm = self.feedsTree.currentItem() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | if itm is None: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | if self.feedsTree.indexOfTopLevelItem(itm) != -1: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | urlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | if urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | menu = QMenu() |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
336 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
337 | self.tr("&Open"), self.__openMessageInCurrentTab) |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
338 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
339 | self.tr("Open in New &Tab"), self.__openMessageInNewTab) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | menu.addSeparator() |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
341 | menu.addAction(self.tr("&Copy URL to Clipboard"), |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | self.__copyUrlToClipboard) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | menu.exec_(QCursor.pos()) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | else: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | errorString = itm.data(0, FeedsManager.ErrorDataRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | if errorString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | menu = QMenu() |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
348 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
349 | self.tr("&Show error data"), self.__showError) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | menu.exec_(QCursor.pos()) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | def __itemActivated(self, itm, column): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | Private slot to handle the activation of an item. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | @param itm reference to the activated item (QTreeWidgetItem) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | @param column column of the activation (integer) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | if self.feedsTree.indexOfTopLevelItem(itm) != -1: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | self.__openMessage( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
363 | QApplication.keyboardModifiers() & |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
364 | Qt.ControlModifier == Qt.ControlModifier) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | def __openMessageInCurrentTab(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | Private slot to open a feed message in the current browser tab. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | self.__openMessage(False) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | def __openMessageInNewTab(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | Private slot to open a feed message in a new browser tab. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | self.__openMessage(True) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | def __openMessage(self, newTab): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | Private method to open a feed message. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
382 | @param newTab flag indicating to open the feed message in a new tab |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
383 | (boolean) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | itm = self.feedsTree.currentItem() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | if itm is None: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | urlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | if urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | title = itm.text(0) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | if newTab: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | self.newUrl.emit(QUrl(urlString), title) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | else: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | self.openUrl.emit(QUrl(urlString), title) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | else: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | errorString = itm.data(0, FeedsManager.ErrorDataRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | if errorString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | self.__showError() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | def __copyUrlToClipboard(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | Private slot to copy the URL of the selected item to the clipboard. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | itm = self.feedsTree.currentItem() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | if itm is None: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | if self.feedsTree.indexOfTopLevelItem(itm) != -1: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | urlString = itm.data(0, FeedsManager.UrlStringRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | if urlString: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | QApplication.clipboard().setText(urlString) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | def __showError(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | Private slot to show error info for a failed load operation. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | itm = self.feedsTree.currentItem() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | if itm is None: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | return |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | errorStr = itm.data(0, FeedsManager.ErrorDataRole) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | if errorStr: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
427 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
428 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
429 | self.tr("Error loading feed"), |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | "{0}".format(errorStr)) |