Commit graph

444 commits

Author SHA1 Message Date
Méven Car 0a581f97be Ensure good export of dolphinvcs headers 2023-05-09 09:24:19 +02:00
Méven Car 69f6b9b78b Revert "partially Improve kuserfeedback import"
This reverts commit 047bf33d90.
2023-05-08 17:43:48 +02:00
Méven Car 047bf33d90 Improve kuserfeedback import 2023-05-08 16:23:15 +02:00
Méven Car 76e3eab6ea
Port to Qt6 2023-05-07 18:32:17 +02:00
Alexander Lohnau 50c889e24c Use separate KMoreTools library 2023-03-04 23:49:48 +00:00
Dāvis Mosāns d0fd5e3869 Remove deprecated ConfigurePreviewPluginDialog 2023-03-04 23:49:48 +00:00
Dāvis Mosāns 6600dc9bdc Rename KF5 to KF6 2023-03-04 20:58:48 +00:00
Méven Car bb686052c7
Revert "Remove deprecated ConfigurePreviewPluginDialog"
This reverts commit d8de1c37e5.
2023-02-14 17:03:43 +01:00
Dāvis Mosāns d8de1c37e5 Remove deprecated ConfigurePreviewPluginDialog 2023-02-10 09:44:23 +00:00
Nicolas Fella 7df627a7d6 Add missing KCodecs link 2023-01-15 01:38:10 +01:00
Nicolas Fella 6d21deb6e4 Properly use X11 startup ids
When one instance of Dolphin activates another it passes a startupId (X11) / activation token (wayland) along.

On X11 this is passed using the DESKTOP_STARTUP_ID environment variable. The code tries to read that through KStartupInfo::startupId().

That doesn't work though, since Qt at startup reads the environment variable afterwards. However, it is nice enough to allow us to access
it through QX11Info::nextStartupId(). Use that to read the token in the first instance and pass it to the second instance like we do on Wayland

The user-facing impact of this is minimal since KStartupInfo::setNewStartupId internally falls back to KWindowSystem::forceActiveWindow when no
startupId is passed.
2022-12-30 12:33:01 +00:00
Laurent Montel a5c0f7588a Show all includes in qtc6 2022-10-11 08:51:03 +02:00
Felix Ernst 8e55f2c240 Better separation of classes
Make obvious when actions trigger selection mode.
2022-08-14 14:42:40 +00:00
Felix Ernst 3b7c05b385 Add Selection Mode
The selection mode action is a checkable toggle action named
"Select Files and Folders" which has "Space" as the default
shortcut.

In selection mode a bottom bar with contextual actions is shown.
These should mostly mirror the actions which are available through
the right-click context menu aka DolphinContextMenu.

Resizing of the window might make a overflow button appear in the
bottom selection mode bar.

This commit makes press and hold in the view activate selection
mode. This behaviour is not triggered if the press and hold is
used to either start a rubberband selection or a drag operation
within a short time. The length of the short timeframe is defined
by a QStyleHint. This is currently not implemented in touch
because I can't test it.

Mix the selection mode bars' background colors using a nice
combination of colors from the current color scheme

BUG: 427202
2022-08-14 14:42:40 +00:00
Alexander Lohnau f506666540 Install dolphinpart actions as standalone file
This will allow Konqueror to use it without relying on the KPart being loaded using KService
2022-08-01 16:35:35 +00:00
Nicolas Fella d7ca76799b Remove service type file for vcs plugins
We don't support old-style plugins any more, so no need to install this
2022-07-30 17:47:40 +02:00
Ahmad Samir 8a0003bfbc Use one config-dolphin.h.cmake configuration file 2022-06-15 11:27:55 +02:00
Laurent Montel a7f35a01ce Fix install/load plugins from kf<version> 2022-06-11 13:34:22 +02:00
Ahmad Samir 2c8adb10ec Port away from deprecated KNewStuff API 2022-05-31 14:25:13 +00:00
Jin Liu ca0d0bb322 Change wording "Leading Column Padding" to "Side Padding"
Since it actually adds padding on both left and right sides,
"Side Padding" might be more accurate.

This change is also propagated to variable and method names.

