#include "dolphin_contextmenusettings.h"
#include "settings/serviceitemdelegate.h"
#include "settings/servicemodel.h"
+#include "global.h"
#include <KDesktopFile>
#include <KLocalizedString>
#include <QShowEvent>
#include <QSortFilterProxyModel>
#include <QLineEdit>
+#include <QApplication>
namespace
{
const char VersionControlServicePrefix[] = "_version_control_";
const char DeleteService[] = "_delete";
const char CopyToMoveToService[] ="_copy_to_move_to";
+
+ bool laterSelected = false;
}
ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget* parent,
return ContextMenuSettings::showCopyLocation();
} else if (id == "duplicate") {
return ContextMenuSettings::showDuplicateHere();
+ } else if (id == "open_terminal") {
+ return ContextMenuSettings::showOpenTerminal();
}
return false;
}
ContextMenuSettings::setShowCopyLocation(visible);
} else if (id == "duplicate") {
ContextMenuSettings::setShowDuplicateHere(visible);
+ } else if (id == "open_terminal") {
+ ContextMenuSettings::setShowOpenTerminal(visible);
}
}
VersionControlSettings::setEnabledPlugins(enabledPlugins);
VersionControlSettings::self()->save();
- KMessageBox::information(window(),
- i18nc("@info", "Dolphin must be restarted to apply the "
- "updated version control systems settings."),
- QString(), // default title
- QStringLiteral("ShowVcsRestartInformation"));
+ if (!laterSelected) {
+ KMessageBox::ButtonCode promptRestart = KMessageBox::questionYesNo(window(),
+ i18nc("@info", "Dolphin must be restarted to apply the "
+ "updated version control system settings."),
+ i18nc("@info", "Restart now?"),
+ KGuiItem(QApplication::translate("KStandardGuiItem", "&Restart"), QStringLiteral("dialog-restart")),
+ KGuiItem(QApplication::translate("KStandardGuiItem", "&Later"), QStringLiteral("dialog-later"))
+ );
+ if (promptRestart == KMessageBox::ButtonCode::Yes) {
+ Dolphin::openNewWindow();
+ qApp->quit();
+ } else {
+ laterSelected = true;
+ }
+ }
}
}
CopyToMoveToService,
ContextMenuSettings::showCopyMoveMenu());
- // Add other built-in actions
- for (const QString& id : m_actionIds) {
- const QAction* action = m_actions->action(id);
- if (action) {
- addRow(action->icon().name(), action->text(), id, entryVisible(id));
+ if (m_actions){
+ // Add other built-in actions
+ for (const QString& id : m_actionIds) {
+ const QAction* action = m_actions->action(id);
+ if (action) {
+ addRow(action->icon().name(), action->text(), id, entryVisible(id));
+ }
}
}
const KService::List entries = KServiceTypeTrader::self()->query(QStringLiteral("KonqPopupMenu/Plugin"));
for (const KService::Ptr &service : entries) {
const QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath());
- const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(file, true);
+ const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true);
const KDesktopFile desktopFile(file);
const QString subMenuName = desktopFile.desktopGroup().readEntry("X-KDE-Submenu");
#endif
// Load JSON-based plugins that implement the KFileItemActionPlugin interface
- const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"));
+ const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/kfileitemaction"));
for (const auto &jsonMetadata : jsonPlugins) {
const QString desktopEntryName = jsonMetadata.pluginId();
// Create a checkbox for each available version control plugin
QSet<QString> loadedPlugins;
- const QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins(QStringLiteral("dolphin/vcs"));
+ const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("dolphin/vcs"));
for (const auto &plugin : plugins) {
const QString pluginName = plugin.name();
addRow(QStringLiteral("code-class"),