| Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
(cherry picked from commit 4713c6bf91e825bac4965a34d3b79c4401b23ce9)
|
|
|
|
|
|
|
|
|
|
|
|
Viewmode text is rather long, so we should hide it by default. Setting
the priority to low seems to fix that.
BUG: 501498
|
|
|
|
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.
|
|
|
|
It's supposed to be consistent and always last.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
BUG: 501435
|
|
|
|
Co-authored-by: Felix Ernst <[email protected]>
|
|
will not be there if we have no dbus enabled for kio
|
|
|
|
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.
BUG: 500502
|
|
|
|
|
|
This allows to keep the original pixmap in m_pixmap when resizing so it can have nice rendering when being resized and simplifies implementation
|
|
|
|
|
|
|
|
|
|
During splitview animations the parentWidget()->width could be lower
than scrollbarWidth. If it goes to negatives it causes a lot of
warnings.
Make sure to bound the value between 0 and parentWidget()->width() so
that it can't go into negatives.
|
|
This is the icon that Konsole uses, and it communicates the point better
than the current one.
Related to #68
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
This consists in replacing the use of KIconUtils::addOverlay to custom
adapted function, based on KIconLoader::global()->drawOverlays previous
behavior.
BUG: 500428
|
|
|
|
|
|
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.
BUG:500101
|
|
|
|
(cherry picked from commit b16c9f666929d381f4f9d80befa3bc9bd3f14751)
|
|
If selectionMode was running, statusbar would get hidden behind the
selectionmode bottom bar.
Instead of calculating offsets, just check for the view geometry bottom position and use that for the statusbar yPos.
|
|
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.
BUG:500009
|
|
|
|
Small statusbar should not have zoom slider enabled, but this
could be bypassed by using the context menu.
If we have small statusbar, just return early instead.
|
|
|