From 0c71d428f284675c658c55d2f3d9f858ad78c850 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 4 Oct 2009 21:10:14 +0200 Subject: - Cleaning mouse gesture managements - context menu crash fixes && some separators added - preparing PreviewImage for right mouse click manage --- src/previewimage.cpp | 14 ++++++++++++-- src/webpage.cpp | 6 +----- src/webpage.h | 5 ----- src/webview.cpp | 26 +++++++++++++++----------- 4 files changed, 28 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/previewimage.cpp b/src/previewimage.cpp index 60207fb3..94f5061f 100644 --- a/src/previewimage.cpp +++ b/src/previewimage.cpp @@ -30,6 +30,7 @@ #include #include +#include #include #include @@ -83,8 +84,17 @@ void PreviewImage::setSiteImage() void PreviewImage::mousePressEvent(QMouseEvent *event) { - Q_UNUSED(event) - Application::instance()->loadUrl(m_url); + switch(event->button()) + { + case Qt::LeftButton: + Application::instance()->loadUrl(m_url); + break; + case Qt::RightButton: + // TODO + break; + default: + QLabel::mousePressEvent(event); + }; } diff --git a/src/webpage.cpp b/src/webpage.cpp index 59c777d6..0a94be58 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -70,8 +70,6 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) - , m_keyboardModifiers(Qt::NoModifier) - , m_pressedButtons(Qt::NoButton) , m_requestedUrl() { setPluginFactory(new WebPluginFactory(this)); @@ -93,11 +91,9 @@ WebPage::~WebPage() bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { - if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton) + if (Application::keyboardModifiers() & Qt::ControlModifier || Application::mouseButtons() == Qt::MidButton) { Application::instance()->loadUrl(request.url(), Rekonq::SettingOpenTab); - m_keyboardModifiers = Qt::NoModifier; - m_pressedButtons = Qt::NoButton; return false; } diff --git a/src/webpage.h b/src/webpage.h index 86024a9d..7d55afee 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -81,13 +81,8 @@ protected Q_SLOTS: virtual void slotDownloadRequested(const QNetworkRequest &request); private: - friend class WebView; QString errorPage(QNetworkReply *); - // keyboard/mouse modifiers - Qt::KeyboardModifiers m_keyboardModifiers; - Qt::MouseButtons m_pressedButtons; - QUrl m_requestedUrl; }; diff --git a/src/webview.cpp b/src/webview.cpp index ac6f4566..e5cc62bb 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -128,6 +128,8 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) connect(a, SIGNAL(triggered(bool)), this, SLOT(openLinkInNewWindow())); menu.addAction(a); + menu.addSeparator(); + a = pageAction(QWebPage::DownloadLinkToDisk); a->setIcon(KIcon("document-save")); menu.addAction(a); @@ -135,6 +137,8 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) a = pageAction(QWebPage::CopyLinkToClipboard); a->setIcon(KIcon("edit-copy")); menu.addAction(a); + + menu.addSeparator(); } // is content editable && selected? Add CUT @@ -184,13 +188,16 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) if(!engine.isEmpty()) { service = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(engine)); - const QString searchProviderPrefix = *(service->property("Keys").toStringList().begin()) + keywordDelimiter; // FIXME crashed - data.setData(searchProviderPrefix + "some keyword"); - a = new KAction(service->name(), this); - a->setIcon(Application::icon(KUrl(data.uri()))); - a->setData(searchProviderPrefix); - connect(a, SIGNAL(triggered(bool)), this, SLOT(slotSearch())); - searchMenu->addAction(a); + if(service) + { + const QString searchProviderPrefix = *(service->property("Keys").toStringList().begin()) + keywordDelimiter; // FIXME crashed + data.setData(searchProviderPrefix + "some keyword"); + a = new KAction(service->name(), this); + a->setIcon(Application::icon(KUrl(data.uri()))); + a->setData(searchProviderPrefix); + connect(a, SIGNAL(triggered(bool)), this, SLOT(slotSearch())); + searchMenu->addAction(a); + } } } @@ -321,9 +328,6 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) void WebView::mousePressEvent(QMouseEvent *event) { - m_page->m_pressedButtons = event->buttons(); - m_page->m_keyboardModifiers = event->modifiers(); - switch(event->button()) { case Qt::XButton1: @@ -340,7 +344,7 @@ void WebView::mousePressEvent(QMouseEvent *event) void WebView::wheelEvent(QWheelEvent *event) { - if (QApplication::keyboardModifiers() & Qt::ControlModifier) + if (Application::keyboardModifiers() & Qt::ControlModifier) { int numDegrees = event->delta() / 8; int numSteps = numDegrees / 15; -- cgit v1.2.1