From acf93d2a6f2a05db2c9b064015182d1ef5647ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Sun, 19 Nov 2017 22:12:01 +0200 Subject: [PATCH] UI|Resources: Repository category toggles --- .../src/ui/dialogs/repositorybrowserdialog.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/doomsday/apps/client/src/ui/dialogs/repositorybrowserdialog.cpp b/doomsday/apps/client/src/ui/dialogs/repositorybrowserdialog.cpp index dcc774b33a..f7aaa35020 100644 --- a/doomsday/apps/client/src/ui/dialogs/repositorybrowserdialog.cpp +++ b/doomsday/apps/client/src/ui/dialogs/repositorybrowserdialog.cpp @@ -31,11 +31,13 @@ #include #include #include +#include #include using namespace de; static String const VAR_RESOURCE_BROWSER_REPOSITORY("resource.browserRepository"); +static String const ALL_CATEGORIES(QObject::tr("All Categories")); DENG_GUI_PIMPL(RepositoryBrowserDialog) , DENG2_OBSERVES(filesys::RemoteFeedRelay, Status) @@ -117,6 +119,7 @@ DENG_GUI_PIMPL(RepositoryBrowserDialog) nameList->organizer().setWidgetFactory(*this); nameList->enableScrolling(true); nameList->enablePageKeys(true); + nameList->enableIndicatorDraw(true); nameList->setGridSize(1, ui::Filled, 0, ui::Fixed); nameList->layout().setRowPadding(Const(0)); nameList->setBehavior(ChildVisibilityClipping); @@ -187,7 +190,17 @@ DENG_GUI_PIMPL(RepositoryBrowserDialog) { if (parent == category) { - return new ButtonWidget; + auto *toggle = new ToggleWidget(ToggleWidget::WithoutIndicator); + QObject::connect(toggle, &ToggleWidget::stateChanged, + [toggle, &item] (ToggleWidget::ToggleState state) + { + toggle->setColorTheme(state == ToggleWidget::Active? Inverted : Normal); + }); + if (item.label() == ALL_CATEGORIES) + { + toggle->setToggleState(ToggleWidget::Active); + } + return toggle; } return new HomeItemWidget(HomeItemWidget::NonAnimatedHeight | HomeItemWidget::WithoutIcon); @@ -317,7 +330,7 @@ DENG_GUI_PIMPL(RepositoryBrowserDialog) nameList->setItems(*shownData); categoryData.clear(); - categoryData.append(new ui::Item(ui::Item::ShownAsButton, tr("All Categories"))); + categoryData.append(new ui::Item(ui::Item::ShownAsButton, ALL_CATEGORIES)); StringList tags = link().categoryTags(); qSort(tags); foreach (String category, tags)