diff --git a/Userland/Services/Taskbar/QuickLaunchWidget.cpp b/Userland/Services/Taskbar/QuickLaunchWidget.cpp index fe6f473972..4860ae2875 100644 --- a/Userland/Services/Taskbar/QuickLaunchWidget.cpp +++ b/Userland/Services/Taskbar/QuickLaunchWidget.cpp @@ -315,8 +315,7 @@ ErrorOr QuickLaunchWidget::create_context_menu() m_context_menu = GUI::Menu::construct(); m_context_menu_default_action = GUI::Action::create("&Remove", icon, [this](auto&) { remove_entry(m_context_menu_app_name); - resize(); - update(); + repaint(); }); m_context_menu->add_action(*m_context_menu_default_action); @@ -333,7 +332,6 @@ void QuickLaunchWidget::load_entries(bool save) Vector config_entries; auto keys = Config::list_keys(CONFIG_DOMAIN, CONFIG_GROUP_ENTRIES); for (auto& name : keys) { - dbgln("loading key: {}", name); auto value = Config::read_string(CONFIG_DOMAIN, CONFIG_GROUP_ENTRIES, name); auto values = value.split(':'); @@ -353,6 +351,7 @@ void QuickLaunchWidget::load_entries(bool save) entries.append(entry.release_nonnull()); } + m_entries.clear(); add_entries(move(entries), save); } @@ -365,8 +364,7 @@ void QuickLaunchWidget::add_entries(Vector> entr Config::write_string(CONFIG_DOMAIN, CONFIG_GROUP_ENTRIES, sanitize_name(m_entries.last()->name()), entry_to_config_string(m_entries.size() - 1, m_entries.last())); } - resize(); - update(); + repaint(); } ErrorOr QuickLaunchWidget::update_entry(DeprecatedString const& button_name, NonnullOwnPtr entry, bool save) @@ -378,16 +376,14 @@ ErrorOr QuickLaunchWidget::update_entry(DeprecatedString const& button_nam m_watcher->on_change = [button_name, save, this](Core::FileWatcherEvent const&) { dbgln("Removing QuickLaunch entry \"{}\"", button_name); remove_entry(button_name, save); - resize(); - update(); + repaint(); }; } TRY(m_watcher->add_watch(file_name_to_watch, Core::FileWatcherEvent::Type::Deleted)); } set_or_insert_entry(move(entry), save); - resize(); - update(); + repaint(); return {}; } @@ -404,7 +400,13 @@ void QuickLaunchWidget::for_each_entry(Callback callback) void QuickLaunchWidget::resize() { - set_fixed_width(m_entries.size() * BUTTON_SIZE); + set_fixed_width(static_cast(m_entries.size()) * BUTTON_SIZE); +} + +void QuickLaunchWidget::repaint() +{ + resize(); + update(); } void QuickLaunchWidget::set_or_insert_entry(NonnullOwnPtr entry, bool save) diff --git a/Userland/Services/Taskbar/QuickLaunchWidget.h b/Userland/Services/Taskbar/QuickLaunchWidget.h index ed38b33fa1..6eda66c2dd 100644 --- a/Userland/Services/Taskbar/QuickLaunchWidget.h +++ b/Userland/Services/Taskbar/QuickLaunchWidget.h @@ -138,6 +138,8 @@ private: void resize(); + void repaint(); + void set_or_insert_entry(NonnullOwnPtr, bool save = true); void remove_entry(DeprecatedString const&, bool save = true); void recalculate_order();