This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
[PATCH setup 09/10] Add an additional filter view, showing packages which were user picked
- From: Jon Turney <jon dot turney at dronecode dot org dot uk>
- To: cygwin-apps at cygwin dot com
- Cc: Jon Turney <jon dot turney at dronecode dot org dot uk>
- Date: Tue, 2 Aug 2016 16:30:36 +0100
- Subject: [PATCH setup 09/10] Add an additional filter view, showing packages which were user picked
- Authentication-results: sourceware.org; auth=none
- References: <20160802153037.125216-1-jon.turney@dronecode.org.uk>
Add an additional filter view, showing installed packages which were
selected for installation by the user, not installed as dependencies.
Future work:
Why is PickView::views is not an enum?
The view button would make more sense as a pop-up menu, allowing a specific
filter view to be directly selected, rather than cycling around the possible
filter views (and this situation is made worse by adding another filter
view)
---
PickView.cc | 16 ++++++++++++----
PickView.h | 4 ++--
res.rc | 5 ++++-
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/PickView.cc b/PickView.cc
index 4630ee9..c784a2a 100644
--- a/PickView.cc
+++ b/PickView.cc
@@ -57,8 +57,9 @@ const PickView::views PickView::views::Unknown (0);
const PickView::views PickView::views::PackageFull (1);
const PickView::views PickView::views::Package (2);
const PickView::views PickView::views::PackageKeeps (3);
-const PickView::views PickView::views::PackageSkips = PickView::views (4);
-const PickView::views PickView::views::Category (5);
+const PickView::views PickView::views::PackageSkips (4);
+const PickView::views PickView::views::PackageUserPicked (5);
+const PickView::views PickView::views::Category (6);
ATOM PickView::WindowClassAtom = 0;
@@ -92,7 +93,8 @@ PickView::set_header_column_order (views vm)
if (vm == views::Unknown)
return -1;
else if (vm == views::PackageFull || vm == views::Package
- || vm == views::PackageKeeps || vm == views::PackageSkips)
+ || vm == views::PackageKeeps || vm == views::PackageSkips
+ || vm == views::PackageUserPicked)
{
headers = pkg_headers;
current_col = 0;
@@ -197,7 +199,11 @@ PickView::setViewMode (views mode)
// "Not installed"
|| (view_mode == PickView::views::PackageSkips &&
- (!pkg.desired && !pkg.installed)))
+ (!pkg.desired && !pkg.installed))
+
+ // "UserPick" : installed packages that were picked by user
+ || (view_mode == PickView::views::PackageUserPicked &&
+ (pkg.installed && pkg.user_picked)))
{
// Filter by package name
if (packageFilterString.empty ()
@@ -246,6 +252,8 @@ PickView::views::caption ()
case 4:
return "Not Installed";
case 5:
+ return "Picked";
+ case 6:
return "Category";
default:
return "";
diff --git a/PickView.h b/PickView.h
index 0ce7581..fd20dc9 100644
--- a/PickView.h
+++ b/PickView.h
@@ -104,15 +104,15 @@ public:
static const views Package;
static const views PackageKeeps;
static const views PackageSkips;
+ static const views PackageUserPicked;
static const views Category;
- static const views NView;
views ():_value (0)
{
};
views (int aInt)
{
_value = aInt;
- if (_value < 0 || _value > 5)
+ if (_value < 0 || _value > 6)
_value = 0;
}
views & operator++ ();
diff --git a/res.rc b/res.rc
index f1cf406..de75da8 100644
--- a/res.rc
+++ b/res.rc
@@ -551,7 +551,10 @@ BEGIN
"are at the desired version already.\r\n"
"\r\n"
"Not installed: Show packages that are are not currently installed "
- "and haven't been selected for installation."
+ "and haven't been selected for installation.\r\n"
+ "\r\n"
+ "Picked: Show installed packages that were selected, not installed "
+ "as a dependency."
IDS_HIDEOBS_TOOLTIP "If selected, setup will hide packages in categories "
"with names that begin with '_'. Such packages are usually empty "
"placeholders for packages that have been removed or renamed, or are "
--
2.8.3