From: Peter Penz Date: Tue, 3 Jun 2008 20:30:39 +0000 (+0000) Subject: jump to the URL of the clipboard content if a middle click on an empty area inside... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/834082a16cf69c19ac961beae0da1b713f785849 jump to the URL of the clipboard content if a middle click on an empty area inside the view is done svn path=/trunk/KDE/kdebase/apps/; revision=816421 --- diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index a380dc52b..2ca4cdbbf 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -337,7 +337,11 @@ void DolphinColumnWidget::paintEvent(QPaintEvent* event) void DolphinColumnWidget::mousePressEvent(QMouseEvent* event) { requestActivation(); - if (indexAt(event->pos()).isValid() && (event->button() == Qt::LeftButton)) { + if (!indexAt(event->pos()).isValid()) { + if (QApplication::mouseButtons() & Qt::MidButton) { + m_view->m_controller->replaceUrlByClipboard(); + } + } else if (event->button() == Qt::LeftButton) { // TODO: see comment in DolphinIconsView::mousePressEvent() setState(QAbstractItemView::DraggingState); } diff --git a/src/dolphincontroller.cpp b/src/dolphincontroller.cpp index 57d4a76fb..8a5ba5518 100644 --- a/src/dolphincontroller.cpp +++ b/src/dolphincontroller.cpp @@ -22,6 +22,7 @@ #include #include #include +#include DolphinController::DolphinController(DolphinView* dolphinView) : QObject(dolphinView), @@ -133,6 +134,16 @@ void DolphinController::handleKeyPressEvent(QKeyEvent* event) } } +void DolphinController::replaceUrlByClipboard() +{ + QClipboard* clipboard = QApplication::clipboard(); + const QMimeData* mimeData = clipboard->mimeData(); + if (mimeData->hasText()) { + const QString text = mimeData->text(); + m_dolphinView->setUrl(KUrl(text)); + } +} + KFileItem DolphinController::itemForIndex(const QModelIndex& index) const { Q_ASSERT(m_itemView != 0); diff --git a/src/dolphincontroller.h b/src/dolphincontroller.h index 191bd1e63..d5e9325d3 100644 --- a/src/dolphincontroller.h +++ b/src/dolphincontroller.h @@ -65,6 +65,7 @@ class QWidget; * - handleKeyPressEvent() * - emitItemEntered() * - emitViewportEntered() + * - replaceUrlByClipboard() * * The communication of the abstract view to the view implementations is done by: * - setUrl() @@ -212,6 +213,13 @@ public: */ void handleKeyPressEvent(QKeyEvent* event); + /** + * Replaces the URL of the abstract Dolphin view with the content + * of the clipboard as URL. If the clipboard contains no text, + * nothing will be done. + */ + void replaceUrlByClipboard(); + /** * Returns the file item for the proxy index \a index of the view \a view. */ diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index b725b0da2..932efcb1e 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -206,6 +206,10 @@ void DolphinDetailsView::mousePressEvent(QMouseEvent* event) } if (!index.isValid() || (index.column() != DolphinModel::Name)) { + if (QApplication::mouseButtons() & Qt::MidButton) { + m_controller->replaceUrlByClipboard(); + } + const Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); if (!(modifier & Qt::ShiftModifier) && !(modifier & Qt::ControlModifier)) { clearSelection(); diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index a7b256d2b..3cb9b929d 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -34,8 +34,6 @@ #include #include -#include -#include #include DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controller) : @@ -192,6 +190,9 @@ void DolphinIconsView::mousePressEvent(QMouseEvent* event) } if (!index.isValid()) { + if (QApplication::mouseButtons() & Qt::MidButton) { + m_controller->replaceUrlByClipboard(); + } const Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); if (!(modifier & Qt::ShiftModifier) && !(modifier & Qt::ControlModifier)) { clearSelection();