BUG: 453172
2022-05-26 08:31:12 +00:00
Alexander Lohnau be95cd3025 Define MODULE type for KCM libraries
Otherwise, they will have the "lib" prefix
2022-04-24 20:58:47 +00:00
Alexander Lohnau 1618a3ed21 Convert desktop files of plugins to json
Task: https://phabricator.kde.org/T14564
2022-04-24 20:58:47 +00:00
Steffen Hartleib f509d41baf Using the gesture recognizer from KWidgetsAddons
Using the gesture recognizer from KWidgetsAddons, so that the source code for the gestures is only in one place
2022-03-23 22:00:31 +00:00
Felix Ernst 45af4bc0e0 Allow for more explicit button labels
This commit allows us to very explicitly refer to any set of items
in text. This way buttons don't need to be labeled generically
like "Permanently Delete" but can be enriched to be labeled
"Permanently Delete "FileName"" or "Copy 7 Selected Folders" or
"Copy 6 Files" or "Rename "file1", "file2", "file3", "file4" and
"folder5"".

This commit tries to save translators a lot of work by using a
translation puzzle. This might be problematic for some languages.
The alternative on the other hand would mean that any label which
wants to be explicit would need to have over 10 translations just
for one label which seems quite bad as well.

A fallback is to be implemented for languages that can't really
accommodate for any specific word puzzle. This is explained in the
documentation.
2022-03-23 15:03:32 +00:00
Nicolas Fella 05132a2f1d Port to target-based ecm_add_app_icon 2022-03-20 20:16:04 +01:00
Laurent Montel c6bccbf6de Fix some compile error against qt6 2022-03-15 13:30:13 +01:00
Laurent Montel c21a02bcab Adapt build system for building against qt6 2022-01-14 08:04:01 +01:00
Kai Uwe Broulik af2baf8047 Remove KStandardItem and KStandardItemModel
They were used by the custom places panel and are now unused.
2022-01-11 13:43:44 +01:00
Kai Uwe Broulik 0603e18cd4 Port back to KFilePlacesView
This removes the custom-view engine version of the places panel
and replaces it with the upstream `KFilePlacesView` from KIO.
2022-01-09 18:09:10 +01:00
Claudio Cambra 3abc4cfcd4 Add Flatpak patches to Dolphin depending on CMake definition
When Dolphin gets packaged as a flatpak, this patch gets applied:

https://invent.kde.org/packaging/flatpak-kde-applications/-/blob/master/dolphinpatch.patch

That's not really an ideal solution, so this is probably a better idea -- to upstream the patches and apply them depending on a CMake definition
2022-01-04 21:53:44 +00:00
Alexander Lohnau 2f5e4cb029
Install KCMs in dolphin/kcms namespace
This will allow consumers to load the plugin from this namespace
without KServiceTypeTrader being involved.
2021-10-09 14:14:27 +02:00
Ahmad Samir 0b81b4baf9 Use KDirLister directly now that it emits a jobError() signal
Since KIO 5.82, KCoreDirLister (the base class of KDirLister) emits a jobError()
signal when the ListJob used internally emits an error.

Drop KFileItemModelDirLister class, now redundant.

This also bump the KF version to 5.82.
2021-07-19 09:57:58 +00:00
Friedrich W. H. Kossebau 0d95f5e537 Use more target-centric cmake code
GIT_SILENT
2021-05-31 08:39:17 +00:00
Laurent Montel 953b253676 Use directly autorcc 2021-05-19 22:10:14 +02:00
Friedrich W. H. Kossebau 5ce25a5cde Port away from ECMSetupVersion's deprecated *_VERSION_STRING CMake variable
GIT_SILENT
2021-05-03 02:03:19 +02:00
Alexander Lohnau ccb29c6035 kconfig_add_kcfg_files: Fix warnings about including empty moc file 2021-04-25 06:38:58 +00:00
Nicolas Fella 9e8e58147e Port away from KInit
KInit is planned to go away

https://phabricator.kde.org/T14298
2021-03-28 17:11:36 +02:00
Nicolas Fella f65b0899c3 Build with QT_NO_KEYWORDS 2021-02-09 20:39:50 +00:00
Laurent Montel 8236e95c76 Autogenerate categories file 2021-01-23 09:23:41 +01:00
Duong Do Minh Chau 9a0552d51d Remove context menu settings KCM 2020-12-28 20:18:31 +00:00
Duong Do Minh Chau a512176b4b Add options to hide some context menu entries
This commit add options to hide the following context menu entries:
- Add to Places
- Copy Location
- Duplicate Here
- Open in New Tab and Open in New Tabs
- Open in New Window
- Sort By
- View Mode

