From 77fd0e771ac2e173438c98abc1725d1818b4b868 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Wed, 16 Oct 2013 22:37:50 +0200 Subject: Abort loading the current URL if the user presses Escape BUG: 323181 FIXED-IN: 4.12.0 REVIEW: 113234 --- src/kitemviews/kitemlistcontroller.cpp | 1 + src/kitemviews/kitemlistcontroller.h | 5 +++++ src/views/dolphinview.cpp | 11 ++++++----- src/views/dolphinview.h | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 9335ab816..befb09713 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -403,6 +403,7 @@ bool KItemListController::keyPressEvent(QKeyEvent* event) m_selectionManager->clearSelection(); } m_keyboardManager->cancelSearch(); + emit escapePressed(); break; case Qt::Key_Space: diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h index 4d5fee345..bb72856e0 100644 --- a/src/kitemviews/kitemlistcontroller.h +++ b/src/kitemviews/kitemlistcontroller.h @@ -230,6 +230,11 @@ signals: */ void aboveItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); + /** + * Is emitted if the Escape key is pressed. + */ + void escapePressed(); + void modelChanged(KItemModelBase* current, KItemModelBase* previous); void viewChanged(KItemListView* current, KItemListView* previous); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index c1d245301..fd149e0f6 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -154,6 +154,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : connect(controller, SIGNAL(itemHovered(int)), this, SLOT(slotItemHovered(int))); connect(controller, SIGNAL(itemUnhovered(int)), this, SLOT(slotItemUnhovered(int))); connect(controller, SIGNAL(itemDropEvent(int,QGraphicsSceneDragDropEvent*)), this, SLOT(slotItemDropEvent(int,QGraphicsSceneDragDropEvent*))); + connect(controller, SIGNAL(escapePressed()), this, SLOT(stopLoading())); connect(controller, SIGNAL(modelChanged(KItemModelBase*,KItemModelBase*)), this, SLOT(slotModelChanged(KItemModelBase*,KItemModelBase*))); connect(m_model, SIGNAL(directoryLoadingStarted()), this, SLOT(slotDirectoryLoadingStarted())); @@ -485,11 +486,6 @@ void DolphinView::reload() restoreState(restoreStream); } -void DolphinView::stopLoading() -{ - m_model->cancelDirectoryLoading(); -} - void DolphinView::readSettings() { const int oldZoomLevel = m_view->zoomLevel(); @@ -724,6 +720,11 @@ void DolphinView::pasteIntoFolder() } } +void DolphinView::stopLoading() +{ + m_model->cancelDirectoryLoading(); +} + bool DolphinView::eventFilter(QObject* watched, QEvent* event) { switch (event->type()) { diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 86bc5c159..a6f969bc1 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -217,7 +217,6 @@ public: QList visibleRoles() const; void reload(); - void stopLoading(); /** * Refreshes the view to get synchronized with the settings (e.g. icons size, @@ -369,6 +368,8 @@ public slots: */ void pasteIntoFolder(); + void stopLoading(); + /** Activates the view if the item list container gets focus. */ virtual bool eventFilter(QObject* watched, QEvent* event); -- cgit v1.3