1. 19 May, 2022 2 commits
  2. 16 May, 2022 1 commit
  3. 05 May, 2022 1 commit
  4. 24 Apr, 2022 4 commits
  5. 23 Mar, 2022 1 commit
  6. 12 Feb, 2022 1 commit
  7. 08 Feb, 2022 1 commit
    • Eduardo Cruz's avatar
      Avoid sorting old results based on new query input string · 58728acc
      Eduardo Cruz authored and Alexander Lohnau's avatar Alexander Lohnau committed
      `SortProxyModel` reorders the results provided by krunner. It uses the query input string to judge the associated results and sort them. It works great, however we have a little bug that causes a nonsensical list to be shown for the a few milliseconds right after we input a new query string.
      
      At the time `setQueryString()` is called, we still haven't received any matches result list from krunner for this new query. Milou still has the previous query's results, which are completely dissociated from the new query input.
      
      So at this point it was  doing its logic using the old results list from the previous input string, but evaluating them against the newly provided input string, which resulted in bogus behavior.
      
      This example might make it more clear:
      
      1 - We type string "fire" and wait for the query to finish and the final results are displayed. We get this result set:
      
      ![Screenshot_20211227_055336](/uploads/3a2711a4f873dd619ab7f0d34bc93135/Screenshot_20211227_055336.png)
      
      2- We type one more letter, "f", so now we have "firef" as input. `SortProxyModel::setQueryString()` would set "firef" as its new `m_words` and it would call its own `invalidate()`, however at this moment the results list for "firef" haven't been provided by krunner yet: Milou still has the results list for "fire", our previous query.
      
      So `SortProxyModel` is processing the results from "fire" using the string "firef" as criteria to judge its sorting, and this results in a quick exhibition of this bogus list to the user. 
      
      This is only shown for 250ms. It took some tries to take a screenshot of it, but here it is:
      
      ![Screenshot_20211227_055504](/uploads/de49b9e0ea584f9f90867cff9b1ca704/Screenshot_20211227_055504.png)
      
      As we can see, we have some bogus results like "Command line: run fire" and "System Settings: Firewall" that have no business being there for the input string "firef". They are there because they are still the results from the old "fire" query. Also the ordering is different from the first list since the proxy judged the relevancy in a different manner because it's evaluating that list against the string "firef" and not "fire".
      
      3 - 250ms later, krunner will have provided its results for "firef", and `SortProxyModel` gets in action again, now sanely sorting the "firef" result against its associated "firef" input string, and we get this final correct list:
      
      ![Screenshot_20211227_055527](/uploads/af0dce0e73aa62225e2bdc89eabb56ed/Screenshot_20211227_055527.png)
      
      So I fixed it by not calling `SortProxyModel::setQueryString()` anymore when we have a query string change. Now we call it whenever we have a matches result set change. So the `SortProxyModel` will maintain the old query string until we receive the first result set for the new query string. That method's inner logic will detect whenever a true query string change happened and will properly call `invalidate()` when necessary.
      
      With this patch applied, the bogus list in step 2 above will never be generated and it won't be shown to the user.
      
      CCBUG: 427672
      58728acc
  8. 06 Feb, 2022 1 commit
  9. 13 Jan, 2022 2 commits
  10. 04 Jan, 2022 1 commit
  11. 16 Dec, 2021 1 commit
  12. 29 Nov, 2021 2 commits
  13. 11 Oct, 2021 1 commit
  14. 06 Oct, 2021 1 commit
  15. 05 Oct, 2021 2 commits
  16. 16 Sep, 2021 2 commits
  17. 24 Aug, 2021 1 commit
  18. 16 Aug, 2021 2 commits
  19. 30 Jun, 2021 1 commit
  20. 10 Jun, 2021 1 commit
    • Nate Graham's avatar
      Fix error about "reversed" not being defined · 01f3b8b3
      Nate Graham authored
      Instead of assuming that the property is visible via the object
      hierarchy, it's best to explicitly pass it around as a property to
      ensure that it will always be available when queried for.
      01f3b8b3
  21. 02 Jun, 2021 1 commit
    • Nate Graham's avatar
      Make results delegate list items a bit taller with bigger icons · aef14f05
      Nate Graham authored
      We generally use the smallMedium (22px) icon size for
      small-ish-but-not-too-small icons as they have a better visual balance
      with adjacent text, compared to the small (16px) icon size. 22px icons
      also generally look better than 16px icons. Moving the results list
      items to use smallMedium icons offers a better visual balance, and
      adding a tiny of vertical padding  balances out everything a bit more
      to provide more "breathing room" between the rows.
      
      As a consequence, the maximum number of results visible at once has to
      decrease a bit, but this is generally not a major problem as the user
      can simply keep typing to refine their search to find what it is they're
      looking for.
      
      BUG: 422567
      FIXED-IN: 5.23
      aef14f05
  22. 19 May, 2021 1 commit
  23. 13 May, 2021 4 commits
  24. 07 May, 2021 1 commit
  25. 03 May, 2021 1 commit
  26. 26 Apr, 2021 1 commit
  27. 23 Apr, 2021 1 commit
  28. 08 Apr, 2021 1 commit