Allow to cancel the loading of search results.

BUG: 257421
FIXED-IN: 4.6.0


svn path=/trunk/KDE/kdebase/apps/; revision=1199112
This commit is contained in:
Peter Penz 2010-11-20 17:17:35 +00:00
parent 1115585584
commit 6ec1a1eb36
4 changed files with 31 additions and 0 deletions

View file

@ -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();

View file

@ -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://).

View file

@ -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);

View file

@ -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