This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH setup 09/10] Add an additional filter view, showing packages which were user picked


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]