diff options
Diffstat (limited to 'src/webtab.cpp')
-rw-r--r-- | src/webtab.cpp | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/src/webtab.cpp b/src/webtab.cpp index bc051e27..7687a957 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -40,6 +40,7 @@ #include "bookmarksmanager.h" #include "walletbar.h" #include "previewselectorbar.h" +#include "rsswidget.h" // KDE Includes #include <KService> @@ -199,43 +200,46 @@ void WebTab::createPreviewSelectorBar(int index) bool WebTab::hasRSSInfo() { - _rssList.clear(); - QWebElementCollection col = page()->mainFrame()->findAllElements("link"); - foreach(QWebElement el, col) - { - if( el.attribute("type") == QL1S("application/rss+xml") || el.attribute("type") == QL1S("application/rss+xml") ) - { - if( el.attribute("href").startsWith( QL1S("http") ) ) - { - _rssList << KUrl( el.attribute("href") ); - } - else - { - KUrl u = url(); - // NOTE - // cd() is probably better than setPath() here, - // for all those url sites just having a path - if(u.cd( el.attribute("href") )) - _rssList << u; - } - } - } + QWebElementCollection col = page()->mainFrame()->findAllElements("link[type=\"application/rss+xml\"]"); + col.append(page()->mainFrame()->findAllElements("link[type=\"application/atom+xml\"]")); + if(col.count() != 0) + return true; - return !_rssList.isEmpty(); + return false; } -void WebTab::showRSSInfo() +void WebTab::showRSSInfo(QPoint pos) { - QString urlList = QString(i18n("The following RSS feeds were found:<br /><br />")); - foreach(const KUrl &url, _rssList) + QWebElementCollection col = page()->mainFrame()->findAllElements("link[type=\"application/rss+xml\"]"); + col.append(page()->mainFrame()->findAllElements("link[type=\"application/atom+xml\"]")); + + QMap<KUrl, QString> map; + int i = 0; + foreach(QWebElement el, col) { - urlList += QString("<a href=\"") + url.url() + QString("\">") + url.url() + QString("</a><br />"); + QString urlString; + if( el.attribute("href").startsWith( QL1S("http") ) ) + urlString = el.attribute("href"); + else + { + KUrl u = url(); + // NOTE + // cd() is probably better than setPath() here, + // for all those url sites just having a path + if(u.cd( el.attribute("href") )) + urlString = u.toMimeDataString(); + } + + QString title = el.attribute("title"); + if(title.isEmpty()) + title= el.attribute("href"); + + map.insert(KUrl(urlString), title); + + i++; } - urlList += QString(i18n("<br />Enough for now... Waiting for some cool Akonadi based feeds management :)")); - KMessageBox::information( view(), - urlList, - i18n("RSS Management") - ); + RSSWidget *widget = new RSSWidget(map, window()); + widget->showAt(pos); } |