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:
@@ -9,7 +9,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <Catalog.h>
|
#include <Catalog.h>
|
||||||
#include <CheckBox.h>
|
|
||||||
#include <LayoutBuilder.h>
|
#include <LayoutBuilder.h>
|
||||||
#include <MenuField.h>
|
#include <MenuField.h>
|
||||||
#include <MenuItem.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()
|
FilterView::FilterView()
|
||||||
:
|
:
|
||||||
BGroupView("filter view", B_VERTICAL)
|
BGroupView("filter view", B_VERTICAL)
|
||||||
@@ -78,16 +66,6 @@ FilterView::FilterView()
|
|||||||
float maxSearchWidth = minSearchWidth * 2;
|
float maxSearchWidth = minSearchWidth * 2;
|
||||||
fSearchTermsText->SetExplicitMaxSize(BSize(maxSearchWidth, B_SIZE_UNSET));
|
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
|
// Build layout
|
||||||
BLayoutBuilder::Group<>(this)
|
BLayoutBuilder::Group<>(this)
|
||||||
.AddGroup(B_HORIZONTAL)
|
.AddGroup(B_HORIZONTAL)
|
||||||
@@ -99,13 +77,6 @@ FilterView::FilterView()
|
|||||||
.AddGlue(0.5f)
|
.AddGlue(0.5f)
|
||||||
.Add(fSearchTermsText, 1.0f)
|
.Add(fSearchTermsText, 1.0f)
|
||||||
.End()
|
.End()
|
||||||
.AddGroup(B_HORIZONTAL)
|
|
||||||
.Add(fAvailableCheckBox)
|
|
||||||
.Add(fInstalledCheckBox)
|
|
||||||
.Add(fDevelopmentCheckBox)
|
|
||||||
.Add(fSourceCodeCheckBox)
|
|
||||||
.AddGlue()
|
|
||||||
.End()
|
|
||||||
|
|
||||||
.SetInsets(B_USE_DEFAULT_SPACING)
|
.SetInsets(B_USE_DEFAULT_SPACING)
|
||||||
;
|
;
|
||||||
@@ -125,11 +96,6 @@ FilterView::AttachedToWindow()
|
|||||||
fSearchTermsText->SetTarget(this);
|
fSearchTermsText->SetTarget(this);
|
||||||
|
|
||||||
fSearchTermsText->MakeFocus();
|
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);
|
add_categories_to_menu(model.Categories(), showMenu);
|
||||||
|
|
||||||
showMenu->ItemAt(0)->SetMarked(true);
|
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>
|
#include <GroupView.h>
|
||||||
|
|
||||||
|
|
||||||
class BCheckBox;
|
|
||||||
class BMenuField;
|
class BMenuField;
|
||||||
class BTextControl;
|
class BTextControl;
|
||||||
class Model;
|
class Model;
|
||||||
@@ -16,7 +15,6 @@ class Model;
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
MSG_CATEGORY_SELECTED = 'ctsl',
|
MSG_CATEGORY_SELECTED = 'ctsl',
|
||||||
MSG_FILTER_SELECTED = 'ftsl',
|
|
||||||
MSG_DEPOT_SELECTED = 'dpsl',
|
MSG_DEPOT_SELECTED = 'dpsl',
|
||||||
MSG_SEARCH_TERMS_MODIFIED = 'stmd',
|
MSG_SEARCH_TERMS_MODIFIED = 'stmd',
|
||||||
};
|
};
|
||||||
@@ -31,17 +29,11 @@ public:
|
|||||||
virtual void MessageReceived(BMessage* message);
|
virtual void MessageReceived(BMessage* message);
|
||||||
|
|
||||||
void AdoptModel(const Model& model);
|
void AdoptModel(const Model& model);
|
||||||
void AdoptCheckmarks(const Model& model);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BMenuField* fShowField;
|
BMenuField* fShowField;
|
||||||
BMenuField* fRepositoryField;
|
BMenuField* fRepositoryField;
|
||||||
BTextControl* fSearchTermsText;
|
BTextControl* fSearchTermsText;
|
||||||
|
|
||||||
BCheckBox* fAvailableCheckBox;
|
|
||||||
BCheckBox* fInstalledCheckBox;
|
|
||||||
BCheckBox* fDevelopmentCheckBox;
|
|
||||||
BCheckBox* fSourceCodeCheckBox;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FILTER_VIEW_H
|
#endif // FILTER_VIEW_H
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ enum {
|
|||||||
MSG_LOG_OUT = 'lgot',
|
MSG_LOG_OUT = 'lgot',
|
||||||
MSG_AUTHORIZATION_CHANGED = 'athc',
|
MSG_AUTHORIZATION_CHANGED = 'athc',
|
||||||
MSG_PACKAGE_STATE_CHANGED = 'mpsc',
|
MSG_PACKAGE_STATE_CHANGED = 'mpsc',
|
||||||
|
|
||||||
|
MSG_SHOW_AVAILABLE_PACKAGES = 'savl',
|
||||||
|
MSG_SHOW_INSTALLED_PACKAGES = 'sins',
|
||||||
MSG_SHOW_SOURCE_PACKAGES = 'ssrc',
|
MSG_SHOW_SOURCE_PACKAGES = 'ssrc',
|
||||||
MSG_SHOW_DEVELOP_PACKAGES = 'sdvl'
|
MSG_SHOW_DEVELOP_PACKAGES = 'sdvl'
|
||||||
};
|
};
|
||||||
@@ -289,6 +292,24 @@ MainWindow::MessageReceived(BMessage* message)
|
|||||||
_UpdateAuthorization();
|
_UpdateAuthorization();
|
||||||
break;
|
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:
|
case MSG_SHOW_SOURCE_PACKAGES:
|
||||||
{
|
{
|
||||||
BAutolock locker(fModel.Lock());
|
BAutolock locker(fModel.Lock());
|
||||||
@@ -337,36 +358,6 @@ MainWindow::MessageReceived(BMessage* message)
|
|||||||
break;
|
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:
|
case MSG_DEPOT_SELECTED:
|
||||||
{
|
{
|
||||||
BString name;
|
BString name;
|
||||||
@@ -481,18 +472,31 @@ MainWindow::_BuildMenu(BMenuBar* menuBar)
|
|||||||
|
|
||||||
menuBar->AddItem(menu);
|
menuBar->AddItem(menu);
|
||||||
|
|
||||||
// menu = new BMenu(B_TRANSLATE("Options"));
|
menu = new BMenu(B_TRANSLATE("Options"));
|
||||||
//
|
|
||||||
// fShowDevelopPackagesItem = new BMenuItem(
|
fShowAvailablePackagesItem = new BMenuItem(
|
||||||
// B_TRANSLATE("Show develop packages"),
|
B_TRANSLATE("Show available packages"),
|
||||||
// new BMessage(MSG_SHOW_DEVELOP_PACKAGES));
|
new BMessage(MSG_SHOW_AVAILABLE_PACKAGES));
|
||||||
// menu->AddItem(fShowDevelopPackagesItem);
|
menu->AddItem(fShowAvailablePackagesItem);
|
||||||
//
|
|
||||||
// fShowSourcePackagesItem = new BMenuItem(B_TRANSLATE("Show source packages"),
|
fShowInstalledPackagesItem = new BMenuItem(
|
||||||
// new BMessage(MSG_SHOW_SOURCE_PACKAGES));
|
B_TRANSLATE("Show installed packages"),
|
||||||
// menu->AddItem(fShowSourcePackagesItem);
|
new BMessage(MSG_SHOW_INSTALLED_PACKAGES));
|
||||||
//
|
menu->AddItem(fShowInstalledPackagesItem);
|
||||||
// menuBar->AddItem(menu);
|
|
||||||
|
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());
|
BAutolock locker(fModel.Lock());
|
||||||
// fShowSourcePackagesItem->SetMarked(fModel.ShowSourcePackages());
|
fShowAvailablePackagesItem->SetMarked(fModel.ShowAvailablePackages());
|
||||||
// fShowDevelopPackagesItem->SetMarked(fModel.ShowDevelopPackages());
|
fShowInstalledPackagesItem->SetMarked(fModel.ShowInstalledPackages());
|
||||||
fFilterView->AdoptCheckmarks(fModel);
|
fShowSourcePackagesItem->SetMarked(fModel.ShowSourcePackages());
|
||||||
|
fShowDevelopPackagesItem->SetMarked(fModel.ShowDevelopPackages());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user