diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/128/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/128/image-x-generic.png new file mode 100644 index 000000000..cb656f461 Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/128/image-x-generic.png differ diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/16/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/16/image-x-generic.png new file mode 100644 index 000000000..add1c5915 Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/16/image-x-generic.png differ diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/22/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/22/image-x-generic.png new file mode 100644 index 000000000..4ec14a911 Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/22/image-x-generic.png differ diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/32/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/32/image-x-generic.png new file mode 100644 index 000000000..a5a2ce062 Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/32/image-x-generic.png differ diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/48/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/48/image-x-generic.png new file mode 100644 index 000000000..69bd44e7d Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/48/image-x-generic.png differ diff --git a/resources/graphics/themes/mini-kfaenza/mimetypes/64/image-x-generic.png b/resources/graphics/themes/mini-kfaenza/mimetypes/64/image-x-generic.png new file mode 100644 index 000000000..d4ac8cf39 Binary files /dev/null and b/resources/graphics/themes/mini-kfaenza/mimetypes/64/image-x-generic.png differ diff --git a/src/gui/basewebview.cpp b/src/gui/basewebview.cpp index 7517164de..c08220c9f 100644 --- a/src/gui/basewebview.cpp +++ b/src/gui/basewebview.cpp @@ -12,10 +12,12 @@ BaseWebView::BaseWebView(QWidget *parent) : QWebView(parent), m_page(new BaseWebPage(this)) { setPage(m_page); + initializeActions(); createConnections(); } BaseWebView::~BaseWebView() { + qDebug("Destroying BaseWebView."); } void BaseWebView::onLoadFinished(bool ok) { @@ -30,6 +32,38 @@ void BaseWebView::createConnections() { this, &BaseWebView::onLoadFinished); } +void BaseWebView::setupIcons() { + m_actionReload->setIcon(ThemeFactory::fromTheme("view-refresh")); + m_actionCopyLink->setIcon(ThemeFactory::fromTheme("edit-copy")); + m_actionCopyImage->setIcon(ThemeFactory::fromTheme("insert-image")); + m_actionCopyImageUrl->setIcon(ThemeFactory::fromTheme("edit-copy")); +} + +void BaseWebView::initializeActions() { + // Create needed actions. + m_actionReload = pageAction(QWebPage::Reload); + m_actionReload->setParent(this); + m_actionReload->setText(tr("Reload web page")); + m_actionReload->setToolTip(tr("Reload current web page")); + + m_actionCopyLink = pageAction(QWebPage::CopyLinkToClipboard); + m_actionCopyLink->setParent(this); + m_actionCopyLink->setText(tr("Copy link url")); + m_actionCopyLink->setToolTip(tr("Copy link url to clipboard")); + + + m_actionCopyImage = pageAction(QWebPage::CopyImageToClipboard); + m_actionCopyImage->setParent(this); + m_actionCopyImage->setText(tr("Copy image")); + m_actionCopyImage->setToolTip(tr("Copy image to clipboard")); + + + m_actionCopyImageUrl = pageAction(QWebPage::CopyImageUrlToClipboard); + m_actionCopyImageUrl->setParent(this); + m_actionCopyImageUrl->setText(tr("Copy image url")); + m_actionCopyImageUrl->setToolTip(tr("Copy image url to clipboard")); +} + void BaseWebView::displayErrorPage() { // TODO: Add better custom error page. setHtml("error", url()); @@ -40,41 +74,28 @@ void BaseWebView::contextMenuEvent(QContextMenuEvent *event) { QMenu image_submenu(tr("Image"), &context_menu); QWebHitTestResult hit_result = page()->mainFrame()->hitTestContent(event->pos()); - // Obtain needed actions. - QAction *action_reload = pageAction(QWebPage::Reload); - action_reload->setText(tr("Reload web page")); - action_reload->setToolTip(tr("Reload current web page")); - context_menu.addAction(action_reload); + image_submenu.setIcon(ThemeFactory::fromTheme("image-x-generic")); + + // Assemble the menu from actions. + context_menu.addAction(m_actionReload); if (hit_result.linkUrl().isValid()) { - QAction *action_copylink = pageAction(QWebPage::CopyLinkToClipboard); - action_copylink->setText(tr("Copy link url")); - action_copylink->setToolTip(tr("Copy link url to clipboard")); - action_copylink->setIcon(ThemeFactory::fromTheme("edit-copy")); - context_menu.addAction(action_copylink); + context_menu.addAction(m_actionCopyLink); } if (!hit_result.pixmap().isNull()) { + // Add 'Image' menu, because if user clicked image it needs to be visible. context_menu.addMenu(&image_submenu); - QAction *action_copyimage = pageAction(QWebPage::CopyImageToClipboard); - action_copyimage->setText(tr("Copy image")); - action_copyimage->setToolTip(tr("Copy image to clipboard")); - action_copyimage->setIcon(ThemeFactory::fromTheme("insert-image")); - image_submenu.addAction(action_copyimage); + image_submenu.addAction(m_actionCopyImage); } if (hit_result.imageUrl().isValid()) { - QAction *action_copyimageurl = pageAction(QWebPage::CopyImageUrlToClipboard); - action_copyimageurl->setText(tr("Copy image url")); - action_copyimageurl->setToolTip(tr("Copy image url to clipboard")); - action_copyimageurl->setIcon(ThemeFactory::fromTheme("edit-copy")); - image_submenu.addAction(action_copyimageurl); + image_submenu.addAction(m_actionCopyImageUrl); } // Display the menu. context_menu.exec(mapToGlobal(event->pos())); - context_menu.deleteLater(); } void BaseWebView::paintEvent(QPaintEvent *event) { diff --git a/src/gui/basewebview.h b/src/gui/basewebview.h index 28a20d2db..49060abe0 100644 --- a/src/gui/basewebview.h +++ b/src/gui/basewebview.h @@ -2,6 +2,7 @@ #define BASEWEBVIEW_H #include +#include class QPaintEvent; @@ -15,11 +16,15 @@ class BaseWebView : public QWebView { explicit BaseWebView(QWidget *parent = 0); virtual ~BaseWebView(); + void setupIcons(); + protected slots: // Executes if loading of any page is done. void onLoadFinished(bool ok); protected: + void initializeActions(); + // Creates necessary connections. void createConnections(); @@ -34,6 +39,11 @@ class BaseWebView : public QWebView { private: BaseWebPage *m_page; + + QAction *m_actionReload; + QAction *m_actionCopyLink; + QAction *m_actionCopyImage; + QAction *m_actionCopyImageUrl; }; #endif // BASEWEBVIEW_H diff --git a/src/gui/formabout.cpp b/src/gui/formabout.cpp index 48b1df420..b48da8a0a 100644 --- a/src/gui/formabout.cpp +++ b/src/gui/formabout.cpp @@ -67,15 +67,16 @@ FormAbout::FormAbout(QWidget *parent) : QDialog(parent), m_ui(new Ui::FormAbout) "
  • Martin Rotter (rotter.martinos@gmail.com) (author of RSS Guard)
  • " "
  • snakebite & tiheum (authors of KFaenza/Faenza icon theme)
  • " "
  • Digia Plc (author of QtSingleApplication component)
  • " + "
  • Artem Galichkin (doomer3d@gmail.com) (author of original QKeySequenceWidget component)
  • " "" "")); m_ui->m_txtInfo->setText(tr("RSS Guard is a (very) tiny feed reader." - "

    This software is distributed under the terms of GNU General Public License, version 3 or later." + "

    This software is distributed under the terms of GNU General Public License, version 3." "

    Contacts:" "" - "You can obtain source code for Qonverter from its website." + "You can obtain source code for RSS Guard from its website." "


    Copyright © 2011-%1 Martin Rotter").arg(QDateTime::currentDateTime().date().year())); } diff --git a/src/gui/webbrowser.cpp b/src/gui/webbrowser.cpp index 038172dd8..c2888cba9 100644 --- a/src/gui/webbrowser.cpp +++ b/src/gui/webbrowser.cpp @@ -110,6 +110,7 @@ void WebBrowser::setupIcons() { m_actionForward->setIcon(ThemeFactory::fromTheme("go-next")); m_actionReload->setIcon(ThemeFactory::fromTheme("view-refresh")); m_actionStop->setIcon(ThemeFactory::fromTheme("process-stop")); + m_webView->setupIcons(); } QList WebBrowser::runningWebBrowsers() {