#include "statusbar/dolphinstatusbar.h"
#include <KActionCollection>
-#if HAVE_KACTIVITIES
-#include <KActivities/ResourceInstance>
+#if HAVE_PLASMA_ACTIVITIES
+#include <PlasmaActivities/ResourceInstance>
#endif
#include <KApplicationTrader>
#include <KFileItemActions>
, m_statusBarTimer(nullptr)
, m_statusBarTimestamp()
, m_autoGrabFocus(true)
-#if HAVE_KACTIVITIES
- , m_activityResourceInstance(nullptr)
-#endif
{
hide();
m_messageWidget = new KMessageWidget(this);
m_messageWidget->setCloseButtonVisible(true);
+ m_messageWidget->setPosition(KMessageWidget::Header);
m_messageWidget->hide();
#ifndef Q_OS_WIN
connect(placesModel, &KFilePlacesModel::rowsRemoved, this, &DolphinViewContainer::slotPlacesModelChanged);
connect(this, &DolphinViewContainer::searchModeEnabledChanged, this, &DolphinViewContainer::captionChanged);
-
- // Initialize kactivities resource instance
-
-#if HAVE_KACTIVITIES
- m_activityResourceInstance = new KActivities::ResourceInstance(window()->winId(), url);
- m_activityResourceInstance->setParent(this);
-#endif
}
DolphinViewContainer::~DolphinViewContainer()
m_urlNavigatorConnected->setActive(active);
}
m_view->setActive(active);
-
-#if HAVE_KACTIVITIES
- if (active) {
- m_activityResourceInstance->notifyFocusedIn();
- } else {
- m_activityResourceInstance->notifyFocusedOut();
- }
-#endif
}
bool DolphinViewContainer::isActive() const
m_urlNavigator->setLocationUrl(newUrl);
}
-#if HAVE_KACTIVITIES
- m_activityResourceInstance->setUri(newUrl);
+#if HAVE_PLASMA_ACTIVITIES
+ KActivities::ResourceInstance::notifyAccessed(newUrl);
#endif
}
}
KIO::OpenUrlJob *job = new KIO::OpenUrlJob(item.targetUrl(), item.mimetype());
- job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this));
+ // Auto*Warning*Handling, errors are put in a KMessageWidget by us in slotOpenUrlFinished.
+ job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoWarningHandlingEnabled, this));
job->setShowOpenOrExecuteDialog(true);
connect(job, &KIO::OpenUrlJob::finished, this, &DolphinViewContainer::slotOpenUrlFinished);
job->start();
auto mimeType = item.currentMimeType();
if (item.isLocalFile() && mimeType.inherits(QStringLiteral("application/x-executable")) && mimeType.inherits(QStringLiteral("text/plain"))
&& QFileInfo(item.localPath()).isExecutable()) {
- KConfigGroup cfgGroup(KSharedConfig::openConfig(QStringLiteral("kiorc")), "Executable scripts");
+ KConfigGroup cfgGroup(KSharedConfig::openConfig(QStringLiteral("kiorc")), QStringLiteral("Executable scripts"));
const QString value = cfgGroup.readEntry("behaviourOnLaunch", "alwaysAsk");
// in case KIO::WidgetsOpenOrExecuteFileHandler::promptUserOpenOrExecute would not open the file
}
if (KProtocolManager::supportsListing(url)) {
- setSearchModeEnabled(isSearchUrl(url));
+ const bool searchBoxInitialized = isSearchModeEnabled() && m_searchBox->text().isEmpty();
+ setSearchModeEnabled(isSearchUrl(url) || searchBoxInitialized);
+
m_view->setUrl(url);
tryRestoreViewState();
- if (m_autoGrabFocus && isActive() && !isSearchUrl(url)) {
+ if (m_autoGrabFocus && isActive() && !isSearchModeEnabled()) {
// When an URL has been entered, the view should get the focus.
// The focus must be requested asynchronously, as changing the URL might create
// a new view widget.
QDesktopServices::openUrl(url);
redirect(QUrl(), m_urlNavigator->locationUrl(1));
} else {
- showMessage(i18nc("@info:status", "Invalid protocol"), Error);
+ if (!url.scheme().isEmpty()) {
+ showMessage(i18nc("@info:status", "Invalid protocol '%1'", url.scheme()), Error);
+ } else {
+ showMessage(i18nc("@info:status", "Invalid protocol"), Error);
+ }
m_urlNavigator->goBack();
}
}