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);
}
#include <kdirmodel.h>
#include <QAbstractProxyModel>
#include <QApplication>
+#include <QClipboard>
DolphinController::DolphinController(DolphinView* dolphinView) :
QObject(dolphinView),
}
}
+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);
* - handleKeyPressEvent()
* - emitItemEntered()
* - emitViewportEntered()
+ * - replaceUrlByClipboard()
*
* The communication of the abstract view to the view implementations is done by:
* - setUrl()
*/
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.
*/
}
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();
#include <QAbstractProxyModel>
#include <QApplication>
-#include <QPainter>
-#include <QPoint>
#include <QScrollBar>
DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controller) :
}
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();