Felix Ernst [Sat, 19 Apr 2025 10:57:36 +0000 (12:57 +0200)]
CI: Remove linux-qt6 build
This commit follows the recommendation of our system administrator
Ben Cooksley to remove the linux-qt6 build from the CI for projects
which already have linux-qt6-next and FreeBSD or Windows builds
which also use qt6 (non-next).
See https://mail.kde.org/pipermail/kde-devel/2025-April/003464.html
Felix Ernst [Sat, 19 Apr 2025 12:32:25 +0000 (14:32 +0200)]
Add Filelight menu to Tools menu
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.
intended as a fix for icon themes with different `org.kde.dolphin` and
`system-file-manager` icons
https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/issues/3663#issuecomment-2798459480
Also noticed that it should also actually make the upcoming
dolphin on the icon change apply in places where setting the icon is
respected (title bar).
Nate Graham [Tue, 15 Apr 2025 15:31:39 +0000 (09:31 -0600)]
Update kconf update script version to 6
This allows it to run for people upgrading from an ancient version
straight to the current one, and also prevents an error message about
this from appearing in the journal log.
Felix Ernst [Tue, 15 Apr 2025 21:06:26 +0000 (23:06 +0200)]
Fix session restore
Since https://commits.kde.org/kxmlgui/8c9fb02a1d37672b26a03a9dd9e8675743deb269
KXmlGui only triggers a session restore for a window when the
session config contains a "NumberOfWindows" key with a value >= 1.
This commit adds such a key to the Dolphin session config, which
fixes the Dolphin main window restore for KXmlGui versions
containing that commit.
Jin Liu [Thu, 10 Apr 2025 04:30:29 +0000 (12:30 +0800)]
Add a new "view_settings" action
This should replace the "View Mode" button in the toolbar by default. Its
dropdown menu contains more actions related to the view: zoom, sort by,
show additional columns, show hidden files, grouping, show file previews.
The original "view_mode" action is kept so the "Change View Mode" submenu
in the main menu (or in the hamburger menu when this button is invisible)
is unchanged.
Felix Ernst [Mon, 7 Apr 2025 21:09:00 +0000 (21:09 +0000)]
Rewrite search integration
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
Nate Graham [Thu, 27 Mar 2025 19:29:26 +0000 (13:29 -0600)]
Move "Show in Groups" toggle action into Sort menu
This is the sort of thing a user might want to toggle temporarily, as
sometimes grouping is a helpful visualization and sometimes not.
Right now, doing that is easy when using the in-window menubar or the
global menu: View > Show in Groups. However when using the default
hamburger menu, it becomes difficult: Burger menu > More > View >
Show in Groups. It's four levels of nesting and requires precision.
This change addresses that by moving the action into the "Sort By"
menu. This improves discoverability for people using the default UI,
and makes the location of the action consistent for people using all UI
styles. It also gets the item into the view context menu, where it
currently isn't, providing another entry point for it.
Shitong Xu [Sun, 23 Mar 2025 15:02:24 +0000 (15:02 +0000)]
KFileItemListWidget: wrong selection when renamed file ends with a dot
When a file name ends with a dot, it should be treated like there is no
extension. When triggering a rename, the file name except the
extension should be selected, which is equal to the full file name when
the file ends with a dot.
Angus McLean [Mon, 17 Mar 2025 08:14:55 +0000 (08:14 +0000)]
contextmenu: Use default terminal's icons for "Open Terminal" and "Open Terminal Here" actions
The "Open Terminal" and "Open Terminal Here" actions now use the icon of the user default terminal emulator application, instead of always using the "utilities-terminal" icon.
Akseli Lahtinen [Thu, 13 Mar 2025 12:26:40 +0000 (12:26 +0000)]
KFileItemModelRolesUpdater: reset size and count before updating folders
Folder count would not update properly when user would delete file from
a folder, or add a new file to it.
Previously when size value is set to -2 after update, the update will
never be called again unless user presses F5. This change will instead
reset that -2 to 0 whenever we are requesting for calculating
directory sizes.
We never updated the count when a file was deleted, so that has been added as well.
This change also calculates the item counts from the processedAmount, which is the total amount of items we're processing. From there we remove the unwanted items and get the final count.
For remote files, we set the count to -1 since we don't calculate them.
Akseli Lahtinen [Mon, 3 Mar 2025 09:59:23 +0000 (11:59 +0200)]
DolphinNavigatorsWidgetAction: add margins to splitview navbar splitter
The splitter is rather cramped next to the navigation bars with the new
KIO navbar look. This adds slight padding to its sides, making it look
more relaxed and easier to grasp that user can move this.
Wang Yu [Mon, 3 Mar 2025 02:34:10 +0000 (10:34 +0800)]
placespanel: Use correct loop index when connecting device signals
The loop in slotRowsInserted was using the 'first' parameter instead
of the loop variable 'i', causing only the first index to be connected
multiple times.
Méven Car [Sun, 23 Feb 2025 13:04:12 +0000 (14:04 +0100)]
kstandarditemlistwidget: make overlay icons independant of preview size
This consists in replacing the use of KIconUtils::addOverlay to custom
adapted function, based on KIconLoader::global()->drawOverlays previous
behavior.
Akseli Lahtinen [Fri, 28 Feb 2025 17:43:20 +0000 (17:43 +0000)]
Fix crash when opening new tab with search
When new tab is opened and it has a search started,
it tries to set the location URL to a navigator that
is not yet necessarily assigned in memory: This is because the new tab is not active.
The locationUrl will be changed properly when tab is activated.
Akseli Lahtinen [Thu, 27 Feb 2025 10:07:33 +0000 (12:07 +0200)]
dolphinview: Add widget parameter to elided QToolTip::showText
Without this parameter the QToolTip can not always determine what
is the parent, so it will create a toplevel window in those cases.
Make sure we have dolphinview itself as a widget there, so QToolTip
and thus QtWayland can resolve what is the parent. This
avoids creating random windows when opening a tooltip.
Akseli Lahtinen [Mon, 24 Feb 2025 18:39:22 +0000 (18:39 +0000)]
Add smaller statusbar and set it as default
- 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
Yifan Zhu [Thu, 20 Feb 2025 18:35:06 +0000 (10:35 -0800)]
kitemlistkeyboardsearchmanager: smarter search start position
Search from the next position for new search and special repeated key search.
Otherwise search from the current position, which is current selected item if
something is selected or in selection mode, and 0 (the beginning) otherwise.
Test plan:
- create directory with files ab1, ab2, and ab3
- click ab2, and press escape to deselect
- type ab; verify that ab1 is selected
- wait a while, type ab again, verify that ab2 is selected
- wait a while, type ab again, verify that ab3 is selected
- click ab1, type ab, verify that ab2 is selected
Added an dolphin overlay on top of the folder icon. The intention is to add subtle branding and personality to icon while leaving the overall shape and design untouched.