┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/search
AgeCommit message (Collapse)Author
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-02-21Fix a crash in DolphinSearchBox::hideEvent()Vlad Zahorodnii
BUG: 481553
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-10-24Merge branch 'master' into kf6Nicolas Fella
2023-10-12DolphinView: get rid of writeStateChanged signal in setActive()Amol Godbole
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
2023-09-10Merge remote-tracking branch 'origin/master' into kf6Méven Car
2023-09-10Replace qAsConst with std::as_constMéven Car
2023-09-04Restore the URL when DolphinSearchBox is clearedAmol Godbole
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
2023-08-29Fix a bunch of clazy warningsMéven Car
2023-07-05Add explicit moc includes to sources for moc-covered headersFriedrich W. H. Kossebau
* 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
2023-06-29Use ellipsis everywhere instead of three dotsTem PQD
Better for screen readers etc.
2023-03-04search: Prevent the search box from enlarging the viewIsmael Asensio
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
2023-02-05Add clang-format and format code as in FrameworksSerg Podtynnyi
2022-09-26Remove unused includesLaurent Montel
2022-06-15Cleanup config-dolphin.h includesAhmad Samir
2022-06-15Use cmakedefine01Ahmad Samir
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.
2022-06-15Use one config-dolphin.h.cmake configuration fileAhmad Samir
2022-05-13Drop KNS3 prefix for KMoreTools includesAlexander Lohnau
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.
2022-05-06SearchBox: Add topMargin to balance the spacingIsmael Asensio
2022-01-09Port back to KFilePlacesViewKai Uwe Broulik
This removes the custom-view engine version of the places panel and replaces it with the upstream `KFilePlacesView` from KIO.
2021-12-13Drop now unneeded QOverload statementsAlexander Lohnau
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.
2021-05-13Merge branch 'release/21.04'Ismael Asensio
2021-05-10search/facetswidget: Check for protocol before trying to fetch tagsIsmael Asensio
This was causing an error when trying to list items from the non-existent `tags:` protocol. BUG: 435586 FIXED-IN: 21.04.1
2021-05-03search: Add action to clear tag selectionIsmael Asensio
BUG: 432719
2021-02-09Build with QT_NO_KEYWORDSNicolas Fella
2020-12-03DolphinView: set the parent of layout in the ctorAhmad Samir
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.
2020-10-23Compile with QT_NO_KEYWORDSAlexander Lohnau
2020-10-23Compile without foreachAlexander Lohnau
2020-08-25Output of licensedigger + manual cleanup afterwards.Elvis Angelaccio
Unfortunately licensedigger does not strip the trailing * characters. While at it, use a common style for all source files.
2020-08-04Merge branch 'release/20.08'Ismael Asensio
2020-08-04[search] Close tags menu after click when there is only one tagIsmael Asensio
It stays open otherwise to allow checking/unchecking several tags at a time BUG: 424873 FIXED-IN: 20.08
2020-07-11Add support to tags: scheme in DolphinQueryIsmael Asensio
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)
2020-07-05[search] Fix corner cases when using quotes in filenamesIsmael Asensio
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\"\"" ```
2020-07-05[search] Do not update text input when it has focusIsmael Asensio
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
2020-06-22Expand DolphinQuery to support different Url schemesIsmael Asensio
2020-05-18Move search and filter bar close buttons to the rightNate Graham
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
2020-05-03filenamesearch:/ define a title for the queryMéven Car
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
2020-04-27prevent a QFileInfo warningRené Bertin
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
2020-04-18Move from the searchbox to the results with the down arrow keyShlomi Fish
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
2020-01-19(search) Fix searching tags with spacesIsmael Asensio
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
2020-01-06(search) Keep menu open when selecting tagsIsmael Asensio
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
2019-12-29Clean-up DolphinFacetsWidgetIsmael Asensio
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
2019-12-26Rename methods on DolphinFacetsWidgetIsmael Asensio
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
2019-12-21fix(search): Correctly parse filename and/or content searchIsmael Asensio
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
2019-12-15[dolphin/search] Search by (multiple) tagsIsmael Asensio
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
2019-12-09Fix build with Qt 5.14 RCAntonio Rojas
Add needed Qt includes that are no longer pulled transitively. BUG: 414492 Differential Revision: https://phabricator.kde.org/D25783
2019-11-28fix(search): Fix baloo searchString parsingIsmael Asensio
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
2019-11-13fix(search): Allow to set empty typeIsmael Asensio
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
2019-11-13DolphinQuery: drop DOLPHIN_EXPORTElvis Angelaccio
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.
2019-11-13refactor(search): De-couple baloo URL parsing logic from UIIsmael Asensio
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