┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinviewcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphinviewcontainer.cpp')
-rw-r--r--src/dolphinviewcontainer.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index cf7778c82..5a424d17b 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -6,6 +6,7 @@
#include "dolphinviewcontainer.h"
+#include "admin/bar.h"
#include "dolphin_compactmodesettings.h"
#include "dolphin_contentdisplaysettings.h"
#include "dolphin_detailsmodesettings.h"
@@ -46,12 +47,13 @@
// An overview of the widgets contained by this ViewContainer
struct LayoutStructure {
int searchBox = 0;
- int messageWidget = 1;
- int selectionModeTopBar = 2;
- int view = 3;
- int selectionModeBottomBar = 4;
- int filterBar = 5;
- int statusBar = 6;
+ int adminBar = 1;
+ int messageWidget = 2;
+ int selectionModeTopBar = 3;
+ int view = 4;
+ int selectionModeBottomBar = 5;
+ int filterBar = 6;
+ int statusBar = 7;
};
constexpr LayoutStructure positionFor;
@@ -62,6 +64,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent)
, m_urlNavigatorConnected{nullptr}
, m_searchBox(nullptr)
, m_searchModeEnabled(false)
+ , m_adminBar{nullptr}
, m_messageWidget(nullptr)
, m_selectionModeTopBar{nullptr}
, m_view(nullptr)
@@ -147,6 +150,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent)
connect(m_view, &DolphinView::hiddenFilesShownChanged, this, &DolphinViewContainer::slotHiddenFilesShownChanged);
connect(m_view, &DolphinView::sortHiddenLastChanged, this, &DolphinViewContainer::slotSortHiddenLastChanged);
connect(m_view, &DolphinView::currentDirectoryRemoved, this, &DolphinViewContainer::slotCurrentDirectoryRemoved);
+ connect(m_view, &DolphinView::urlChanged, this, &DolphinViewContainer::updateAdminBarVisibility);
// Initialize status bar
m_statusBar = new DolphinStatusBar(this);
@@ -176,6 +180,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent)
m_topLayout->addWidget(m_statusBar, positionFor.statusBar, 0);
setSearchModeEnabled(isSearchUrl(url));
+ updateAdminBarVisibility(url);
// Update view as the ContentDisplaySettings change
// this happens here and not in DolphinView as DolphinviewContainer and DolphinView are not in the same build target ATM
@@ -768,6 +773,20 @@ void DolphinViewContainer::showItemInfo(const KFileItem &item)
}
}
+void DolphinViewContainer::updateAdminBarVisibility(const QUrl &url)
+{
+ if (url.scheme() == QStringLiteral("admin")) {
+ if (!m_adminBar) {
+ m_adminBar = new Admin::Bar(this);
+ m_topLayout->addWidget(m_adminBar, positionFor.adminBar, 0);
+ connect(m_adminBar, &Admin::Bar::activated, this, &DolphinViewContainer::activate);
+ }
+ m_adminBar->setVisible(true, WithAnimation);
+ } else if (m_adminBar) {
+ m_adminBar->setVisible(false, WithAnimation);
+ }
+}
+
void DolphinViewContainer::closeFilterBar()
{
m_filterBar->closeFilterBar();