HaikuDepot: Hide *_source and *_devel packages by default
* Renamed "Package" main menu to "Tools" * Added "Option" menu, containing the two options to show *_devel and *_source packages, defaulting to off.
This commit is contained in:
@@ -53,7 +53,9 @@
|
||||
enum {
|
||||
MSG_MODEL_WORKER_DONE = 'mmwd',
|
||||
MSG_REFRESH_DEPOTS = 'mrdp',
|
||||
MSG_PACKAGE_STATE_CHANGED = 'mpsc'
|
||||
MSG_PACKAGE_STATE_CHANGED = 'mpsc',
|
||||
MSG_SHOW_SOURCE_PACKAGES = 'ssrc',
|
||||
MSG_SHOW_DEVELOP_PACKAGES = 'sdvl'
|
||||
};
|
||||
|
||||
|
||||
@@ -117,6 +119,12 @@ MainWindow::MainWindow(BRect frame, const BMessage& settings)
|
||||
if (settings.FindMessage("column settings", &columnSettings) == B_OK)
|
||||
fPackageListView->LoadState(&columnSettings);
|
||||
|
||||
bool showOption;
|
||||
if (settings.FindBool("show develop packages", &showOption) == B_OK)
|
||||
fModel.SetShowDevelopPackages(showOption);
|
||||
if (settings.FindBool("show source packages", &showOption) == B_OK)
|
||||
fModel.SetShowSourcePackages(showOption);
|
||||
|
||||
_StartRefreshWorker();
|
||||
|
||||
fPendingActionsSem = create_sem(0, "PendingPackageActions");
|
||||
@@ -175,10 +183,25 @@ MainWindow::MessageReceived(BMessage* message)
|
||||
break;
|
||||
|
||||
case MSG_REFRESH_DEPOTS:
|
||||
{
|
||||
_StartRefreshWorker(true);
|
||||
break;
|
||||
}
|
||||
|
||||
case MSG_SHOW_SOURCE_PACKAGES:
|
||||
{
|
||||
BAutolock _(fModel.Lock());
|
||||
fModel.SetShowSourcePackages(!fModel.ShowSourcePackages());
|
||||
}
|
||||
_AdoptModel();
|
||||
break;
|
||||
|
||||
case MSG_SHOW_DEVELOP_PACKAGES:
|
||||
{
|
||||
BAutolock _(fModel.Lock());
|
||||
fModel.SetShowDevelopPackages(!fModel.ShowDevelopPackages());
|
||||
}
|
||||
_AdoptModel();
|
||||
break;
|
||||
|
||||
case MSG_PACKAGE_SELECTED:
|
||||
{
|
||||
BString title;
|
||||
@@ -254,6 +277,9 @@ MainWindow::StoreSettings(BMessage& settings) const
|
||||
fPackageListView->SaveState(&columnSettings);
|
||||
|
||||
settings.AddMessage("column settings", &columnSettings);
|
||||
|
||||
settings.AddBool("show develop packages", fModel.ShowDevelopPackages());
|
||||
settings.AddBool("show source packages", fModel.ShowSourcePackages());
|
||||
}
|
||||
|
||||
|
||||
@@ -295,11 +321,24 @@ MainWindow::GetModel()
|
||||
void
|
||||
MainWindow::_BuildMenu(BMenuBar* menuBar)
|
||||
{
|
||||
BMenu* menu = new BMenu(B_TRANSLATE("Package"));
|
||||
BMenu* menu = new BMenu(B_TRANSLATE("Tools"));
|
||||
menu->AddItem(new BMenuItem(B_TRANSLATE("Refresh depots"),
|
||||
new BMessage(MSG_REFRESH_DEPOTS)));
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -313,6 +352,10 @@ MainWindow::_AdoptModel()
|
||||
BAutolock _(fModel.Lock());
|
||||
fPackageListView->AddPackage(fVisiblePackages.ItemAtFast(i));
|
||||
}
|
||||
|
||||
BAutolock _(fModel.Lock());
|
||||
fShowSourcePackagesItem->SetMarked(fModel.ShowSourcePackages());
|
||||
fShowDevelopPackagesItem->SetMarked(fModel.ShowDevelopPackages());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -75,6 +75,8 @@ private:
|
||||
PackageListView* fPackageListView;
|
||||
PackageInfoView* fPackageInfoView;
|
||||
BSplitView* fSplitView;
|
||||
BMenuItem* fShowDevelopPackagesItem;
|
||||
BMenuItem* fShowSourcePackagesItem;
|
||||
|
||||
Model fModel;
|
||||
PackageList fVisiblePackages;
|
||||
|
||||
@@ -179,6 +179,22 @@ private:
|
||||
};
|
||||
|
||||
|
||||
static inline bool
|
||||
is_source_package(const PackageInfoRef& package)
|
||||
{
|
||||
const BString& packageName = package->Title();
|
||||
return packageName.EndsWith("_source");
|
||||
}
|
||||
|
||||
|
||||
static inline bool
|
||||
is_develop_package(const PackageInfoRef& package)
|
||||
{
|
||||
const BString& packageName = package->Title();
|
||||
return packageName.EndsWith("_devel");
|
||||
}
|
||||
|
||||
|
||||
// #pragma mark - Model
|
||||
|
||||
|
||||
@@ -210,7 +226,10 @@ Model::Model()
|
||||
|
||||
fCategoryFilter(PackageFilterRef(new AnyFilter(), true)),
|
||||
fDepotFilter(""),
|
||||
fSearchTermsFilter(PackageFilterRef(new AnyFilter(), true))
|
||||
fSearchTermsFilter(PackageFilterRef(new AnyFilter(), true)),
|
||||
|
||||
fShowSourcePackages(false),
|
||||
fShowDevelopPackages(false)
|
||||
{
|
||||
// Don't forget to add new categories to this list:
|
||||
fCategories.Add(fCategoryAudio);
|
||||
@@ -270,7 +289,9 @@ Model::CreatePackageList() const
|
||||
for (int32 j = 0; j < packages.CountItems(); j++) {
|
||||
const PackageInfoRef& package = packages.ItemAtFast(j);
|
||||
if (fCategoryFilter->AcceptsPackage(package)
|
||||
&& fSearchTermsFilter->AcceptsPackage(package)) {
|
||||
&& fSearchTermsFilter->AcceptsPackage(package)
|
||||
&& (fShowSourcePackages || !is_source_package(package))
|
||||
&& (fShowDevelopPackages || !is_develop_package(package))) {
|
||||
resultList.Add(package);
|
||||
}
|
||||
}
|
||||
@@ -377,6 +398,21 @@ Model::SetSearchTerms(const BString& searchTerms)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Model::SetShowSourcePackages(bool show)
|
||||
{
|
||||
fShowSourcePackages = show;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Model::SetShowDevelopPackages(bool show)
|
||||
{
|
||||
fShowDevelopPackages = show;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// #pragma mark - information retrival
|
||||
|
||||
|
||||
|
||||
@@ -68,6 +68,12 @@ public:
|
||||
void SetCategory(const BString& category);
|
||||
void SetDepot(const BString& depot);
|
||||
void SetSearchTerms(const BString& searchTerms);
|
||||
void SetShowSourcePackages(bool show);
|
||||
bool ShowSourcePackages() const
|
||||
{ return fShowSourcePackages; }
|
||||
void SetShowDevelopPackages(bool show);
|
||||
bool ShowDevelopPackages() const
|
||||
{ return fShowDevelopPackages; }
|
||||
|
||||
// Retrieve package information
|
||||
void PopulatePackage(const PackageInfoRef& package);
|
||||
@@ -100,6 +106,9 @@ private:
|
||||
PackageFilterRef fCategoryFilter;
|
||||
BString fDepotFilter;
|
||||
PackageFilterRef fSearchTermsFilter;
|
||||
|
||||
bool fShowSourcePackages;
|
||||
bool fShowDevelopPackages;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user