10 from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QXmlStreamReader |
10 from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QXmlStreamReader |
11 from PyQt6.QtGui import QCursor |
11 from PyQt6.QtGui import QCursor |
12 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QMenu, QApplication |
12 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QMenu, QApplication |
13 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply |
13 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply |
14 |
14 |
15 from EricWidgets import EricMessageBox |
15 from eric7.EricWidgets import EricMessageBox |
16 |
16 |
17 from .Ui_FeedsManager import Ui_FeedsManager |
17 from .Ui_FeedsManager import Ui_FeedsManager |
18 |
18 |
19 import Preferences |
19 from eric7 import Preferences |
20 import UI.PixmapCache |
20 from eric7.EricGui import EricPixmapCache |
21 |
21 |
22 |
22 |
23 class FeedsManager(QDialog, Ui_FeedsManager): |
23 class FeedsManager(QDialog, Ui_FeedsManager): |
24 """ |
24 """ |
25 Class implementing a RSS feeds manager dialog. |
25 Class implementing a RSS feeds manager dialog. |
95 if any(feed[0] == urlString for feed in self.__feeds): |
95 if any(feed[0] == urlString for feed in self.__feeds): |
96 return False |
96 return False |
97 |
97 |
98 # step 2: add the feed |
98 # step 2: add the feed |
99 if icon.isNull(): |
99 if icon.isNull(): |
100 icon = UI.PixmapCache.getIcon("rss16") |
100 icon = EricPixmapCache.getIcon("rss16") |
101 feed = (urlString, title, icon) |
101 feed = (urlString, title, icon) |
102 self.__feeds.append(feed) |
102 self.__feeds.append(feed) |
103 self.__addFeedItem(feed) |
103 self.__addFeedItem(feed) |
104 self.__save() |
104 self.__save() |
105 |
105 |
261 return |
261 return |
262 |
262 |
263 for child in itm.takeChildren(): |
263 for child in itm.takeChildren(): |
264 del child |
264 del child |
265 |
265 |
266 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
266 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
267 |
267 |
268 request = QNetworkRequest(QUrl(urlString)) |
268 request = QNetworkRequest(QUrl(urlString)) |
269 reply = WebBrowserWindow.networkManager().get(request) |
269 reply = WebBrowserWindow.networkManager().get(request) |
270 reply.finished.connect(lambda: self.__feedLoaded(reply)) |
270 reply.finished.connect(lambda: self.__feedLoaded(reply)) |
271 self.__replies[id(reply)] = (reply, itm) |
271 self.__replies[id(reply)] = (reply, itm) |
302 elif xml.isEndElement(): |
302 elif xml.isEndElement(): |
303 if xml.name() in ["item", "entry"]: |
303 if xml.name() in ["item", "entry"]: |
304 itm = QTreeWidgetItem(topItem) |
304 itm = QTreeWidgetItem(topItem) |
305 itm.setText(0, titleString) |
305 itm.setText(0, titleString) |
306 itm.setData(0, FeedsManager.UrlStringRole, linkString) |
306 itm.setData(0, FeedsManager.UrlStringRole, linkString) |
307 itm.setIcon(0, UI.PixmapCache.getIcon("rss16")) |
307 itm.setIcon(0, EricPixmapCache.getIcon("rss16")) |
308 |
308 |
309 linkString = "" |
309 linkString = "" |
310 titleString = "" |
310 titleString = "" |
311 elif xml.isCharacters() and not xml.isWhitespace(): |
311 elif xml.isCharacters() and not xml.isWhitespace(): |
312 if currentTag == "title": |
312 if currentTag == "title": |