┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt7
-rw-r--r--src/dolphincontextmenu.cpp26
-rw-r--r--src/dolphinmainwindow.cpp6
-rw-r--r--src/dolphinpart.cpp2
-rw-r--r--src/dolphinviewcontainer.cpp2
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp10
-rw-r--r--src/kitemviews/kitemset.h4
-rw-r--r--src/kitemviews/kstandarditemlistwidget.cpp17
-rw-r--r--src/kitemviews/kstandarditemlistwidget.h3
-rw-r--r--src/kitemviews/private/kitemlistselectiontoggle.cpp2
-rw-r--r--src/main.cpp2
-rw-r--r--src/org.kde.dolphin.appdata.xml5
-rw-r--r--src/panels/folders/folderspanel.cpp2
-rw-r--r--src/panels/places/placesitem.cpp6
-rw-r--r--src/panels/places/placesitemmodel.cpp10
-rw-r--r--src/settings/dolphin_generalsettings.kcfg2
-rw-r--r--src/settings/kcm/kcmdolphingeneral.cpp2
-rw-r--r--src/settings/kcm/kcmdolphingeneral.desktop2
-rw-r--r--src/settings/kcm/kcmdolphinnavigation.desktop2
-rw-r--r--src/settings/kcm/kcmdolphinservices.desktop1
-rw-r--r--src/settings/kcm/kcmdolphinviewmodes.desktop3
-rw-r--r--src/settings/services/servicessettingspage.cpp14
-rw-r--r--src/statusbar/mountpointobservercache.cpp4
-rw-r--r--src/tests/CMakeLists.txt35
-rw-r--r--src/views/dolphinview.cpp4
-rw-r--r--src/views/versioncontrol/fileviewversioncontrolplugin.desktop1
-rw-r--r--src/views/versioncontrol/kversioncontrolplugin.h10
27 files changed, 108 insertions, 76 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 48a7c1de6..069096814 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -23,8 +23,7 @@ set(dolphinvcs_LIB_SRCS
)
add_library(dolphinvcs ${dolphinvcs_LIB_SRCS})
-
-generate_export_header(dolphinvcs BASE_NAME dolphin)
+generate_export_header(dolphinvcs BASE_NAME dolphinvcs)
target_link_libraries(
dolphinvcs PUBLIC
@@ -48,7 +47,7 @@ ecm_generate_headers(dolphinvcs_LIB_HEADERS
install(TARGETS dolphinvcs EXPORT DolphinVcsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin" COMPONENT Devel)
########### next target ###############
@@ -131,6 +130,7 @@ kconfig_add_kcfg_files(dolphinprivate_LIB_SRCS GENERATE_MOC
)
add_library(dolphinprivate ${dolphinprivate_LIB_SRCS})
+generate_export_header(dolphinprivate BASE_NAME dolphin)
target_link_libraries(
dolphinprivate PUBLIC
@@ -170,6 +170,7 @@ set_target_properties(dolphinprivate PROPERTIES
)
install(TARGETS dolphinprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
##########################################
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp
index dfec76144..ff2e5478a 100644
--- a/src/dolphincontextmenu.cpp
+++ b/src/dolphincontextmenu.cpp
@@ -37,6 +37,7 @@
#include <KJobWidgets>
#include <KMimeTypeTrader>
#include <KNewFileMenu>
+#include <KPluginMetaData>
#include <KService>
#include <KLocalizedString>
#include <KStandardAction>
@@ -503,6 +504,7 @@ void DolphinContextMenu::addFileItemPluginActions()
const KConfig config(QStringLiteral("kservicemenurc"), KConfig::NoGlobals);
const KConfigGroup showGroup = config.group("Show");
+ QSet<QString> addedPlugins;
foreach (const KService::Ptr& service, pluginServices) {
if (!showGroup.readEntry(service->desktopEntryName(), true)) {
// The plugin has been disabled
@@ -513,6 +515,30 @@ void DolphinContextMenu::addFileItemPluginActions()
if (abstractPlugin) {
abstractPlugin->setParent(this);
addActions(abstractPlugin->actions(props, m_mainWindow));
+ addedPlugins << service->desktopEntryName();
+ }
+ }
+
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) {
+ return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin"));
+ });
+
+ foreach (const auto& jsonMetadata, jsonPlugins) {
+ // The plugin has been disabled
+ if (!showGroup.readEntry(jsonMetadata.pluginId(), true)) {
+ continue;
+ }
+
+ // The plugin also has a .desktop file and has already been added.
+ if (addedPlugins.contains(jsonMetadata.pluginId())) {
+ continue;
+ }
+
+ KPluginFactory *factory = KPluginLoader(jsonMetadata.fileName()).factory();
+ KAbstractFileItemActionPlugin* abstractPlugin = factory->create<KAbstractFileItemActionPlugin>();
+ if (abstractPlugin) {
+ abstractPlugin->setParent(this);
+ addActions(abstractPlugin->actions(props, m_mainWindow));
}
}
}
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 1fadaf7fd..34008b5eb 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -83,7 +83,7 @@ namespace {
// Used for GeneralSettings::version() to determine whether
// an updated version of Dolphin is running.
const int CurrentDolphinVersion = 200;
-};
+}
DolphinMainWindow::DolphinMainWindow() :
KXmlGuiWindow(0),
@@ -1099,7 +1099,7 @@ void DolphinMainWindow::setupActions()
compareFiles->setEnabled(false);
connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles);
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal"));
openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal"));
openTerminal->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal")));
@@ -1208,7 +1208,7 @@ void DolphinMainWindow::setupDockWidgets()
// Setup "Terminal"
#ifndef Q_OS_WIN
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal"));
terminalDock->setLocked(lock);
terminalDock->setObjectName(QStringLiteral("terminalDock"));
diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp
index f62bc5139..332f8e9b9 100644
--- a/src/dolphinpart.cpp
+++ b/src/dolphinpart.cpp
@@ -222,7 +222,7 @@ void DolphinPart::createActions()
m_findFileAction->setIcon(QIcon::fromTheme(QStringLiteral("edit-find")));
connect(m_findFileAction, &QAction::triggered, this, &DolphinPart::slotFindFile);
- if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+ if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
m_openTerminalAction = actionCollection()->addAction(QStringLiteral("open_terminal"));
m_openTerminalAction->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal")));
m_openTerminalAction->setText(i18nc("@action:inmenu Tools", "Open &Terminal"));
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 73ffd5c2d..1c43fc977 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -95,7 +95,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
m_view = new DolphinView(url, this);
connect(m_view, &DolphinView::urlChanged,
- m_urlNavigator, &KUrlNavigator::setUrl);
+ m_urlNavigator, &KUrlNavigator::setLocationUrl);
connect(m_view, &DolphinView::urlChanged,
m_messageWidget, &KMessageWidget::hide);
connect(m_view, &DolphinView::directoryLoadingCompleted,
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index fe30f62f9..92a020003 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -374,9 +374,9 @@ void KFileItemModelRolesUpdater::slotItemsRemoved(const KItemRangeList& itemRang
m_balooFileMonitor->clear();
} else {
QStringList newFileList;
- foreach (const QString& itemUrl, m_balooFileMonitor->files()) {
- if (m_model->index(itemUrl) >= 0) {
- newFileList.append(itemUrl);
+ foreach (const QString& file, m_balooFileMonitor->files()) {
+ if (m_model->index(QUrl::fromLocalFile(file)) >= 0) {
+ newFileList.append(file);
}
}
m_balooFileMonitor->setFiles(newFileList);
@@ -707,10 +707,10 @@ void KFileItemModelRolesUpdater::resolveRecentlyChangedItems()
updateChangedItems();
}
-void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& itemUrl)
+void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& file)
{
#ifdef HAVE_BALOO
- const KFileItem item = m_model->fileItem(itemUrl);
+ const KFileItem item = m_model->fileItem(QUrl::fromLocalFile(file));
if (item.isNull()) {
// itemUrl is not in the model anymore, probably because
diff --git a/src/kitemviews/kitemset.h b/src/kitemviews/kitemset.h
index 31fe1d249..5afe24df5 100644
--- a/src/kitemviews/kitemset.h
+++ b/src/kitemviews/kitemset.h
@@ -20,6 +20,8 @@
#ifndef KITEMSET_H
#define KITEMSET_H
+#include "dolphin_export.h"
+
#include <kitemviews/kitemrange.h>
/**
@@ -40,7 +42,7 @@
* The complexity of most operations depends on the number of ranges.
*/
-class KItemSet
+class DOLPHIN_EXPORT KItemSet
{
public:
KItemSet();
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp
index 51c5bc896..8740cb73f 100644
--- a/src/kitemviews/kstandarditemlistwidget.cpp
+++ b/src/kitemviews/kstandarditemlistwidget.cpp
@@ -850,6 +850,15 @@ void KStandardItemListWidget::hideEvent(QHideEvent* event)
KItemListWidget::hideEvent(event);
}
+bool KStandardItemListWidget::event(QEvent *event)
+{
+ if (event->type() == QEvent::WindowDeactivate || event->type() == QEvent::WindowActivate) {
+ m_dirtyContent = true;
+ }
+
+ return KItemListWidget::event(event);
+}
+
void KStandardItemListWidget::slotCutItemsChanged()
{
const QUrl itemUrl = data().value("url").toUrl();
@@ -954,7 +963,7 @@ void KStandardItemListWidget::updatePixmapCache()
iconName = QStringLiteral("unknown");
}
const QStringList overlays = values["iconOverlays"].toStringList();
- m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight);
+ m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight, isSelected() && isActiveWindow() ? QIcon::Selected : QIcon::Normal);
} else if (m_pixmap.width() / m_pixmap.devicePixelRatio() != maxIconWidth || m_pixmap.height() / m_pixmap.devicePixelRatio() != maxIconHeight) {
// A custom pixmap has been applied. Assure that the pixmap
@@ -1438,11 +1447,11 @@ void KStandardItemListWidget::closeRoleEditor()
m_roleEditor = 0;
}
-QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size)
+QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size, QIcon::Mode mode)
{
static const QIcon fallbackIcon = QIcon::fromTheme(QStringLiteral("unknown"));
size *= qApp->devicePixelRatio();
- const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size);
+ const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size) % ":" % QString::number(mode);
QPixmap pixmap;
if (!QPixmapCache::find(key, pixmap)) {
@@ -1467,7 +1476,7 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStrin
requestedSize = size;
}
- pixmap = icon.pixmap(requestedSize / qApp->devicePixelRatio(), requestedSize / qApp->devicePixelRatio());
+ pixmap = icon.pixmap(requestedSize / qApp->devicePixelRatio(), requestedSize / qApp->devicePixelRatio(), mode);
if (requestedSize != size) {
KPixmapModifier::scale(pixmap, QSize(size, size));
}
diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h
index 9ab5d4c8f..e6ba4bb3f 100644
--- a/src/kitemviews/kstandarditemlistwidget.h
+++ b/src/kitemviews/kstandarditemlistwidget.h
@@ -183,6 +183,7 @@ protected:
virtual void resizeEvent(QGraphicsSceneResizeEvent* event) Q_DECL_OVERRIDE;
virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE;
virtual void hideEvent(QHideEvent* event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private slots:
void slotCutItemsChanged();
@@ -212,7 +213,7 @@ private:
*/
void closeRoleEditor();
- static QPixmap pixmapForIcon(const QString& name, const QStringList& overlays, int size);
+ static QPixmap pixmapForIcon(const QString& name, const QStringList& overlays, int size, QIcon::Mode mode);
/**
* @return Preferred size of the rating-image based on the given
diff --git a/src/kitemviews/private/kitemlistselectiontoggle.cpp b/src/kitemviews/private/kitemlistselectiontoggle.cpp
index 1429cb9ef..9031c870f 100644
--- a/src/kitemviews/private/kitemlistselectiontoggle.cpp
+++ b/src/kitemviews/private/kitemlistselectiontoggle.cpp
@@ -89,7 +89,7 @@ void KItemListSelectionToggle::resizeEvent(QGraphicsSceneResizeEvent* event)
void KItemListSelectionToggle::updatePixmap()
{
- const QString icon = m_checked ? QStringLiteral("list-remove") : QStringLiteral("list-add");
+ const QString icon = m_checked ? QStringLiteral("emblem-remove") : QStringLiteral("emblem-added");
const KIconLoader::States state = m_hovered ? KIconLoader::ActiveState : KIconLoader::DisabledState;
m_pixmap = KIconLoader::global()->loadIcon(icon, KIconLoader::Desktop, iconSize(), state);
}
diff --git a/src/main.cpp b/src/main.cpp
index 0bbae97fc..8987d351f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -100,7 +100,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
aboutData.setupCommandLine(&parser);
// command line options
- parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("select"), i18nc("@info:shell", "The files and directories passed as arguments "
+ parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("select"), i18nc("@info:shell", "The files and folders passed as arguments "
"will be selected.")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("split"), i18nc("@info:shell", "Dolphin will get started with a split view.")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("daemon"), i18nc("@info:shell", "Start Dolphin Daemon (only required for DBus Interface)")));
diff --git a/src/org.kde.dolphin.appdata.xml b/src/org.kde.dolphin.appdata.xml
index 54d215e28..d0cec5030 100644
--- a/src/org.kde.dolphin.appdata.xml
+++ b/src/org.kde.dolphin.appdata.xml
@@ -62,6 +62,7 @@
<summary xml:lang="fi">Tiedostonhallinta</summary>
<summary xml:lang="fr">Gestionnaire de fichier</summary>
<summary xml:lang="gl">Xestor de ficheiros</summary>
+ <summary xml:lang="he">מנהל קבצים</summary>
<summary xml:lang="hu">Fájlkezelő</summary>
<summary xml:lang="ia">Gerente de File</summary>
<summary xml:lang="it">Gestore file</summary>
@@ -105,6 +106,7 @@
<p xml:lang="fi">Dolphin on kevyt tiedostonhallinta. Se on suunniteltu helppokäyttöiseksi ja yksinkertaiseksi, mutta silti joustavaksi ja mukautettavaksi. Voit siis hallita tiedostojasi juuri niin kuin haluat.</p>
<p xml:lang="fr">Dolphin est un gestionnaire de fichier léger. Il a été conçu en gardant à l'esprit la simplicité et l'aisance à l'usage, tout en permettant flexibilité et personnalisation. Cela signifie que vous pouvez gérer vos fichiers de la manière exacte que vous voulez.</p>
<p xml:lang="gl">Dolphin é un xestor de ficheiros lixeiro. Deseñouse pensando na facilidade de uso e maila simplicidade, pero permitindo flexibilidade e personalización. Noutras palabras, permítelle xestionar os seus ficheiros do xeito que máis lle agrade.</p>
+ <p xml:lang="he">‏Dolphin הוא מנהל קבצים קל־משקל. הוא עוצב לקלות שימוש ופשטות, תוך כדי אפשור גמישות והתאמה אישית. זה אומר שתוכל לנהל את קבציך איך שאתה רוצה לעשות זאת.</p>
<p xml:lang="hu">A Dolphin egy pehelysúlyú fájlkezelő. Az egyszerű használatot és az egyszerűséget szem előtt tartva tervezték, miközben továbbra is lehetővé teszi a rugalmasságot és a testre szabhatóságot. Ez azt jelenti, hogy pontosan oly módon végezheti a fájlkezelést, ahogy csak akarja.</p>
<p xml:lang="ia">Dolphin es un gerente de file legier. Il ha essite designate con facilitate de uso e simplicitate in le mente, mentre il permitte ancora flexibilitate e personalisation. Isto significa que tu pote facer le gerente de file exactemente como tu lo vole.</p>
<p xml:lang="it">Dolphin è un gestore file leggero. È stato progettato per essere facile da utilizzare e pensando alla semplicità, garantendo al contempo flessibilità e personalizzazione. Ciò significa che puoi gestire i tuoi file come meglio desideri.</p>
@@ -145,6 +147,7 @@
<p xml:lang="fi">Ominaisuudet:</p>
<p xml:lang="fr">Fonctionnalités :</p>
<p xml:lang="gl">Funcionalidades:</p>
+ <p xml:lang="he">תכונות:</p>
<p xml:lang="hu">Szolgáltatások:</p>
<p xml:lang="ia">Characteristicas:</p>
<p xml:lang="it">Funzionalità:</p>
@@ -342,6 +345,7 @@
<li xml:lang="fi">Useiden välilehtien tuki</li>
<li xml:lang="fr">Prise en charge des onglets multiples</li>
<li xml:lang="gl">Permite abrir varias lapelas.</li>
+ <li xml:lang="he">תמיכה בכרטיסיות</li>
<li xml:lang="hu">Több lap támogatása</li>
<li xml:lang="ia">Supporto de scheda multiple</li>
<li xml:lang="it">Supporto di schede multiple</li>
@@ -421,6 +425,7 @@
<li xml:lang="fi">Tuki muutosten kumoamiselle ja tekemiselle uudelleen</li>
<li xml:lang="fr">Prise en charge d'annulation et recommencement</li>
<li xml:lang="gl">Permite desfacer e refacer.</li>
+ <li xml:lang="he">תמיכה בביטול וביצוע חוזר</li>
<li xml:lang="hu">Visszavonás/ismétlés támogatás</li>
<li xml:lang="ia">Supporto de annulla/reface</li>
<li xml:lang="it">Supporto di annulla/rifai</li>
diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp
index 3ad1bf3ff..276cf5672 100644
--- a/src/panels/folders/folderspanel.cpp
+++ b/src/panels/folders/folderspanel.cpp
@@ -240,7 +240,7 @@ void FoldersPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* eve
event->buttons(),
event->modifiers());
- KIO::DropJob *job = DragAndDropHelper::dropUrls(destItem.url(), &dropEvent, this);
+ KIO::DropJob *job = DragAndDropHelper::dropUrls(destItem.mostLocalUrl(), &dropEvent, this);
if (job) {
connect(job, &KIO::DropJob::result, this, [this](KJob *job) { if (job->error()) emit errorMessage(job->errorString()); });
}
diff --git a/src/panels/places/placesitem.cpp b/src/panels/places/placesitem.cpp
index a04064d0b..b32f8204d 100644
--- a/src/panels/places/placesitem.cpp
+++ b/src/panels/places/placesitem.cpp
@@ -276,12 +276,12 @@ void PlacesItem::initializeDevice(const QString& udi)
Solid::Block *block = m_device.as<Solid::Block>();
if (block) {
const QString device = block->device();
- setUrl(QStringLiteral("audiocd:/?device=%1").arg(device));
+ setUrl(QUrl(QStringLiteral("audiocd:/?device=%1").arg(device)));
} else {
- setUrl(QStringLiteral("audiocd:/"));
+ setUrl(QUrl(QStringLiteral("audiocd:/")));
}
} else if (m_mtp) {
- setUrl(QStringLiteral("mtp:udi=%1").arg(m_device.udi()));
+ setUrl(QUrl(QStringLiteral("mtp:udi=%1").arg(m_device.udi())));
}
}
diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp
index a42cb0403..25c4d51f6 100644
--- a/src/panels/places/placesitemmodel.cpp
+++ b/src/panels/places/placesitemmodel.cpp
@@ -1099,17 +1099,17 @@ QUrl PlacesItemModel::createTimelineUrl(const QUrl& url)
const int year = date.year();
const int month = date.month();
const int day = date.day();
- timelineUrl = "timeline:/" + timelineDateString(year, month) +
- '/' + timelineDateString(year, month, day);
+ timelineUrl = QUrl("timeline:/" + timelineDateString(year, month) +
+ '/' + timelineDateString(year, month, day));
} else if (path.endsWith(QLatin1String("thismonth"))) {
const QDate date = QDate::currentDate();
- timelineUrl = "timeline:/" + timelineDateString(date.year(), date.month());
+ timelineUrl = QUrl("timeline:/" + timelineDateString(date.year(), date.month()));
} else if (path.endsWith(QLatin1String("lastmonth"))) {
const QDate date = QDate::currentDate().addMonths(-1);
- timelineUrl = "timeline:/" + timelineDateString(date.year(), date.month());
+ timelineUrl = QUrl("timeline:/" + timelineDateString(date.year(), date.month()));
} else {
Q_ASSERT(path.endsWith(QLatin1String("today")));
- timelineUrl= url;
+ timelineUrl = url;
}
return timelineUrl;
diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg
index de7390bbd..12f158541 100644
--- a/src/settings/dolphin_generalsettings.kcfg
+++ b/src/settings/dolphin_generalsettings.kcfg
@@ -43,7 +43,7 @@
<default>false</default>
</entry>
<entry name="GlobalViewProps" type="Bool">
- <label>Should the view properties be used for all directories</label>
+ <label>Should the view properties be used for all folders</label>
<default>false</default>
</entry>
<entry name="BrowseThroughArchives" type="Bool">
diff --git a/src/settings/kcm/kcmdolphingeneral.cpp b/src/settings/kcm/kcmdolphingeneral.cpp
index 6a02e0297..3cf7e7652 100644
--- a/src/settings/kcm/kcmdolphingeneral.cpp
+++ b/src/settings/kcm/kcmdolphingeneral.cpp
@@ -48,7 +48,7 @@ DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget* parent, const QV
QTabWidget* tabWidget = new QTabWidget(this);
// initialize 'Behavior' tab
- BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(QDir::homePath(), tabWidget);
+ BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(QUrl::fromLocalFile(QDir::homePath()), tabWidget);
tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior"));
connect(behaviorPage, &BehaviorSettingsPage::changed, this, static_cast<void(DolphinGeneralConfigModule::*)()>(&DolphinGeneralConfigModule::changed));
diff --git a/src/settings/kcm/kcmdolphingeneral.desktop b/src/settings/kcm/kcmdolphingeneral.desktop
index fbe2d9824..a7974f0b2 100644
--- a/src/settings/kcm/kcmdolphingeneral.desktop
+++ b/src/settings/kcm/kcmdolphingeneral.desktop
@@ -64,6 +64,7 @@ Comment[lt]=Ši tarnyba leidžia konfigūruoti Dolphin bendrąsias nuostatas.
Comment[nb]=Med denne tjenesten kan du sette opp generelle innstillinger for Dolphin.
Comment[nl]=Met deze dienst kunt u algemene Dolphin-instellingen configureren.
Comment[nn]=Denne tenesta lèt deg setja opp generelle innstillingar for Dolphin.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਆਮ ਡਾਲਫਿਨ ਸੈਟਿੰਗ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa pozwala na ogólne ustawienie Dolphina.
Comment[pt]=Este serviço permite a configuração das definições gerais do Dolphin.
Comment[pt_BR]=Este serviço permite configurar as opções gerais do Dolphin.
@@ -157,6 +158,7 @@ Comment[lt]=Bendrųjų failų tvarkyklės nuostatų konfigūravimas
Comment[nb]=Sett opp generelle innstillinger for filbehandleren
Comment[nl]=Algemene bestandsbeheerderinstellingen configureren
Comment[nn]=Set opp generelle innstillingar for filhandsamaren
+Comment[pa]=ਆਮ ਫਾਇਲ ਮੈਨੇਜਰ ਸੈਟਿੰਗ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia ogólne zarządzania plikami
Comment[pt]=Configurar as definições gerais do gestor de ficheiros
Comment[pt_BR]=Configura as opções gerais do gerenciador de arquivos
diff --git a/src/settings/kcm/kcmdolphinnavigation.desktop b/src/settings/kcm/kcmdolphinnavigation.desktop
index 96de0c6f7..9e2d27b65 100644
--- a/src/settings/kcm/kcmdolphinnavigation.desktop
+++ b/src/settings/kcm/kcmdolphinnavigation.desktop
@@ -64,6 +64,7 @@ Comment[lt]=Ši tarnyba leidžia konfigūruoti Dolphin navigaciją.
Comment[nb]=Med denne tjenesten kan du sette opp navigasjon for Dolphin.
Comment[nl]=Met deze dienst kunt u Dolphin-navigatie configureren.
Comment[nn]=Denne tenesta lèt deg setja opp navigasjonen for Dolphin.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਡਾਲਫਿਨ ਨੇਵੀਗੇਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa umożliwia ustawienie nawigacji w Dolphinie.
Comment[pt]=Este serviço permite a configuração da navegação do Dolphin.
Comment[pt_BR]=Este serviço permite configurar a navegação do Dolphin.
@@ -157,6 +158,7 @@ Comment[lt]=Konfigūruokite failų tvarkyklės navigaciją
Comment[nb]=Sett opp navigasjon i filbehandleren
Comment[nl]=Bestandsbeheerdernavigatie configureren
Comment[nn]=Set opp navigasjonen i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਨੇਵੀਗੇਸ਼ਨ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia nawigacji w zarządzaniu plikami
Comment[pt]=Configurar a navegação do gestor de ficheiros
Comment[pt_BR]=Configura a navegação do gerenciador de arquivos
diff --git a/src/settings/kcm/kcmdolphinservices.desktop b/src/settings/kcm/kcmdolphinservices.desktop
index b865b6cc9..97f7cf2b0 100644
--- a/src/settings/kcm/kcmdolphinservices.desktop
+++ b/src/settings/kcm/kcmdolphinservices.desktop
@@ -115,6 +115,7 @@ Comment[lt]=Konfigūruokite failų tvarkyklės tarnybas
Comment[nb]=Sett opp tjenester i filbehandleren
Comment[nl]=Bestandsbeheerderservices configureren
Comment[nn]=Set opp tenester i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਦੀਆਂ ਸਰਵਿਸਾਂ ਦੀ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia usług zarządzania plikami
Comment[pt]=Configurar os serviços do gestor de ficheiros
Comment[pt_BR]=Configura os serviços do gerenciador de arquivos
diff --git a/src/settings/kcm/kcmdolphinviewmodes.desktop b/src/settings/kcm/kcmdolphinviewmodes.desktop
index 8eb06dfdf..59d1f211b 100644
--- a/src/settings/kcm/kcmdolphinviewmodes.desktop
+++ b/src/settings/kcm/kcmdolphinviewmodes.desktop
@@ -22,6 +22,7 @@ Name[lt]=Dolphin rodymo būdai
Name[nb]=Dolphin visningsmåter
Name[nl]=Dolphin-weergavemodussen
Name[nn]=Dolphin-visingar
+Name[pa]=ਡਾਲਫਿਨ ਝਲਕ ਢੰਗ
Name[pl]=Tryby widoku Dolphina
Name[pt]=Modos de Visualização do Dolphin
Name[pt_BR]=Modos de exibição do Dolphin
@@ -63,6 +64,7 @@ Comment[lt]=Ši tarnyba leidžia konfigūruoti Dolphin rodymo būdus.
Comment[nb]=Med denne tjenesten kan du sette opp Dolphins visningsmåter.
Comment[nl]=Met deze dienst kunt u Dolphin-weergavemodussen configureren.
Comment[nn]=Denne tenesta lèt deg setja opp Dolphin-visingsmodusar.
+Comment[pa]=ਇਹ ਸਰਵਿਸ ਡਾਲਫਿਨ ਝਲਕ ਮੋਡ ਦੀ ਸੰਰਚਨਾ ਵਾਸਤੇ ਹੈ।
Comment[pl]=Ta usługa umożliwia ustawienie trybów widoku Dolphina.
Comment[pt]=Este serviço permite a configuração dos modos de visualização do Dolphin.
Comment[pt_BR]=Este serviço permite configurar os modos de exibição do Dolphin.
@@ -156,6 +158,7 @@ Comment[lt]=Failų tvarkyklės rodymo būdų konfigūravimas
Comment[nb]=Tilpass filbehandlerens visningsmåter
Comment[nl]=Bestandsbeheerderweergavemodussen configureren
Comment[nn]=Set opp visingsmodusane i filhandsamaren
+Comment[pa]=ਫਾਇਲ ਮੈਨੇਜਰ ਝਲਕ ਮੋਡ ਸੰਰਚਨਾ
Comment[pl]=Ustawienia trybów widoku zarządzania plikami
Comment[pt]=Configurar os modos de visualização do gestor de ficheiros
Comment[pt_BR]=Configura os modos de exibição do gerenciador de arquivos
diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp
index 4cfa2327c..2b9b8f46f 100644
--- a/src/settings/services/servicessettingspage.cpp
+++ b/src/settings/services/servicessettingspage.cpp
@@ -30,6 +30,7 @@
#include <KLocalizedString>
#include <KMessageBox>
#include <KNS3/Button>
+#include <KPluginMetaData>
#include <KService>
#include <KServiceTypeTrader>
#include <QStandardPaths>
@@ -228,6 +229,19 @@ void ServicesSettingsPage::loadServices()
}
}
+ // Load JSON-based plugins that implement the KFileItemActionPlugin interface
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) {
+ return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin"));
+ });
+
+ foreach (const auto& jsonMetadata, jsonPlugins) {
+ const QString desktopEntryName = jsonMetadata.pluginId();
+ if (!isInServicesList(desktopEntryName)) {
+ const bool checked = showGroup.readEntry(desktopEntryName, true);
+ addRow(jsonMetadata.iconName(), jsonMetadata.name(), desktopEntryName, checked);
+ }
+ }
+
m_sortModel->sort(Qt::DisplayRole);
}
diff --git a/src/statusbar/mountpointobservercache.cpp b/src/statusbar/mountpointobservercache.cpp
index ab3744eac..48796ac5a 100644
--- a/src/statusbar/mountpointobservercache.cpp
+++ b/src/statusbar/mountpointobservercache.cpp
@@ -62,10 +62,10 @@ MountPointObserver* MountPointObserverCache::observerForUrl(const QUrl& url)
} else {
// Even if determining the mount point failed, the observer might still
// be able to retrieve information about the url.
- cachedObserverUrl = url.toLocalFile();
+ cachedObserverUrl = url;
}
} else {
- cachedObserverUrl = url.url();
+ cachedObserverUrl = url;
}
MountPointObserver* observer = m_observerForMountPoint.value(cachedObserverUrl);
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 22a8b4849..c7159bf1b 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -9,7 +9,6 @@ add_definitions(-DDOLPHIN_EXPORT=)
# KItemSetTest
set(kitemsettest_SRCS
kitemsettest.cpp
- ../kitemviews/kitemset.cpp
)
add_executable(kitemsettest ${kitemsettest_SRCS})
@@ -31,9 +30,6 @@ target_link_libraries(kitemrangetest dolphinprivate Qt5::Test)
# KItemListSelectionManagerTest
set(kitemlistselectionmanagertest_SRCS
kitemlistselectionmanagertest.cpp
- ../kitemviews/kitemlistselectionmanager.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
)
add_executable(kitemlistselectionmanagertest ${kitemlistselectionmanagertest_SRCS})
@@ -45,17 +41,6 @@ target_link_libraries(kitemlistselectionmanagertest dolphinprivate Qt5::Test)
set(kitemlistcontrollertest_SRCS
kitemlistcontrollertest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kfileitemlistwidget.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
- ../kitemviews/kitemlistviewaccessible.cpp
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
../dolphindebug.cpp
)
@@ -72,16 +57,6 @@ target_link_libraries(kitemlistcontrollertest dolphinprivate Qt5::Test)
set(kfileitemlistviewtest_SRCS
kfileitemlistviewtest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
- ../kitemviews/kitemlistviewaccessible.cpp
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
../dolphindebug.cpp
)
@@ -98,9 +73,6 @@ target_link_libraries(kfileitemlistviewtest dolphinprivate Qt5::Test)
set(kfileitemmodeltest_SRCS
kfileitemmodeltest.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
../dolphindebug.cpp
)
@@ -117,8 +89,6 @@ target_link_libraries(kfileitemmodeltest dolphinprivate Qt5::Test)
set(kfileitemmodelbenchmark_SRCS
kfileitemmodelbenchmark.cpp
testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
../dolphindebug.cpp
)
@@ -133,7 +103,6 @@ target_link_libraries(kfileitemmodelbenchmark dolphinprivate Qt5::Test)
# KItemListKeyboardSearchManagerTest
set(kitemlistkeyboardsearchmanagertest_SRCS
kitemlistkeyboardsearchmanagertest.cpp
- ../kitemviews/private/kitemlistkeyboardsearchmanager.cpp
)
add_executable(kitemlistkeyboardsearchmanagertest ${kitemlistkeyboardsearchmanagertest_SRCS})
@@ -161,9 +130,6 @@ endif()
# KStandardItemModelTest
set(kstandarditemmodeltest_SRCS
kstandarditemmodeltest.cpp
- ../kitemviews/kstandarditem.cpp
- ../kitemviews/kstandarditemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
../dolphindebug.cpp
)
@@ -176,7 +142,6 @@ target_link_libraries(kstandarditemmodeltest dolphinprivate Qt5::Test)
set(viewpropertiestest_SRCS
viewpropertiestest.cpp
testdir.cpp
- ../views/viewproperties.cpp
../dolphindebug.cpp
)
kconfig_add_kcfg_files(viewpropertiestest_SRCS GENERATE_MOC
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp
index c3df3a9a8..5466fd38e 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -1031,7 +1031,7 @@ void DolphinView::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even
destUrl = url();
} else {
// The item represents a directory or desktop-file
- destUrl = destItem.url();
+ destUrl = destItem.mostLocalUrl();
}
QDropEvent dropEvent(event->pos().toPoint(),
@@ -1278,7 +1278,7 @@ QUrl DolphinView::openItemAsFolderUrl(const KFileItem& item, const bool browseTh
if (desktopFile.hasLinkType()) {
const QString linkUrl = desktopFile.readUrl();
if (!linkUrl.startsWith(QLatin1String("http"))) {
- return linkUrl;
+ return QUrl::fromUserInput(linkUrl);
}
}
}
diff --git a/src/views/versioncontrol/fileviewversioncontrolplugin.desktop b/src/views/versioncontrol/fileviewversioncontrolplugin.desktop
index 57a5883b7..afd8276b3 100644
--- a/src/views/versioncontrol/fileviewversioncontrolplugin.desktop
+++ b/src/views/versioncontrol/fileviewversioncontrolplugin.desktop
@@ -24,6 +24,7 @@ Comment[lt]=Versijų kontrolės papildinys failų tvarkyklėms
Comment[nb]=Versjonskontrollmodul for filvisninger
Comment[nl]=Plugin voor versiecontrole op bestandoverzichten
Comment[nn]=Versjonskontroll-tillegg for filvisingar
+Comment[pa]=ਫਾਇਲ ਝਲਕ ਲਈ ਵਰਜਨ ਕੰਟਰੋਲ ਪਲੱਗਇਨ
Comment[pl]=Wtyczka systemu zarządzania wersjami dla widoku plików
Comment[pt]='Plugin' de Controlo de Versões para as Áreas de Ficheiros
Comment[pt_BR]=Extensão de controle de versões para as visualizações de arquivos
diff --git a/src/views/versioncontrol/kversioncontrolplugin.h b/src/views/versioncontrol/kversioncontrolplugin.h
index 85835e062..1696f975c 100644
--- a/src/views/versioncontrol/kversioncontrolplugin.h
+++ b/src/views/versioncontrol/kversioncontrolplugin.h
@@ -20,7 +20,7 @@
#ifndef KVERSIONCONTROLPLUGIN_H
#define KVERSIONCONTROLPLUGIN_H
-#include <dolphin_export.h>
+#include <dolphinvcs_export.h>
#include <QObject>
#include <QAction>
@@ -81,7 +81,7 @@ class KFileItem;
*
* @since 4.8
*/
-class DOLPHIN_EXPORT KVersionControlPlugin : public QObject
+class DOLPHINVCS_EXPORT KVersionControlPlugin : public QObject
{
Q_OBJECT
@@ -165,16 +165,16 @@ public:
/**
* Is invoked after the version control information has been
* received. It is assured that
- * KVersionControlPluginV2::beginInfoRetrieval() has been
+ * KVersionControlPlugin::beginRetrieval() has been
* invoked before.
*/
virtual void endRetrieval() = 0;
/**
* @return The version for the item \p item.
- * It is assured that KVersionControlPlugin::beginInfoRetrieval() has been
+ * It is assured that KVersionControlPlugin::beginRetrieval() has been
* invoked before and that the file is part of the directory specified
- * in beginInfoRetrieval().
+ * in beginRetrieval().
*/
virtual ItemVersion itemVersion(const KFileItem& item) const = 0;