┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
AgeCommit message (Collapse)Author
2026-02-20Add keyboard shortcut support for service menu actionsAlbert Mkhitaryan
Introduce ServiceMenuShortcutManager, which registers all service menu actions with KActionCollection at startup allowing users to assign keyboard shortcuts in Configure Keyboard Shorcuts. Save/Load of configs happens via KXMLGUI in dolphinui.rc. Notes: - Manager initializes before setupGUI() for shortcut restoration - Execution and validation handled entirely by KFileItemAction in KIO. BUG: 260266
2025-12-03kconfig: add update script for split view closing optionsRafał Lichwała
2025-10-23CMakeLists.txt: make sure settings.kcfg are sharedMéven Car
Between all dolphinprivate library users. So that the KConfigSkeleton singleton have unique instances accross libraries bounds. To fully fix the bug, make sure to save the modified file to disk. BUG: 368121
2025-06-28InformationPanel: Port from Phonon to QtMultimediaMéven Car
2025-06-27Combine the zoom menu entries into one LineGleb Kasachou
Replaced a KActionMenu that contained separate Zoom In, Zoom Out and Reset Zoom actions with a single QWidgetAction that provides the same functionality using three buttons arranged in a single line. Keyboard shortcuts for the three actions are preserved, and the actions still appear separately in the View submenu in the menubar.
2025-06-09Add a SetFolderIcon ItemAction pluginMéven Car
To allow to change folder icon from the context menu. CCBUG: 467221
2025-05-02Add missing KF6::ColorScheme linkNicolas Fella
2025-04-28Delete leftover kconf_update scriptMéven Car
Amends 2f208662cbd604f879027d3cd633a5ce59182a4f NO_CHANGELOG
2025-04-24Fix up 2f208662cbd604f879027d3cd633a5ce59182a4fNate Graham
2025-04-19Add Filelight menu to Tools menuFelix Ernst
The menu for installing and launching Filelight was only available through the status bar free space info button until now. By default we do no longer show the free space info button because the status bar has been changed to show less information by default. This commit adds the "Manage Disk Space Usage" menu to the "Tools" menu in the menu bar so it is more discoverable for users.
2025-04-16Add kconf_update to replace view_mode with view_settings in the toolbarJin Liu
2025-04-07Rewrite search integrationFelix Ernst
This huge commit is a nearly complete rewrite of the Dolphin search code. It implements most of the improved Dolphin search UI/UX as designed and discussed in a collaborative effort by Kristen McWilliam, Jin Liu, Andy Betts, Tagwerk, a few others and me. See https://invent.kde.org/system/dolphin/-/issues/46. # Notable changes - A toggle to change the search tool is provided as most contributors deemed that useful in https://invent.kde.org/system/dolphin/-/merge_requests/642#note_985112. - The default search is changed to filenamesearch for maximum reliability. - Removing all search parameters will take users back to the view state prior to starting a search instead of keeping the search results open. - The UI for choosing file types or modification dates has been made more powerful with more granularity and more options. - Most search parameters can be configured from a popup menu which gives us extra space for extra clarity. - Labels and help buttons as well as hyperlinks to settings makes sure the user always knows why some search parameters are unavailable in some contexts. - Chips show important search parameters while the popup is closed. They allow quickly removing filters. - The titles of the search and the input field placeholder message change to make clear whether file names or file contents are searched. - When the user actively switches the search tool, whether content should be searched, or whether to search everywhere, this is preserved for the initial state of the search bar when the user opens it the next time after restarting Dolphin. # Architecture - The new DolphinQuery class is independent of the UI and contains all search parameters modifiable in Dolphin as easy setters and getters. - DolphinQuery objects are also used to update the states of every component in the search UI. There is now a clear separation of UI and search configuration/DolphinQuery. - DolphinQuery is responsible for exporting to and importing from search URLs. - The search UI always reflects the currently configured DolphinQuery no matter if the user changed the UI to change the DolphinQuery or loaded a DolphinQuery/older search URL which then is reflected in the UI. - I tried to simplify all classes and their interaction between each other as much as possible. - I added some tests BUG: 386754 CCBUG: 435119 CCBUG: 458761 BUG: 446387 BUG: 470136 CCBUG: 471556 CCBUG: 475439 CCBUG: 477969 BUG: 480001 BUG: 483578 BUG: 488047 BUG: 488845 BUG: 500103 FIXED-IN: 25.08
2025-02-24Add smaller statusbar and set it as defaultAkseli Lahtinen
- Statusbar has three modes: Small, FullWidth and Disabled - FullWidth is the original statusbar - Small is the new default statusbar - This statusbar overlays on top of the items instead of taking space - It changes size according to content - Disabled turns statusbar completely off - Zoom slider and space information is only shown in full-width statusbar - Space information is now always on - If user navigates with keyboard, or scrolls to selection, the scrolling will take the statusbar into account - This makes sure the statusbar does not cover any items Related discussion: https://invent.kde.org/system/dolphin/-/issues/50
2024-10-28Overhaul main view accessibilityFelix Ernst
This commit brings the main view of Dolphin into a usable state accessibility-wise. Users of screen readers should have a way better experience while browsing files and folders and navigating along the file system hierarchy. This commit fixes most of the remaining already-identified accessibility issues listed in https://invent.kde.org/teams/accessibility/collaboration/-/issues/28, but not all. Namely, these should now be fixed: 1. Orca should read the element type in dolphin (file, folder, device, link to folder, link to file) 2. Orca should read complete label in icon and compact view mode, currently it only speaks the name, but there could be additional information like the number of elements or the file size. 3. Orca is not able to announce Selecting / Unselecting files in Dolphin. It also never announces how many items are selected in total. (Announcing the total selection can be done by reading out the view element or by pressing the Tab key to get to the status bar with the relevant information.) 4. Dolphin opens on the home directory, but Orca doesn't tell you so. Consider enclosing the area in a frame/panel which updates its accessible name each time you modify the current path by entering or leaving a directory. 5. I don't know what the folder presentation widget is, but it should be presented as a grid view. Currently, we have a terrible experience because the entire row of folders is read at once, with no indication that we can move left and right with the arrows to go between the elements of a row. When I found that out, however, I discovered that when you're on the last icon of the first row and press right arrow, you get to the first icon of the next row, but that's not announced, instead, the whole row is announced at once 6. Orca should announce the current elements instead of "layered pane" when the Folder / File view gets the focus in dolphin 7. Orca reads only name in Table View only of Dolphin 8. Items are sometimes confusingly announced as "collapsed" in contexts in which there is no concept of collapsing/expanding e.g. in icon view mode. A lot of code was moved around and renamed. The three accessibility classes, which all used to be in the same file, are moved into separate files. *Acknowledgement* Thanks to Christian Hempfling and bgt lover for testing as well as originally identifying a lot of the pain points being addressed here. This work is part of a my project funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology. https://kde.org/announcements/2024_ngi_openletter/
2024-10-27ViewProperties: Store view properties in extended file attributesMéven Car
Existing settings are converted. Works on most FS except FAT/exFAT which fallback to .directory files. If the extended file attributes (in ADS in Windows) can't be saved, they are saved to file as before. BUG: 322922 You can see file xattr using for instance for Unix filesystems: getfattr -d /home/meven
2024-08-30settings: Fix the Use Current Location buttonAkseli Lahtinen
During the Dolphin settings revamp (https://invent.kde.org/system/dolphin/-/commit/489b56b68bb29e81337e115c490eea4403001b71?) this QUrl had been forgot to add back so that the FoldersTabsSettingsPage knows what is the current url. This change checks for the main window of dolphin, then gets the URL of it whenever useCurrentLocation is called. However, when this is used as KCM, the button is not created, since there it doesn't make sense. BUG:491753
2024-07-27Port from KIconLoader::drawOverlays to KIconUtils::addOverlaysNicolas Fella
The latter is what most other projects use
2024-07-08Improve Filelight installation UXFelix Ernst
Before this commit pressing the free space button when Filelight is not installed would show a singular action called "Install Filelight to View Disk Usage Statistics…". Pressing this button would open the store page for Filelight. This is an okay user experience, but we can do better. This commit makes it so pressing the free space button when Filelight is not installed shows an attractive UI that makes clear that freeing up disk space can be accomplished nicely by installing Filelight. The "Install Filelight…" button on this UI is connected to PackageKit directly, so we do not need to show a separate store like Discover and instead trigger an installation right then and there. For this, the recently introduced DolphinPackageInstaller KJob is used. Installation progress is reported through the status bar similar to the progress reporting of slowly loading directories or searches. Installation failure or success is ultimately shown within Dolphin as a passive notification above the view. On Microsoft Windows or when PackageKit is not available, the install button will only open a store page for Filelight. CCBUG: 477739
2024-07-04avoid need for activities libChristoph Cullmann
use KRecentFilesAction like Kate and others to signal used files/dirs could later be used to plug-in a recently used menu, too, if ever wanted avoids that this dependency could be missed and the functionality is not there, too
2024-07-01Guide users to using kio-admin instead of sudoFelix Ernst
This commit adds a guided setup that leads users from a situation in which they try to "sudo dolphin" towards them successfully setting up and using kio-admin. 1. When users enter "sudo dolphin", they are told to start Dolphin by typing "dolphin --sudo" or "dolphin --admin" instead. 2. When Dolphin is started with "--sudo" or "--admin" it checks whether an "admin" protocol is installed. If not, a guided setup leads users towards installing it. 3. After that, Dolphin starts with an installed "admin" protocoll like kio-admin. Now a non-modal information dialog appears that explains how to activate and use kio-admin.
2024-06-28Add missing GENERATE_MOC to kconfig_add_kcfg_filesNicolas Fella
dolphin_generalsettings uses signals, so needs moc
2024-05-25Explicitly link against Qt::DBusVolker Krause
That's used here and on Windows is no longer implicitly provided by KF.
2024-05-23Add "Move to New Folder…" actionAhmet Hakan Çelik
This commit introduces an action which creates a new folder with a name specified by the user and moves all the currently selected items there in one go. This action is implemented as a KFileItemActionPlugin which means users can disable it on Dolphin's context menu settings page. BUG: 484555
2024-05-11Add "Act as Administrator" toggle actionFelix Ernst
This commit adds an "Act as Administrator" toggle action to the View menu if kio-admin is installed. The action allows switching between acting as an admin with root-access or not. This was already possible in Dolphin when kio-admin is installed by editing the location bar directly. However this is somewhat unintuitive and there are no warnings at all about the dangers of acting as an administrator. This commit adds a warning dialog when triggering the action. It is somewhat explicit about the risks because this is in fact very dangerous. Furthermore, while acting on a view with administrative privileges, a bar above the view shows up that contains a warning. The bar can be closed to stop acting with elevated privileges. The warning dialog can be disabled and re-enabled from the Dolphin settings but only if the action is even available. There is a lot more to be done to further improve this feature both security-wise as well as when it comes to usability. But considering that we are already encouraging users to use this feature without any warnings at all, I feel like now is a good time to merge this. This work is part of a project funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology. As such, please contact me if you plan on doing related work so what you are doing doesn't collide with work I am being funded to do.
2024-04-30Fix usage of ecm_add_app_iconCarl Schwan
The DESTINATION and THEME arguments are non existent and as such this breaks the macOS builds and create warnings for the other platforms.
2024-04-03DolphinMainWindow: show a banner when the user presses the shortcut of a ↵Jin Liu
disabled action Currently, there's no feedback when the user presses a shortcut of a disabled action, e.g. cut / paste in a read-only directory. This patch shows a banner in that case. It's implemented by enabling a QShortcut for each disabled action. the QShortcut is deleted when the action is enabled again. The following actions are included: cut paste rename moveToTrash deleteWithTrashShortcut deleted createDir copyToOtherView moveToOtherView
2024-03-15Add settings page for PanelsBenedikt Thiemer
For now this just includes the settings for the information panel. Prior to this commit the options for configuring the information panel were only exposed via right clicking the information panel. This was not discoverable enough. Our guidelines also state that much. See: https://community.kde.org/Get_Involved/Design/Frequently_Discussed_Topics#Context_menus_are_not_enough The settings page is missing the "Configure" button for the entries in the information panel, which can only be found in the context menu. This is because I thought it would be weird to move it to the settings page. (The "configure" button is used to select the entries for the information panel) BUG: 480243 FIXED-IN: 24.05
2024-03-13Animate most of the barsFelix Ernst
When a bar is toggled visible this usually happens because the user might want to use its functionality now. However, if bars appear without animation or at a location the user is not currently looking at, they might not notice that they have appeared at all. An animation makes it more likely that the user notices the change and can then use the newly made visible component. Another reason for animations for showing or hiding of components is that it can be disorienting for users when panels or bars suddenly appear or disappear without animation. There is no visible movement then, so the user might not know what happened if they didn't concentrate or blink at that moment. The newly appearing or disappearing component might also displace other components which can make it difficult to find what one was just looking at. These bars animate now after this change: - Search panel - Filter bar - Status bar This is implemented by extracting the animation code from SelectionMode::TopBar into a new abstract base class AnimatedHeightWidget. This class is now also used in SelectionMode::BottomBar and the animating code there was removed. These bars are left in Dolphin that stay without animation: - Menu bar (Would probably need to be implemented in KXmlGui) - Tool bar (Would probably need to be implemented in KXmlGui) - Tab bar (Needs a different appraoch because it already inherits QTabBar and therefore can not inherit AnimatedHeightWidget)
2024-03-07Add option to completely disable directory size countingNico Kreipke
Dolphin shows the size of directories by listing their contents, which for some users might cause unwanted load on the file system. Depending on the size of the subdirectories in question and how the storage is accessed, this might cause noticeable delays and even freezing. This commit adds a new option under "View -> Content Display" that enables users to set "Folder size:" to "No size", completely disabling directory size counting. Directory size counting is still enabled by default. As a third option for "Folder size" is added, the DirectorySizeCount boolean setting is replaced with a DirectorySizeMode enum setting. The old setting is migrated using a kconf_update script. FEATURE: 477187 GUI:
2024-02-02Fix flatpakCarl Schwan
Update with the state of the manifest on github and install icons at the correct location
2023-11-30Fix building with activities after the kactivities -> plasma-activities renameAntonio Rojas
2023-11-23Port to KF6 rename of KUserFeedbackJonathan Esk-Riddell
2023-11-21views: Use scene devicePixelRatio rather than qAppKai Uwe Broulik
When possible, use the devicePixelRatio from the scene which on Wayland unlike the QApplication will properly support fractional scaling. A KItemViewsUtils class is introduced that can be reused elsewhere.
2023-11-08Port away from KMoreToolsNicolas Fella
The idea behind KMoreTools was to point the user at external tools for a given job. It provides a rather complex framework for that, including suggesting not-yet-installed tools. The UX behind that isn't great though, which somewhat deep menu hierarchies and a somewhat arbitrary list of tools. Most KDE apps have moved away from it, with only Dolphin remaining. Instead provide direct integration with relevant KDE tools (Filelight, KDiskFree, KFind)
2023-11-08Master is qt6 only. Not necessary to use ${QT_MAJOR_VERSION} now.Laurent Montel
Remove qt5 specific cmake code too
2023-10-07Adapt to new KBookmarksWidgets libraryNicolas Fella
2023-08-23Merge branch 'master' into kf6Méven Car
2023-08-23Re-Allow to set settings in Settings-> View-> General pageMéven Car
Regressed in 489b56b68bb29e81337e115c490eea4403001b71 Simplify implementation by sharing making class ViewSettingsPage implement SettingsPageBase sharing implementation with other tabs in viewsettingspage
2023-08-18Dolphin settings revampDimosthenis Krallis
It includes a move of the settings in the Navigation and Startup sections to the Interface (formerly Behavior) section. It also includes a new tab in the View (formerly View Mode) section, called General where some settings regarding Display style, Browsing and Miscellaneous settings The Interface section has new tabs named Folders & Tabs and Status & Location bars respectively where most of the Startup and Navigation settings moved. The `dolphin/kcms/kcm_dolphinnavigation` kcm is removed.
2023-08-11Fix musl build by using fts_* from external libraryBart Ribbers
musl does not support fts. There is however a standalone package that can be used, but it must be linked against. This commit adds a check that makes sure to link to the external library if it is required.
2023-07-09Replace ServiceItemDelegate with standard Qt item delegateNicolas Fella
We don't need a custom delegate here Using the standard one from Qt also slightly improves margins
2023-06-28Merge branch 'master' into kf6Méven Car
2023-06-13Settings Add ViewModes > Content displayMéven Car
This does not move the settings location in files though. baby step for https://invent.kde.org/system/dolphin/-/issues/36
2023-05-09Fix dolphinvcs_export.h export pathMéven Car
2023-05-09Ensure good export of dolphinvcs headersMéven Car
2023-05-08Revert "partially Improve kuserfeedback import"Méven Car
This reverts commit 047bf33d9050b89243479adb22aaa354b10878a4.
2023-05-08Improve kuserfeedback importMéven Car
2023-05-07Port to Qt6Méven Car
2023-03-04Use separate KMoreTools libraryAlexander Lohnau
2023-03-04Remove deprecated ConfigurePreviewPluginDialogDāvis Mosāns