From 3ecd1d603fba012d38ed8a094bc27eee94613827 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 29 Jun 2021 13:22:35 +0200 Subject: [PATCH] Assistant: Add subtitle field to the Result class This allows providers to specify an appropriate subtitle instead of making that something the UI layer has to figure out. :^) --- Userland/Applications/Assistant/Providers.cpp | 2 +- Userland/Applications/Assistant/Providers.h | 15 ++++++++++----- Userland/Applications/Assistant/main.cpp | 5 +---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Userland/Applications/Assistant/Providers.cpp b/Userland/Applications/Assistant/Providers.cpp index 70bd9cd289..bb9312f56a 100644 --- a/Userland/Applications/Assistant/Providers.cpp +++ b/Userland/Applications/Assistant/Providers.cpp @@ -38,7 +38,7 @@ void AppProvider::query(String const& query, Functionexecutable()); - results.append(adopt_ref(*new AppResult(icon.bitmap_for_size(16), app_file->name(), app_file, match_result.score))); + results.append(adopt_ref(*new AppResult(icon.bitmap_for_size(16), app_file->name(), {}, app_file, match_result.score))); }); on_complete(results); diff --git a/Userland/Applications/Assistant/Providers.h b/Userland/Applications/Assistant/Providers.h index 42a0e1e5e3..89c2ae1357 100644 --- a/Userland/Applications/Assistant/Providers.h +++ b/Userland/Applications/Assistant/Providers.h @@ -28,17 +28,21 @@ public: RefPtr bitmap() { return m_bitmap; } String const& title() const { return m_title; } + String const& subtitle() const { return m_subtitle; } Kind kind() const { return m_kind; } int score() const { return m_score; } bool equals(Result const& other) const { - return title() == other.title() && kind() == other.kind(); + return kind() == other.kind() + && title() == other.title() + && subtitle() == other.subtitle(); } protected: - Result(RefPtr bitmap, String title, int score = 0, Kind kind = Kind::Unknown) + Result(RefPtr bitmap, String title, String subtitle, int score = 0, Kind kind = Kind::Unknown) : m_bitmap(move(bitmap)) , m_title(move(title)) + , m_subtitle(move(subtitle)) , m_score(score) , m_kind(kind) { @@ -47,14 +51,15 @@ protected: private: RefPtr m_bitmap; String m_title; + String m_subtitle; int m_score { 0 }; Kind m_kind; }; class AppResult : public Result { public: - AppResult(RefPtr bitmap, String title, NonnullRefPtr af, int score) - : Result(move(bitmap), move(title), score, Kind::App) + AppResult(RefPtr bitmap, String title, String subtitle, NonnullRefPtr af, int score) + : Result(move(bitmap), move(title), move(subtitle), score, Kind::App) , m_app_file(move(af)) { } @@ -68,7 +73,7 @@ private: class CalculatorResult : public Result { public: explicit CalculatorResult(String title) - : Result(GUI::Icon::default_icon("app-calculator").bitmap_for_size(16), move(title), 100, Kind::Calculator) + : Result(GUI::Icon::default_icon("app-calculator").bitmap_for_size(16), move(title), "'Enter' will copy to clipboard"sv, 100, Kind::Calculator) { } ~CalculatorResult() override = default; diff --git a/Userland/Applications/Assistant/main.cpp b/Userland/Applications/Assistant/main.cpp index a7cb5ebec0..d89b6c56a1 100644 --- a/Userland/Applications/Assistant/main.cpp +++ b/Userland/Applications/Assistant/main.cpp @@ -266,14 +266,11 @@ int main(int argc, char** argv) auto& match = results_container.add(); match.set_image(result->bitmap()); match.set_title(result->title()); + match.set_subtitle(result->subtitle()); match.on_selected = [result_copy = result]() { result_copy->activate(); exit(0); }; - - if (result->kind() == Assistant::Result::Kind::Calculator) { - match.set_subtitle("'Enter' will copy to clipboard"); - } } mark_selected_item();