diff --git a/src/apps/haikudepot/ui/FilterView.cpp b/src/apps/haikudepot/ui/FilterView.cpp index 11c2c1bb41..c4e976329e 100644 --- a/src/apps/haikudepot/ui/FilterView.cpp +++ b/src/apps/haikudepot/ui/FilterView.cpp @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -38,17 +37,6 @@ add_categories_to_menu(const CategoryList& categories, BMenu* menu) } -static BCheckBox* -create_check_box(const char* label, const char* name) -{ - BMessage* message = new BMessage(MSG_FILTER_SELECTED); - message->AddString("name", name); - BCheckBox* checkBox = new BCheckBox(label, message); - set_small_font(checkBox); - return checkBox; -} - - FilterView::FilterView() : BGroupView("filter view", B_VERTICAL) @@ -78,16 +66,6 @@ FilterView::FilterView() float maxSearchWidth = minSearchWidth * 2; fSearchTermsText->SetExplicitMaxSize(BSize(maxSearchWidth, B_SIZE_UNSET)); - // Construct check boxen - fAvailableCheckBox = create_check_box( - B_TRANSLATE("Available"), "available"); - fInstalledCheckBox = create_check_box( - B_TRANSLATE("Installed"), "installed"); - fDevelopmentCheckBox = create_check_box( - B_TRANSLATE("Development"), "development"); - fSourceCodeCheckBox = create_check_box( - B_TRANSLATE("Source code"), "source code"); - // Build layout BLayoutBuilder::Group<>(this) .AddGroup(B_HORIZONTAL) @@ -99,13 +77,6 @@ FilterView::FilterView() .AddGlue(0.5f) .Add(fSearchTermsText, 1.0f) .End() - .AddGroup(B_HORIZONTAL) - .Add(fAvailableCheckBox) - .Add(fInstalledCheckBox) - .Add(fDevelopmentCheckBox) - .Add(fSourceCodeCheckBox) - .AddGlue() - .End() .SetInsets(B_USE_DEFAULT_SPACING) ; @@ -125,11 +96,6 @@ FilterView::AttachedToWindow() fSearchTermsText->SetTarget(this); fSearchTermsText->MakeFocus(); - - fAvailableCheckBox->SetTarget(Window()); - fInstalledCheckBox->SetTarget(Window()); - fDevelopmentCheckBox->SetTarget(Window()); - fSourceCodeCheckBox->SetTarget(Window()); } @@ -184,17 +150,5 @@ FilterView::AdoptModel(const Model& model) add_categories_to_menu(model.Categories(), showMenu); showMenu->ItemAt(0)->SetMarked(true); - - AdoptCheckmarks(model); -} - - -void -FilterView::AdoptCheckmarks(const Model& model) -{ - fAvailableCheckBox->SetValue(model.ShowAvailablePackages()); - fInstalledCheckBox->SetValue(model.ShowInstalledPackages()); - fDevelopmentCheckBox->SetValue(model.ShowDevelopPackages()); - fSourceCodeCheckBox->SetValue(model.ShowSourcePackages()); } diff --git a/src/apps/haikudepot/ui/FilterView.h b/src/apps/haikudepot/ui/FilterView.h index 056d889b55..4e444d6b4a 100644 --- a/src/apps/haikudepot/ui/FilterView.h +++ b/src/apps/haikudepot/ui/FilterView.h @@ -8,7 +8,6 @@ #include -class BCheckBox; class BMenuField; class BTextControl; class Model; @@ -16,7 +15,6 @@ class Model; enum { MSG_CATEGORY_SELECTED = 'ctsl', - MSG_FILTER_SELECTED = 'ftsl', MSG_DEPOT_SELECTED = 'dpsl', MSG_SEARCH_TERMS_MODIFIED = 'stmd', }; @@ -31,17 +29,11 @@ public: virtual void MessageReceived(BMessage* message); void AdoptModel(const Model& model); - void AdoptCheckmarks(const Model& model); private: BMenuField* fShowField; BMenuField* fRepositoryField; BTextControl* fSearchTermsText; - - BCheckBox* fAvailableCheckBox; - BCheckBox* fInstalledCheckBox; - BCheckBox* fDevelopmentCheckBox; - BCheckBox* fSourceCodeCheckBox; }; #endif // FILTER_VIEW_H diff --git a/src/apps/haikudepot/ui/MainWindow.cpp b/src/apps/haikudepot/ui/MainWindow.cpp index e1dddea2e7..71a33f5950 100644 --- a/src/apps/haikudepot/ui/MainWindow.cpp +++ b/src/apps/haikudepot/ui/MainWindow.cpp @@ -60,6 +60,9 @@ enum { MSG_LOG_OUT = 'lgot', MSG_AUTHORIZATION_CHANGED = 'athc', MSG_PACKAGE_STATE_CHANGED = 'mpsc', + + MSG_SHOW_AVAILABLE_PACKAGES = 'savl', + MSG_SHOW_INSTALLED_PACKAGES = 'sins', MSG_SHOW_SOURCE_PACKAGES = 'ssrc', MSG_SHOW_DEVELOP_PACKAGES = 'sdvl' }; @@ -289,6 +292,24 @@ MainWindow::MessageReceived(BMessage* message) _UpdateAuthorization(); break; + case MSG_SHOW_AVAILABLE_PACKAGES: + { + BAutolock locker(fModel.Lock()); + fModel.SetShowAvailablePackages( + !fModel.ShowAvailablePackages()); + } + _AdoptModel(); + break; + + case MSG_SHOW_INSTALLED_PACKAGES: + { + BAutolock locker(fModel.Lock()); + fModel.SetShowInstalledPackages( + !fModel.ShowInstalledPackages()); + } + _AdoptModel(); + break; + case MSG_SHOW_SOURCE_PACKAGES: { BAutolock locker(fModel.Lock()); @@ -337,36 +358,6 @@ MainWindow::MessageReceived(BMessage* message) break; } - case MSG_FILTER_SELECTED: - { - BString name; - int32 value; - if (message->FindString("name", &name) != B_OK - || message->FindInt32("be:value", &value) != B_OK) { - break; - } - { - BAutolock locker(fModel.Lock()); - if (name == "available") { - fModel.SetShowAvailablePackages( - value == B_CONTROL_ON); - } else if (name == "installed") { - fModel.SetShowInstalledPackages( - value == B_CONTROL_ON); - } else if (name == "development") { - fModel.SetShowDevelopPackages( - value == B_CONTROL_ON); - } else if (name == "source code") { - fModel.SetShowSourcePackages( - value == B_CONTROL_ON); - } else { - break; - } - } - _AdoptModel(); - break; - } - case MSG_DEPOT_SELECTED: { BString name; @@ -481,18 +472,31 @@ MainWindow::_BuildMenu(BMenuBar* menuBar) menuBar->AddItem(menu); -// menu = new BMenu(B_TRANSLATE("Options")); -// -// fShowDevelopPackagesItem = new BMenuItem( -// B_TRANSLATE("Show develop packages"), -// new BMessage(MSG_SHOW_DEVELOP_PACKAGES)); -// menu->AddItem(fShowDevelopPackagesItem); -// -// fShowSourcePackagesItem = new BMenuItem(B_TRANSLATE("Show source packages"), -// new BMessage(MSG_SHOW_SOURCE_PACKAGES)); -// menu->AddItem(fShowSourcePackagesItem); -// -// menuBar->AddItem(menu); + menu = new BMenu(B_TRANSLATE("Options")); + + fShowAvailablePackagesItem = new BMenuItem( + B_TRANSLATE("Show available packages"), + new BMessage(MSG_SHOW_AVAILABLE_PACKAGES)); + menu->AddItem(fShowAvailablePackagesItem); + + fShowInstalledPackagesItem = new BMenuItem( + B_TRANSLATE("Show installed packages"), + new BMessage(MSG_SHOW_INSTALLED_PACKAGES)); + menu->AddItem(fShowInstalledPackagesItem); + + menu->AddSeparatorItem(); + + fShowDevelopPackagesItem = new BMenuItem( + B_TRANSLATE("Show develop packages"), + new BMessage(MSG_SHOW_DEVELOP_PACKAGES)); + menu->AddItem(fShowDevelopPackagesItem); + + fShowSourcePackagesItem = new BMenuItem( + B_TRANSLATE("Show source packages"), + new BMessage(MSG_SHOW_SOURCE_PACKAGES)); + menu->AddItem(fShowSourcePackagesItem); + + menuBar->AddItem(menu); } @@ -546,9 +550,10 @@ MainWindow::_AdoptModel() } BAutolock locker(fModel.Lock()); -// fShowSourcePackagesItem->SetMarked(fModel.ShowSourcePackages()); -// fShowDevelopPackagesItem->SetMarked(fModel.ShowDevelopPackages()); - fFilterView->AdoptCheckmarks(fModel); + fShowAvailablePackagesItem->SetMarked(fModel.ShowAvailablePackages()); + fShowInstalledPackagesItem->SetMarked(fModel.ShowInstalledPackages()); + fShowSourcePackagesItem->SetMarked(fModel.ShowSourcePackages()); + fShowDevelopPackagesItem->SetMarked(fModel.ShowDevelopPackages()); }