┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-11-20 17:17:35 +0000
committerPeter Penz <[email protected]>2010-11-20 17:17:35 +0000
commit6ec1a1eb364f70d33922a6936f01d981e9e7f620 (patch)
tree73f34eafd4aec55ce3d0e5591f440bb2d6d22e15
parent111558558437cbe14624b6916371ca7f82467bba (diff)
Allow to cancel the loading of search results.
BUG: 257421 FIXED-IN: 4.6.0 svn path=/trunk/KDE/kdebase/apps/; revision=1199112
-rw-r--r--src/dolphinviewcontainer.cpp7
-rw-r--r--src/dolphinviewcontainer.h6
-rw-r--r--src/statusbar/dolphinstatusbar.cpp11
-rw-r--r--src/statusbar/dolphinstatusbar.h7
4 files changed, 31 insertions, 0 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 9e927ee98..bfab87cc8 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -164,6 +164,8 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) :
// initialize status bar
m_statusBar = new DolphinStatusBar(this, m_view);
+ connect(m_statusBar, SIGNAL(stopPressed()), this, SLOT(stopLoading()));
+
m_statusBarTimer = new QTimer(this);
m_statusBarTimer->setSingleShot(true);
m_statusBarTimer->setInterval(300);
@@ -550,6 +552,11 @@ void DolphinViewContainer::closeSearchBox()
setSearchModeEnabled(false);
}
+void DolphinViewContainer::stopLoading()
+{
+ m_view->stopLoading();
+}
+
bool DolphinViewContainer::isSearchUrl(const KUrl& url) const
{
const QString protocol = url.protocol();
diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h
index 44f5dd906..a780722ba 100644
--- a/src/dolphinviewcontainer.h
+++ b/src/dolphinviewcontainer.h
@@ -248,6 +248,12 @@ private slots:
void startSearching(const QString& text);
void closeSearchBox();
+ /**
+ * Stops the loading of a directory. Is connected with the "stopPressed" signal
+ * from the statusbar.
+ */
+ void stopLoading();
+
private:
/**
* @return True if the URL protocol is a search URL (e. g. nepomuksearch:// or filenamesearch://).
diff --git a/src/statusbar/dolphinstatusbar.cpp b/src/statusbar/dolphinstatusbar.cpp
index 687c00935..4cfa3aeae 100644
--- a/src/statusbar/dolphinstatusbar.cpp
+++ b/src/statusbar/dolphinstatusbar.cpp
@@ -52,6 +52,7 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) :
m_zoomSlider(0),
m_zoomIn(0),
m_progressBar(0),
+ m_stopButton(0),
m_progress(100),
m_messageTimeStamp()
{
@@ -100,6 +101,13 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) :
m_spaceInfo->setUrl(m_view->url());
// Initialize progress information
+ m_stopButton = new QToolButton(this);
+ m_stopButton->setIcon(KIcon("process-stop"));
+ // TODO: Add tooltip for KDE SC 4.7.0, if new strings are allowed again
+ m_stopButton->setAutoRaise(true);
+ m_stopButton->hide();
+ connect(m_stopButton, SIGNAL(clicked()), this, SIGNAL(stopPressed()));
+
m_progressText = new QLabel(this);
m_progressText->hide();
@@ -126,6 +134,7 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) :
topLayout->addWidget(m_messageLabel);
topLayout->addWidget(m_zoomWidget);
topLayout->addWidget(m_spaceInfo);
+ topLayout->addWidget(m_stopButton);
topLayout->addWidget(m_progressText);
topLayout->addWidget(m_progressBar);
@@ -341,11 +350,13 @@ void DolphinStatusBar::updateProgressInfo()
// Show the progress information and hide the extensions
setExtensionsVisible(false);
if (!isErrorShown) {
+ m_stopButton->show();
m_progressText->show();
m_progressBar->show();
}
} else {
// Hide the progress information and show the extensions
+ m_stopButton->hide();
m_progressText->hide();
m_progressBar->hide();
setExtensionsVisible(true);
diff --git a/src/statusbar/dolphinstatusbar.h b/src/statusbar/dolphinstatusbar.h
index 35c207fcd..2c1378372 100644
--- a/src/statusbar/dolphinstatusbar.h
+++ b/src/statusbar/dolphinstatusbar.h
@@ -115,6 +115,12 @@ public:
*/
void refresh();
+signals:
+ /**
+ * Is emitted if the stop-button has been pressed during showing a progress.
+ */
+ void stopPressed();
+
protected:
/** @see QWidget::contextMenuEvent() */
virtual void contextMenuEvent(QContextMenuEvent* event);
@@ -165,6 +171,7 @@ private:
QLabel* m_progressText;
QProgressBar* m_progressBar;
+ QToolButton* m_stopButton;
int m_progress;
// Timestamp when the last message has been set that has not the type