HaikuDepot: Resurrect Options menu...
And move the (new) checkmarks into the Options menu. This makes them less easy to discover, but cleans up the UI, especially since the options to show development and source code packages are not very important for most users.
This commit is contained in:
parent
e0a26dce59
commit
fdec4227f5
|
@ -9,7 +9,6 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#include <Catalog.h>
|
||||
#include <CheckBox.h>
|
||||
#include <LayoutBuilder.h>
|
||||
#include <MenuField.h>
|
||||
#include <MenuItem.h>
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <GroupView.h>
|
||||
|
||||
|
||||
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
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue