┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinviewcontainer.cpp
diff options
context:
space:
mode:
authorRoman Inflianskas <[email protected]>2018-03-11 20:21:24 +0300
committerRoman Inflianskas <[email protected]>2018-03-18 13:46:06 +0300
commiteb68fae15cdbf15e894d1a9d555c88d306261cc2 (patch)
tree648372a1d54bd6c4a13fb64ba0f533cf66c12eb4 /src/dolphinviewcontainer.cpp
parent86f4fcb8cd574f6d886627fc5e01c9edfc84e977 (diff)
Show "Empty Trash" button inside trash directory
Summary: Show "Empty Trash" button inside trash directory. FEATURE: 163306 Test Plan: {F5734949} Reviewers: ngraham, rkflx, markg, elvisangelaccio Reviewed By: ngraham, markg, elvisangelaccio Subscribers: markg, emateli, broulik, elvisangelaccio, rkflx, mmustac, ngraham, #dolphin Tags: #dolphin Differential Revision: https://phabricator.kde.org/D10804
Diffstat (limited to 'src/dolphinviewcontainer.cpp')
-rw-r--r--src/dolphinviewcontainer.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 6c5edc13f..2b829f4e0 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -51,7 +51,9 @@
DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
QWidget(parent),
m_topLayout(nullptr),
+ m_navigatorWidget(nullptr),
m_urlNavigator(nullptr),
+ m_emptyTrashButton(nullptr),
m_searchBox(nullptr),
m_messageWidget(nullptr),
m_view(nullptr),
@@ -70,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);
@@ -83,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);
@@ -147,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());
@@ -185,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);
@@ -337,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();