<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/src/search/dolphinsearchbox.h, branch master</title>
<subtitle>Patched KDE Dolphin with Pixel Scaling
</subtitle>
<id>https://fiftyfourth.xyz/git/dolphin/atom?h=master</id>
<link rel='self' href='https://fiftyfourth.xyz/git/dolphin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/'/>
<updated>2025-04-07T21:09:00Z</updated>
<entry>
<title>Rewrite search integration</title>
<updated>2025-04-07T21:09:00Z</updated>
<author>
<name>Felix Ernst</name>
<email>felixernst@kde.org</email>
</author>
<published>2025-04-07T21:09:00Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=4102ccb80457eea44ea280f0ace2a419602bc34b'/>
<id>urn:sha1:4102ccb80457eea44ea280f0ace2a419602bc34b</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Animate most of the bars</title>
<updated>2024-03-13T15:39:00Z</updated>
<author>
<name>Felix Ernst</name>
<email>felixernst@kde.org</email>
</author>
<published>2024-03-13T15:39:00Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=f588a7d48b7cef5351d8b0f030a6ec5e76229976'/>
<id>urn:sha1:f588a7d48b7cef5351d8b0f030a6ec5e76229976</id>
<content type='text'>
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)
</content>
</entry>
<entry>
<title>Port away from KMoreTools</title>
<updated>2023-11-08T13:36:51Z</updated>
<author>
<name>Nicolas Fella</name>
<email>nicolas.fella@gmx.de</email>
</author>
<published>2023-11-07T14:45:01Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=2cd3d58eec5695899c26ca66a631fb79867b6584'/>
<id>urn:sha1:2cd3d58eec5695899c26ca66a631fb79867b6584</id>
<content type='text'>
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)
</content>
</entry>
<entry>
<title>Restore the URL when DolphinSearchBox is cleared</title>
<updated>2023-09-04T07:39:13Z</updated>
<author>
<name>Amol Godbole</name>
<email>amolagodbole@gmail.com</email>
</author>
<published>2023-09-04T07:39:13Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=c4bb3db0229bef8adee1daa183892cebba5efe72'/>
<id>urn:sha1:c4bb3db0229bef8adee1daa183892cebba5efe72</id>
<content type='text'>
Currently, the URL navigator is not updated when the search box is cleared. This MR restores the URL, by closing and reopening the box.

The call for emitting closeRequest() on pressing Esc has been replaced with emitCloseRequest(). The wait duration before starting a search has been reduced to 500ms to increase responsiveness.

Also, the bugfix for BUG: 423328 is slightly incorrect and causes the search term to not be displayed when opening a saved search for the first time. As a better solution for this bug, DolphinSearchBox::setText() now updates the text only if the text has changed.

BUG: 473775
</content>
</entry>
<entry>
<title>Add clang-format and format code as in Frameworks</title>
<updated>2023-02-05T05:45:38Z</updated>
<author>
<name>Serg Podtynnyi</name>
<email>serg@podtynnyi.com</email>
</author>
<published>2023-02-03T17:14:53Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=38c34eeca315c7be58e65d4d3fb72aaf7b866719'/>
<id>urn:sha1:38c34eeca315c7be58e65d4d3fb72aaf7b866719</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Build with QT_NO_KEYWORDS</title>
<updated>2021-02-09T20:39:50Z</updated>
<author>
<name>Nicolas Fella</name>
<email>nicolas.fella@gmx.de</email>
</author>
<published>2021-02-08T22:09:59Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=f65b0899c3666561cafac14f67ab0bb8a5bfa00a'/>
<id>urn:sha1:f65b0899c3666561cafac14f67ab0bb8a5bfa00a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Output of licensedigger + manual cleanup afterwards.</title>
<updated>2020-08-25T17:07:38Z</updated>
<author>
<name>Elvis Angelaccio</name>
<email>elvis.angelaccio@kde.org</email>
</author>
<published>2020-08-25T17:07:38Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=954e8c47906c12edaaf6e6aebdd41516eceb0d44'/>
<id>urn:sha1:954e8c47906c12edaaf6e6aebdd41516eceb0d44</id>
<content type='text'>
Unfortunately licensedigger does not strip the trailing * characters.
While at it, use a common style for all source files.
</content>
</entry>
<entry>
<title>filenamesearch:/ define a title for the query</title>
<updated>2020-05-03T10:46:00Z</updated>
<author>
<name>Méven Car</name>
<email>meven29@gmail.com</email>
</author>
<published>2020-05-03T10:45:54Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=e076d8668f673e09ddd01b3367e413a494d6d2bb'/>
<id>urn:sha1:e076d8668f673e09ddd01b3367e413a494d6d2bb</id>
<content type='text'>
Summary: CCBUG: 420354

Reviewers: ngraham, elvisangelaccio, #dolphin, #frameworks, iasensio

Reviewed By: elvisangelaccio, #dolphin, iasensio

Subscribers: iasensio, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D29198
</content>
</entry>
<entry>
<title>Move from the searchbox to the results with the down arrow key</title>
<updated>2020-04-18T16:37:01Z</updated>
<author>
<name>Shlomi Fish</name>
<email>shlomif@shlomifish.org</email>
</author>
<published>2020-04-18T16:30:02Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=196f4553e68a89d0162685f2df9a32a58e3ff479'/>
<id>urn:sha1:196f4553e68a89d0162685f2df9a32a58e3ff479</id>
<content type='text'>
Summary:
Move from the searchbox to the search results listbox/view using the
down arrow key in addition to the existing methods using the tab key,
return key, or the mouse.

Test Plan:
use ctrl+f to search in a directory tree, press down arrow key
to go to the results

Reviewers: ngraham, #dolphin

Reviewed By: ngraham, #dolphin

Subscribers: meven, elvisangelaccio, ngraham, iasensio, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D26362
</content>
</entry>
<entry>
<title>refactor(search): De-couple baloo URL parsing logic from UI</title>
<updated>2019-11-13T21:21:07Z</updated>
<author>
<name>Ismael Asensio</name>
<email>isma.af@gmail.com</email>
</author>
<published>2019-11-13T21:16:35Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=8d92c8be7f117dee18710ee1ba6b7cfa45d3f5f0'/>
<id>urn:sha1:8d92c8be7f117dee18710ee1ba6b7cfa45d3f5f0</id>
<content type='text'>
Summary:
Extracts the logic that parses `baloosearch:` urls into a new model class. The parser logic itself is kept as is.
The search box UI is later updated using the model fields.

This refactor has been proposed by @bruns in the review of D24422, as it largely simplifies the unit tests and further expansion/improvements.

Test Plan:
No behavior changes.
Test case is added in the follow-up revision: D25258

Reviewers: #dolphin, elvisangelaccio, bruns

Reviewed By: #dolphin, elvisangelaccio, bruns

Subscribers: ngraham, bruns, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D25257
</content>
</entry>
</feed>
