1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 18:56:34 +01:00

Merge pull request #1148 from pejakm/rsswidget

[RSSWidget] Ability to mark feeds already added
This commit is contained in:
David Rosca 2014-01-12 08:52:03 -08:00
commit 329e33a6bd
2 changed files with 31 additions and 2 deletions

View File

@ -26,6 +26,7 @@
#include <QToolTip> #include <QToolTip>
#include <QPushButton> #include <QPushButton>
#include <QWebFrame> #include <QWebFrame>
#include <QSqlQuery>
RSSWidget::RSSWidget(WebView* view, QWidget* parent) RSSWidget::RSSWidget(WebView* view, QWidget* parent)
: LocationBarPopup(parent) : LocationBarPopup(parent)
@ -58,10 +59,18 @@ RSSWidget::RSSWidget(WebView* view, QWidget* parent)
button->setIcon(QIcon(":icons/other/feed.png")); button->setIcon(QIcon(":icons/other/feed.png"));
button->setStyleSheet("text-align:left"); button->setStyleSheet("text-align:left");
button->setText(title); button->setText(title);
button->setToolTip(url.toString());
button->setProperty("rss-url", url); button->setProperty("rss-url", url);
button->setProperty("rss-title", title); button->setProperty("rss-title", title);
button->setFlat(true); // setFlat( rss.exists ? true : false );
if (!isRssFeedAlreadyStored(url)) {
button->setFlat(true);
button->setToolTip(url.toString());
}
else {
button->setFlat(false);
button->setEnabled(false);
button->setToolTip(tr("You already have this feed."));
}
int pos = i % cols > 0 ? (i % cols) * 2 : 0; int pos = i % cols > 0 ? (i % cols) * 2 : 0;
@ -101,6 +110,25 @@ void RSSWidget::addRss()
} }
} }
bool RSSWidget::isRssFeedAlreadyStored(const QUrl &url)
{
QUrl rurl = url;
if (url.isRelative()) {
rurl = m_view->page()->mainFrame()->baseUrl().resolved(url);
}
if (rurl.isEmpty()) {
return false;
}
QSqlQuery query;
query.prepare("SELECT id FROM rss WHERE address=?");
query.addBindValue(rurl);
query.exec();
return query.next();
}
RSSWidget::~RSSWidget() RSSWidget::~RSSWidget()
{ {
delete ui; delete ui;

View File

@ -42,6 +42,7 @@ private slots:
void addRss(); void addRss();
private: private:
bool isRssFeedAlreadyStored(const QUrl &url);
Ui::RSSWidget* ui; Ui::RSSWidget* ui;
WebView* m_view; WebView* m_view;
}; };