mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
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:
parent
1115585584
commit
6ec1a1eb36
|
@ -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();
|
||||
|
|
|
@ -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://).
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue