| Age | Commit message (Collapse) | Author |
|
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)
|
|
BUG: 481553
|
|
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)
|
|
|
|
The signal writeStateChanged() was not working because it is not connected
to slotWriteStateChanged() slots when the active view changes. Replace the
signal with direct calls to the slots.
Also, do not delay openRequest signal in DolphinSearchBox::slotSearchTextChanged.
It's no longer required.
BUG: 440366
|
|
|
|
|
|
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
|
|
|
|
* speeds up incremental builds as changes to a header will not always
need the full mocs_compilation.cpp for all the target's headers rebuild,
while having a moc file sourced into a source file only adds minor
extra costs, due to small own code and the used headers usually
already covered by the source file, being for the same class/struct
* seems to not slow down clean builds, due to empty mocs_compilation.cpp
resulting in those quickly processed, while the minor extra cost of the
sourced moc files does not outweigh that in summary.
Measured times actually improved by some percent points.
(ideally CMake would just skip empty mocs_compilation.cpp & its object
file one day)
* enables compiler to see all methods of a class in same compilation unit
to do some sanity checks
* potentially more inlining in general, due to more in the compilation unit
* allows to keep using more forward declarations in the header, as with the
moc code being sourced into the cpp file there definitions can be ensured
and often are already for the needs of the normal class methods
|
|
Better for screen readers etc.
|
|
By default, the search filters widget calculates its
`minimumSizeHint` as the sum of its components' minimum widths.
This minimum width hint will scale up the widgets hierarchy,
finally imposing a minimum width to the contents view, which
in certain conditions can take the space from the side panels.
Let's set a minimum width hint of 0, so it is the filters widget
which always adapts to the available view size instead.
BUG: 466796
FIXED-IN: 23.04
|
|
|
|
|
|
|
|
This way we get a build time warning if the var isn't defined at all, e.g.
a missing check_include_files() CMake call.
|
|
|
|
In KF6 KMoreTools should become it's own library and thus the KNS3 prefix should get removed.
Considering that the classes are not in any namespace, having a namespaced include is not needed and only causes noise.
|
|
|
|
This removes the custom-view engine version of the places panel
and replaces it with the upstream `KFilePlacesView` from KIO.
|
|
By defining the KF_DISABLE_DEPRECATED_BEFORE_AND_AT and QT_DISABLE_DEPRECATED_BEFOREvalues,
the deprecated overloads are hidden. This way we only have the un-deprecated one visible.
|
|
|
|
This was causing an error when trying to list items from the
non-existent `tags:` protocol.
BUG: 435586
FIXED-IN: 21.04.1
|
|
BUG: 432719
|
|
|
|
This silences a runtime warning:
QLayout: Attempting to add QLayout "" to DolphinView "", which already
has a layout
Remove redudant setLayout() calls, passing a parent widget to the
Q*BoxLayout ctor sets that layout as the top-level layout for that widget.
|
|
|
|
|
|
Unfortunately licensedigger does not strip the trailing * characters.
While at it, use a common style for all source files.
|
|
|
|
It stays open otherwise to allow checking/unchecking several tags at a time
BUG: 424873
FIXED-IN: 20.08
|
|
It allows to start a search from a `tags:/mytag/` view.
The use case is to refine a search on additional terms (another tags,
ratings, etc)
|
|
The `filename` term in a search query is enclosed into quotes.
As the user can have additional quotes in the search term, there were several
corner cases where the parsing would fail to correctly split the terms
New test cases have been added to cover this possibility
Previous tests still passes to avoid regressions
BEFORE:
```
(filename/quoted) Compared values are not the same
Actual (query.text()): "xyz\"\""
Expected (expectedText): "\"abc xyz\""
(filename/mixed) Compared values are not the same
Actual (query.text()): "xyz\" tuv\""
Expected (expectedText): "\"abc xyz\" tuv"
(content+filename/quoted) Compared values are not the same
Actual (query.text()): "abc xyz xyz\"\""
Expected (expectedText): "abc xyz filename:\"\"abc xyz\"\""
```
|
|
When the user is entering a search term, a delayed search will be
emmited after a few seconds. This means updating the search URL, which
in turn gets parsed and reflected back on the search input.
To avoid interrupting the user input flow and unexpectedly move the
cursor to the end, let's update the input search box only when it
doesn't have the focus.
It's still updated on other interactions such as changing the search
options or clicking a saved search on the places panel.
BUG: 423328
FIXED-IN: 20.08
|
|
|
|
Summary:
Close buttons for windows, tabs, and pretty much everything else in KDE are on the right,
not the left. This patch makes Dolphin's search and filter bars follow that.
BUG: 421372
FIXED-IN: 20.08.0
Test Plan: {F8314176}
Reviewers: abetts, #dolphin, #vdg, elvisangelaccio, GB_2
Reviewed By: #dolphin, #vdg, elvisangelaccio, GB_2
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D29693
|
|
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
|
|
DolphinSearchBox::init() can generate a terminal warning depending on
the user's search history:
QFileInfo::absolutePath: Constructed with empty filename
The warning can seem to appear randomly if you don't use the search
feature often, because of its dependency on previous search activity.
Prevent this warning by adding a simple check if the current
m_searchPath is valid or not. This check has no effect on the value
returned by DolphinSearchBox::isIndexingEnabled() and is in line with
the fact that m_searchPath == QUrl() indicates that no search path has
been set.
Differential Revision: https://phabricator.kde.org/D29194
|
|
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
|
|
Summary:
Tags containing blank spaces were not handled properly in the search widget.
Now we enclose them in quotes and strip the quotes before setting them to the widget.
{F7854247}
Test Plan:
No artifacts when searching tags containing spaces
Added test cases to `bin/dolphinquerytest`
Reviewers: #dolphin, elvisangelaccio, ngraham, meven
Reviewed By: #dolphin, elvisangelaccio, ngraham
Subscribers: meven, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26369
|
|
Summary:
Keeps the `Tags` menu open while selecting and deselecting tags in the
search panel, saving many mouse clicks for multiple tags.
It cannot be done natively on `QMenu` (https://bugreports.qt.io/browse/QTBUG-6635)
but it is a one-liner and I haven't seen any bad behavior so far.
Test Plan:
{F7853717}
- `Tags` menu does not close when selecting/deselecting tags
- Tag search is consistent
- Clicking anywhere else will close the menu
Reviewers: #dolphin, elvisangelaccio, ngraham, #vdg
Reviewed By: #dolphin, elvisangelaccio, #vdg
Subscribers: #vdg, broulik, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26343
|
|
Summary:
Small refactor patch to clean-up some logic on setter and getter:
- Search terms are previously splitted and set separately, so no need
for extra splitting and `foreach` loop
- Return search terms on a `QStringList` rather than join first
Depends on: D26029
Test Plan: No behavior changes
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26150
|
|
Summary:
Small refactor patch to rename method names, from `ratingTerm` to `searchTerm`,
since its scope has grown bigger.
Test Plan: No behavior changes
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26029
|
|
Summary:
Currently, the search url parsing does not detect if the search is based on Content or Filename, and it just keeps the last selection which can be inconsistent with the actual search.
This patch add such detection, and since an advanced user can combine filename and content search (using the keyword `filename:`), now the parsing detects both items and handles the four possible cases:
| Content | Filename | Search text | Search type |
|---|---|------------------------|------------------|
| T | T | abc filename:"xyz" | Content |
| T | F | abc | Content |
| F | T | xyz | Filename |
| F | F | | do not set |
Depends on: D25260
Test Plan: `bin/dolphinquerytest`: Added new test cases for searches with content text and/or filename
Reviewers: elvisangelaccio, bruns, #dolphin
Reviewed By: elvisangelaccio, #dolphin
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D25416
|
|
Summary:
Adds a tag selector in the extended filters of the search box.
Selected tag or tags are added to the search query along with the other filters (type, date, rating).
FEATURE: 412564
CCBUG: 356062
Test Plan:
- Menu shows the user tags
- Picking any tag/s filters the search to that specific tag/s
{F7727909}
Reviewers: elvisangelaccio, ngraham, #dolphin, #vdg
Reviewed By: elvisangelaccio, ngraham, #dolphin, #vdg
Subscribers: kfm-devel
Tags: #dolphin
Maniphest Tasks: T9094
Differential Revision: https://phabricator.kde.org/D25130
|
|
Add needed Qt includes that are no longer pulled transitively.
BUG: 414492
Differential Revision: https://phabricator.kde.org/D25783
|
|
Summary:
Fix the parsing of Baloo query `searchString` to represent its parameters properly
in the search box:
# Baloo terms (`rating`, `modified`) are added to the user search text: {F7575590}
# Extra quotes are added to the search text: https://bugs.kde.org/show_bug.cgi?id=412952
This revision supersedes D24422, by making the fixes on the new dolphin query model,
instead of directly on the UI.
BUG: 412952
FIXED IN: 19.11.90
Test Plan:
- `bin/dolphinquerytest` passes without `XFAIL`s
- Dolphin search box is not garbled by search terms or quotes
Reviewers: elvisangelaccio, bruns, ngraham, #dolphin
Reviewed By: elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D25260
|
|
Summary:
This small patch allows to set and empty `type` to the extended options, which will set the `Any Type` option (index 0).
It doesn't make any change in current code, since this case is not called, but it helps simplifying follow-up patches.
Test Plan:
No behavior changes with current code.
Calling `setFacetsType(QString())` actually sets the first option (`Any Type`)
Reviewers: elvisangelaccio, #dolphin
Reviewed By: elvisangelaccio, #dolphin
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D25255
|
|
DOLPHIN_EXPORT is only used by classes in the `dolphinprivate` target,
while DolphinQuery is part of `dolphinstatic`.
This should fix the failing Windows build on the CI.
|
|
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
|