diff options
Diffstat (limited to 'src')
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; |
