X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/64cfc43b97e0216caf8b7b71dd5168eaedb3068c..6f05c66cc0d2416a21fd8eaff0ec6e7a9161d59c:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index e92ec6022..2b829f4e0 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -18,48 +18,48 @@ ***************************************************************************/ #include "dolphinviewcontainer.h" -#include -#include -#include -#include -#include -#include +#include "dolphin_generalsettings.h" +#include "dolphindebug.h" +#include "filterbar/filterbar.h" +#include "global.h" +#include "search/dolphinsearchbox.h" +#include "statusbar/dolphinstatusbar.h" +#include "trash/dolphintrash.h" +#include "views/viewmodecontroller.h" +#include "views/viewproperties.h" #include #include -#include #include -#include +#include #include +#include +#include #include -#include #include #include -#include - -#ifdef KActivities_FOUND -#endif +#include -#include "global.h" -#include "dolphindebug.h" -#include "dolphin_generalsettings.h" -#include "filterbar/filterbar.h" -#include "search/dolphinsearchbox.h" -#include "statusbar/dolphinstatusbar.h" -#include "views/viewmodecontroller.h" -#include "views/viewproperties.h" +#include +#include +#include +#include +#include +#include DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : QWidget(parent), - m_topLayout(0), - m_urlNavigator(0), - m_searchBox(0), - m_messageWidget(0), - m_view(0), - m_filterBar(0), - m_statusBar(0), - m_statusBarTimer(0), + m_topLayout(nullptr), + m_navigatorWidget(nullptr), + m_urlNavigator(nullptr), + m_emptyTrashButton(nullptr), + m_searchBox(nullptr), + m_messageWidget(nullptr), + m_view(nullptr), + m_filterBar(nullptr), + m_statusBar(nullptr), + m_statusBarTimer(nullptr), m_statusBarTimestamp(), m_autoGrabFocus(true) #ifdef KActivities_FOUND @@ -72,6 +72,11 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : m_topLayout->setSpacing(0); m_topLayout->setMargin(0); + m_navigatorWidget = new QWidget(this); + QHBoxLayout* navigatorLayout = new QHBoxLayout(m_navigatorWidget); + navigatorLayout->setSpacing(0); + navigatorLayout->setMargin(0); + m_urlNavigator = new KUrlNavigator(new KFilePlacesModel(this), url, this); connect(m_urlNavigator, &KUrlNavigator::activated, this, &DolphinViewContainer::activate); @@ -85,6 +90,13 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : KUrlComboBox* editor = m_urlNavigator->editor(); editor->setCompletionMode(KCompletion::CompletionMode(settings->urlCompletionMode())); + m_emptyTrashButton = new QPushButton(QIcon::fromTheme(QStringLiteral("user-trash")), "&Empty Trash", this); + m_emptyTrashButton->setFlat(true); + connect(m_emptyTrashButton, &QPushButton::clicked, this, [this]() { Trash::empty(this); }); + connect(&Trash::instance(), &Trash::emptinessChanged, m_emptyTrashButton, &QPushButton::setDisabled); + m_emptyTrashButton->setDisabled(Trash::isEmpty()); + m_emptyTrashButton->hide(); + m_searchBox = new DolphinSearchBox(this); m_searchBox->hide(); connect(m_searchBox, &DolphinSearchBox::activated, this, &DolphinViewContainer::activate); @@ -149,6 +161,10 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : #endif }); + connect(m_view, &DolphinView::directoryLoadingCompleted, this, [this]() { + m_emptyTrashButton->setVisible(m_view->url().scheme() == QLatin1String("trash")); + }); + // Initialize status bar m_statusBar = new DolphinStatusBar(this); m_statusBar->setUrl(m_view->url()); @@ -187,7 +203,10 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : connect(m_view, &DolphinView::urlChanged, m_filterBar, &FilterBar::slotUrlChanged); - m_topLayout->addWidget(m_urlNavigator); + navigatorLayout->addWidget(m_urlNavigator); + navigatorLayout->addWidget(m_emptyTrashButton); + + m_topLayout->addWidget(m_navigatorWidget); m_topLayout->addWidget(m_searchBox); m_topLayout->addWidget(m_messageWidget); m_topLayout->addWidget(m_view); @@ -245,6 +264,11 @@ bool DolphinViewContainer::autoGrabFocus() const return m_autoGrabFocus; } +QString DolphinViewContainer::currentSearchText() const +{ + return m_searchBox->text(); +} + const DolphinStatusBar* DolphinViewContainer::statusBar() const { return m_statusBar; @@ -334,7 +358,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled) } m_searchBox->setVisible(enabled); - m_urlNavigator->setVisible(!enabled); + m_navigatorWidget->setVisible(!enabled); if (enabled) { const QUrl& locationUrl = m_urlNavigator->locationUrl();