#include "statusbar/dolphinstatusbar.h"
#include <KActionCollection>
-#if HAVE_PLASMA_ACTIVITIES
-#include <PlasmaActivities/ResourceInstance>
-#endif
#include <KApplicationTrader>
#include <KFileItemActions>
#include <KFilePlacesModel>
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);
});
connect(m_statusBar, &DolphinStatusBar::stopPressed, this, &DolphinViewContainer::stopDirectoryLoading);
connect(m_statusBar, &DolphinStatusBar::zoomLevelChanged, this, &DolphinViewContainer::slotStatusBarZoomLevelChanged);
+ connect(m_statusBar, &DolphinStatusBar::showMessage, this, [this](const QString &message, KMessageWidget::MessageType messageType) {
+ showMessage(message, messageType);
+ });
m_statusBarTimer = new QTimer(this);
m_statusBarTimer->setSingleShot(true);
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
}
}
-void DolphinViewContainer::showMessage(const QString &message, KMessageWidget::MessageType messageType)
+void DolphinViewContainer::showMessage(const QString &message, KMessageWidget::MessageType messageType, std::initializer_list<QAction *> buttonActions)
{
if (message.isEmpty()) {
return;
m_messageWidget->setWordWrap(true);
m_messageWidget->setMessageType(messageType);
+ const QList<QAction *> previousMessageWidgetActions = m_messageWidget->actions();
+ for (auto action : previousMessageWidgetActions) {
+ m_messageWidget->removeAction(action);
+ }
+ for (QAction *action : buttonActions) {
+ m_messageWidget->addAction(action);
+ }
+
m_messageWidget->setWordWrap(false);
const int unwrappedWidth = m_messageWidget->sizeHint().width();
m_messageWidget->setWordWrap(unwrappedWidth > size().width());
if (newUrl != m_urlNavigator->locationUrl()) {
m_urlNavigator->setLocationUrl(newUrl);
}
-
-#if HAVE_PLASMA_ACTIVITIES
- KActivities::ResourceInstance::notifyAccessed(newUrl);
-#endif
}
void DolphinViewContainer::setFilterBarVisible(bool visible)
if (m_urlNavigatorConnected) {
m_urlNavigatorConnected->setReadOnlyBadgeVisible(rootItem().isLocalFile() && !rootItem().isWritable());
}
+
+ // Update admin bar visibility
+ if (m_view->url().scheme() == QStringLiteral("admin")) {
+ if (!m_adminBar) {
+ m_adminBar = new Admin::Bar(this);
+ m_topLayout->addWidget(m_adminBar, positionFor.adminBar, 0);
+ }
+ m_adminBar->setVisible(true, WithAnimation);
+ } else if (m_adminBar) {
+ m_adminBar->setVisible(false, WithAnimation);
+ }
}
void DolphinViewContainer::slotDirectoryLoadingCanceled()
}
}
-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();