The Services settings page is renamed to Context Menu

ShowCopyMoveMenu option is moved from GeneralSettings to ContextMenuSettings

BUG: 314594
2020-12-28 20:18:31 +00:00
Friedrich W. H. Kossebau 9826d81034 dolphinpart: port to new KPluginMetaData-based KParts API 2020-12-07 22:09:58 +00:00
Friedrich W. H. Kossebau 07b7f76f7c dolphinpart: add JSON metadata to plugin, install into kf5/parts subdir 2020-12-07 22:09:58 +00:00
Felix Ernst 2d4d2ce9a1 Adress most of the second round of Angelaccio's review comments
This commit applies most suggestions which were made on the MR.
Most notably the DolphinUrlNavigator class is split up which leads to
the creation of a DolphinUrlNavigatorsController class.

Additionally some minor coding style and const correctness changes are
included.

The error value of cached integers is changed from -1 to INT_MIN
because situations could come up in which -1 would be a valid value.
2020-11-09 23:49:07 +01:00
Felix Ernst 37327c9b0a Make UrlNavigators in the toolbar the only option
The UrlNavigators will be automatically added to the toolbar. The Sort By
action is removed from the default toolbar to make space.

Remove all options to have UrlNavigators outside the toolbar and remove
those code paths.

Make it so the new NavigatorsWidgetAction contains two UrlNavigators when
in split view mode. Spacing was also added to align these UrlNavigators
with the ViewContainers when enough space is available.

Force the toolbar to be either at the top or bottom of the window.

Set a sane sizeHint for DolphinUrlNavigator. It would be better to do this
in KUrlNavigator in the future.

This commit also contains a changes which should be moved to a separate
merge requests before this gets merged:
- Add an expansion animation when split view is enabled by the user
2020-11-09 23:49:07 +01:00
Felix Ernst ad5d3367c7 Add an option to use an UrlNavigator in the toolbar instead
This commit adds a locationInToolbar KToggleAction to switch between
using a location bar to navigate or using a new custom QWidgetAction
in the toolbar.

A big portion of this MR is refactoring because until now the
UrlNavigator was tightly intertwined with the DolphinViewContainer.
With this MR an UrlNavigator for controlling a View can be freely
connected or disconnected with a single method call.

A DolphinUrlNavigator class is created in the process which contains all
Dolphin-specific UrlNavigator code which did previously reside in the
DolphinViewContainer class. Other application parts that belong to
UrlNavigator-management are also moved here.
2020-11-09 23:49:07 +01:00
Elvis Angelaccio 465e06138e Add support for KUserFeedback
This commit introduces KUserFeedback in dolphin with some basic data
sources and with a settings page to configure the telemetry values.

There are also a couple custom data sources as proof of concept: a bunch
of settings and the count of available network shares as listed by Solid.

The settings page is shown only if the user feedback framework is
enabled, but currently in Plasma we don't have a global kill switch to
disable it.

At the moment we never show an encouragement message. We need to connect
to the `Provider::showEncouragementMessage()` signal, but first we
should agree to a common way to show a non-annoying message to the users.
2020-11-05 18:31:28 +00:00
Alexander Lohnau 97415729c3 Compile with QT_NO_KEYWORDS 2020-10-23 18:23:06 +00:00
Alexander Lohnau a24327cd50 Compile without foreach 2020-10-23 18:23:06 +00:00
Steffen Hartleib d7b33b76a1 Improve Touch support
With this patch dolphin now supports the following touch gestures:

* Tap gesture to interact/open with directories, files and so on
* TapAndHold and release gesture for access to the context menu (main window, panel folder, places and information)
* TapAndHold and moving gesture for drag and drop action (main windows, panel folder and places)
* pinch gesture for zoom in main window
* kinetic scrolling (QScroller) for main window, panel folder, panel places, panel information, setting preview and service
* two fingers swipe gesture to left, right and up as shortcut to navigate back, forward and up
* two finger tap gesture to toggle item selection, similar to Ctrl and left mouse click

FEATURE: 385066
FIXED-IN: 20.11.80

 You are currently rebasing branch 'touch' on '85241a924'.
2020-09-13 18:53:32 +00:00