[haiku-commits] haiku: hrev50134 - in src/apps: packageinstaller installedpackages

  • From: waddlesplash@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 7 Mar 2016 21:20:13 +0100 (CET)

hrev50134 adds 2 changesets to branch 'master'
old head: f2df0cfe93a902842f6f4629ff614f5b3f9bf687
new head: d3626243b02c6f1033ef005c3ac77aa30d1cb136
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=d3626243b02c+%5Ef2df0cfe93a9

----------------------------------------------------------------------------

eaf0a567c505: PackageInstaller: Merge "InstalledPackages" and 
"PackageInstaller".
  
  Now if you start LegacyPackageInstaller with no filenames passed, you get
  the "installed packages" window, from which you can uninstall stuff.
  
  Fixes #10612.

d3626243b02c: PackageInstaller: Fix layout in UninstallView, use BLayoutBuilder.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

12 files changed, 108 insertions(+), 138 deletions(-)
src/apps/Jamfile                                 |  1 -
src/apps/installedpackages/Jamfile               | 24 --------
src/apps/installedpackages/main.cpp              | 60 ------------------
src/apps/packageinstaller/Jamfile                |  4 ++
src/apps/packageinstaller/PackageWindow.cpp      |  1 +
src/apps/packageinstaller/PackageWindow.h        |  4 +-
.../UninstallView.cpp                            | 65 +++++++++++++-------
.../UninstallView.h                              |  6 +-
.../UninstallWindow.cpp                          | 10 ++-
.../UninstallWindow.h                            |  1 +
src/apps/packageinstaller/main.cpp               | 34 +++-------
src/apps/packageinstaller/main.h                 | 36 +++++++++++

############################################################################

Commit:      eaf0a567c505aba31863365fbfa0cf4fe4c18e77
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eaf0a567c505
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Mar  7 20:08:58 2016 UTC

Ticket:      https://dev.haiku-os.org/ticket/10612

PackageInstaller: Merge "InstalledPackages" and "PackageInstaller".

Now if you start LegacyPackageInstaller with no filenames passed, you get
the "installed packages" window, from which you can uninstall stuff.

Fixes #10612.

----------------------------------------------------------------------------

diff --git a/src/apps/Jamfile b/src/apps/Jamfile
index e9366de..6ea32f4 100644
--- a/src/apps/Jamfile
+++ b/src/apps/Jamfile
@@ -25,7 +25,6 @@ HaikuSubInclude gradients ;
 HaikuSubInclude haiku3d ;
 HaikuSubInclude haikudepot ;
 HaikuSubInclude icon-o-matic ;
-HaikuSubInclude installedpackages ;
 HaikuSubInclude installer ;
 HaikuSubInclude launchbox ;
 HaikuSubInclude login ;
diff --git a/src/apps/installedpackages/Jamfile 
b/src/apps/installedpackages/Jamfile
deleted file mode 100644
index 10c1bfb..0000000
--- a/src/apps/installedpackages/Jamfile
+++ /dev/null
@@ -1,24 +0,0 @@
-SubDir HAIKU_TOP src apps installedpackages ;
-
-UsePrivateHeaders shared interface ;
-SubDirHdrs $(HAIKU_TOP) src apps packageinstaller ;
-
-SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits interface ] ;
-SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src apps packageinstaller ] ;
-
-Application InstalledPackages :
-       InstalledPackageInfo.cpp
-       main.cpp
-       UninstallWindow.cpp
-       UninstallView.cpp
-       : be tracker translation [ TargetLibsupc++ ] localestub
-;
-
-DoCatalogs InstalledPackages :
-       x-vnd.Haiku-InstalledPackages
-       :
-       main.cpp
-       UninstallView.cpp
-       UninstallWindow.cpp
-;
-
diff --git a/src/apps/installedpackages/main.cpp 
b/src/apps/installedpackages/main.cpp
deleted file mode 100644
index e1c851f..0000000
--- a/src/apps/installedpackages/main.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2007-2010, Haiku, Inc.
- * Distributed under the terms of the MIT license.
- *
- * Author:
- *             Łukasz 'Sil2100' Zemczak <sil2100@xxxxxxxxxxxxx>
- */
-
-
-#include "UninstallWindow.h"
-
-#include <Alert.h>
-#include <Application.h>
-#include <Autolock.h>
-#include <Catalog.h>
-#include <Entry.h>
-#include <Locale.h>
-#include <List.h>
-#include <TextView.h>
-
-#include <stdio.h>
-
-
-#undef B_TRANSLATION_CONTEXT
-#define B_TRANSLATION_CONTEXT "UninstallApplication"
-
-
-class UninstallApplication : public BApplication {
-public:
-       UninstallApplication();
-       ~UninstallApplication();
-
-private:
-       UninstallWindow*        fWindow;
-};
-
-
-UninstallApplication::UninstallApplication()
-       :
-       BApplication("application/x-vnd.Haiku-InstalledPackages"),
-       fWindow(NULL)
-{
-       fWindow = new UninstallWindow();
-       fWindow->Show();
-}
-
-
-UninstallApplication::~UninstallApplication()
-{
-}
-
-
-int
-main()
-{
-       UninstallApplication app;
-       app.Run();
-       return 0;
-}
-
diff --git a/src/apps/packageinstaller/Jamfile 
b/src/apps/packageinstaller/Jamfile
index 97e5427..e5410d6 100644
--- a/src/apps/packageinstaller/Jamfile
+++ b/src/apps/packageinstaller/Jamfile
@@ -20,6 +20,8 @@ Application LegacyPackageInstaller :
        PackageTextViewer.cpp
        PackageImageViewer.cpp
        InstalledPackageInfo.cpp
+       UninstallWindow.cpp
+       UninstallView.cpp
        : be localestub tracker translation
                [ BuildFeatureAttribute zlib : library ]
                [ TargetLibsupc++ ]
@@ -38,4 +40,6 @@ DoCatalogs LegacyPackageInstaller :
        PackageTextViewer.cpp
        PackageView.cpp
        PackageWindow.cpp
+       UninstallWindow.cpp
+       UninstallView.cpp
 ;
diff --git a/src/apps/packageinstaller/PackageWindow.cpp 
b/src/apps/packageinstaller/PackageWindow.cpp
index 4fa7b49..f73f8780 100644
--- a/src/apps/packageinstaller/PackageWindow.cpp
+++ b/src/apps/packageinstaller/PackageWindow.cpp
@@ -15,6 +15,7 @@
 #include <LayoutBuilder.h>
 
 #include "PackageView.h"
+#include "main.h"
 
 
 #undef B_TRANSLATION_CONTEXT
diff --git a/src/apps/packageinstaller/PackageWindow.h 
b/src/apps/packageinstaller/PackageWindow.h
index 6d6a3bd..fa94854 100644
--- a/src/apps/packageinstaller/PackageWindow.h
+++ b/src/apps/packageinstaller/PackageWindow.h
@@ -14,14 +14,12 @@
 
 struct entry_ref;
 
-const uint32 P_WINDOW_QUIT             =       'PiWq';
-
 
 class PackageWindow : public BWindow {
 public:
                                                                
PackageWindow(const entry_ref* ref);
        virtual                                         ~PackageWindow();
-               
+
        virtual void                            Quit();
 };
 
diff --git a/src/apps/installedpackages/UninstallView.cpp 
b/src/apps/packageinstaller/UninstallView.cpp
similarity index 92%
rename from src/apps/installedpackages/UninstallView.cpp
rename to src/apps/packageinstaller/UninstallView.cpp
index a6c6e6d..3b00f0bef 100644
--- a/src/apps/installedpackages/UninstallView.cpp
+++ b/src/apps/packageinstaller/UninstallView.cpp
@@ -20,6 +20,7 @@
 #include <Directory.h>
 #include <Entry.h>
 #include <File.h>
+#include <FilePanel.h>
 #include <FindDirectory.h>
 #include <GroupLayout.h>
 #include <GroupLayoutBuilder.h>
@@ -33,12 +34,15 @@
 #include <SpaceLayoutItem.h>
 #include <TextView.h>
 
+#include "main.h"
+
 
 #undef B_TRANSLATION_CONTEXT
 #define B_TRANSLATION_CONTEXT "UninstallView"
 
 
 enum {
+       P_MSG_INSTALL = 'umin',
        P_MSG_REMOVE = 'umrm',
        P_MSG_SELECT
 };
@@ -80,7 +84,8 @@ private:
 
 UninstallView::UninstallView()
        :
-       BGroupView(B_VERTICAL)
+       BGroupView(B_VERTICAL),
+       fOpenPanel(new BFilePanel(B_OPEN_PANEL))
 {
        fNoPackageSelectedString = B_TRANSLATE("No package selected.");
        _InitView();
@@ -98,7 +103,8 @@ void
 UninstallView::AttachedToWindow()
 {
        fAppList->SetTarget(this);
-       fButton->SetTarget(this);
+       fInstallButton->SetTarget(this);
+       fRemoveButton->SetTarget(this);
 
        _ReloadAppList();
 
@@ -205,7 +211,7 @@ UninstallView::MessageReceived(BMessage* msg)
                }
                case P_MSG_SELECT:
                {
-                       fButton->SetEnabled(false);
+                       fRemoveButton->SetEnabled(false);
                        fDescription->SetText(fNoPackageSelectedString);
 
                        int32 index = fAppList->CurrentSelection();
@@ -225,10 +231,15 @@ UninstallView::MessageReceived(BMessage* msg)
                                        item->GetVersion()) != B_OK)
                                break;
 
-                       fButton->SetEnabled(true);
+                       fRemoveButton->SetEnabled(true);
                        fDescription->SetText(fCurrentSelection.Description());
                        break;
                }
+               case P_MSG_INSTALL:
+               {
+                       fOpenPanel->Show();
+                       break;
+               }
                case P_MSG_REMOVE:
                {
                        if (fCurrentSelection.InitCheck() != B_OK)
@@ -259,6 +270,7 @@ UninstallView::MessageReceived(BMessage* msg)
                        }
                        notify->SetFlags(notify->Flags() | B_CLOSE_ON_ESCAPE);
                        notify->Go();
+                       break;
                }
                default:
                        BView::MessageReceived(msg);
@@ -268,6 +280,13 @@ UninstallView::MessageReceived(BMessage* msg)
 
 
 void
+UninstallView::RefsReceived(BMessage* message)
+{
+       static_cast<PackageInstaller*>(be_app)->RefsReceived(message);
+}
+
+
+void
 UninstallView::_InitView()
 {
        SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
@@ -287,9 +306,11 @@ UninstallView::_InitView()
        fDescription->SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
        fDescription->SetText(fNoPackageSelectedString);
 
-       fButton = new BButton("removal", B_TRANSLATE("Remove"),
+       fInstallButton = new BButton("install", B_TRANSLATE("Install" 
B_UTF8_ELLIPSIS),
+               new BMessage(P_MSG_INSTALL));
+       fRemoveButton = new BButton("removal", B_TRANSLATE("Remove"),
                new BMessage(P_MSG_REMOVE));
-       fButton->SetEnabled(false);
+       fRemoveButton->SetEnabled(false);
 
        const float spacing = be_control_look->DefaultItemSpacing();
 
@@ -310,7 +331,8 @@ UninstallView::_InitView()
                .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
                .Add(BGroupLayoutBuilder(B_HORIZONTAL)
                        .AddGlue()
-                       .Add(fButton)
+                       .Add(fInstallButton)
+                       .Add(fRemoveButton)
                        .SetInsets(spacing, spacing, spacing, spacing)
                )
        ;
diff --git a/src/apps/installedpackages/UninstallView.h 
b/src/apps/packageinstaller/UninstallView.h
similarity index 87%
rename from src/apps/installedpackages/UninstallView.h
rename to src/apps/packageinstaller/UninstallView.h
index be81699..1c1fd56 100644
--- a/src/apps/installedpackages/UninstallView.h
+++ b/src/apps/packageinstaller/UninstallView.h
@@ -18,6 +18,7 @@ class BButton;
 class BListView;
 class BTextView;
 class BScrollView;
+class BFilePanel;
 
 
 class UninstallView : public BGroupView {
@@ -27,6 +28,7 @@ public:
 
        virtual void                            AttachedToWindow();
        virtual void                            MessageReceived(BMessage* 
message);
+       virtual void                            RefsReceived(BMessage* message);
 
 private:
                        void                            _InitView();
@@ -42,7 +44,9 @@ private:
                        BPath                           fToPackages;
                        BListView*                      fAppList;
                        BTextView*                      fDescription;
-                       BButton*                        fButton;
+                       BButton*                        fInstallButton;
+                       BFilePanel*                     fOpenPanel;
+                       BButton*                        fRemoveButton;
                        BScrollView*            fDescScroll;
                        InstalledPackageInfo fCurrentSelection;
                        bool                            fWatcherRunning;
diff --git a/src/apps/installedpackages/UninstallWindow.cpp 
b/src/apps/packageinstaller/UninstallWindow.cpp
similarity index 78%
rename from src/apps/installedpackages/UninstallWindow.cpp
rename to src/apps/packageinstaller/UninstallWindow.cpp
index bb1f14a..7608be6 100644
--- a/src/apps/installedpackages/UninstallWindow.cpp
+++ b/src/apps/packageinstaller/UninstallWindow.cpp
@@ -13,6 +13,7 @@
 #include <GroupLayout.h>
 #include <Locale.h>
 
+#include "main.h"
 
 #undef B_TRANSLATION_CONTEXT
 #define B_TRANSLATION_CONTEXT "UninstallWindow"
@@ -21,10 +22,17 @@
 UninstallWindow::UninstallWindow()
        :
        BWindow(BRect(100, 100, 600, 300),
-               B_TRANSLATE_SYSTEM_NAME("InstalledPackages"), B_TITLED_WINDOW,
+               B_TRANSLATE("Installed packages"), B_TITLED_WINDOW,
                B_NOT_ZOOMABLE | B_QUIT_ON_WINDOW_CLOSE | 
B_AUTO_UPDATE_SIZE_LIMITS)
 {
        SetLayout(new BGroupLayout(B_HORIZONTAL));
        AddChild(new UninstallView());
 }
 
+
+void
+UninstallWindow::Quit()
+{
+       be_app->PostMessage(P_WINDOW_QUIT);
+       BWindow::Quit();
+}
diff --git a/src/apps/installedpackages/UninstallWindow.h 
b/src/apps/packageinstaller/UninstallWindow.h
similarity index 93%
rename from src/apps/installedpackages/UninstallWindow.h
rename to src/apps/packageinstaller/UninstallWindow.h
index 6f47a76..b5f0bf3 100644
--- a/src/apps/installedpackages/UninstallWindow.h
+++ b/src/apps/packageinstaller/UninstallWindow.h
@@ -16,6 +16,7 @@
 class UninstallWindow : public BWindow {
 public:
                                                                
UninstallWindow();
+       virtual void                            Quit();
 };
 
 #endif // UNINSTALLWINDOW_H
diff --git a/src/apps/packageinstaller/main.cpp 
b/src/apps/packageinstaller/main.cpp
index 4bafeb8..2cc83cd 100644
--- a/src/apps/packageinstaller/main.cpp
+++ b/src/apps/packageinstaller/main.cpp
@@ -6,15 +6,16 @@
  *             Łukasz 'Sil2100' Zemczak <sil2100@xxxxxxxxxxxxx>
  */
 
+#include "main.h"
 
 #include "PackageWindow.h"
+#include "UninstallWindow.h"
 
 #include <Alert.h>
 #include <Application.h>
 #include <Autolock.h>
 #include <Catalog.h>
 #include <Entry.h>
-#include <FilePanel.h>
 #include <List.h>
 #include <Locale.h>
 #include <Path.h>
@@ -30,30 +31,9 @@
 bool gVerbose = false;
 
 
-class PackageInstaller : public BApplication {
-public:
-                                                               
PackageInstaller();
-       virtual                                         ~PackageInstaller();
-
-       virtual void                            RefsReceived(BMessage* message);
-       virtual void                            ArgvReceived(int32 argc, char** 
argv);
-       virtual void                            ReadyToRun();
-
-       virtual void                            MessageReceived(BMessage* 
message);
-
-private:
-                       void                            _NewWindow(const 
entry_ref* ref);
-
-private:
-                       BFilePanel*                     fOpenPanel;
-                       uint32                          fWindowCount;
-};
-
-
 PackageInstaller::PackageInstaller()
        :
        BApplication("application/x-vnd.Haiku-PackageInstaller"),
-       fOpenPanel(new BFilePanel(B_OPEN_PANEL)),
        fWindowCount(0)
 {
 }
@@ -68,9 +48,11 @@ void
 PackageInstaller::ReadyToRun()
 {
        // We're ready to run - if no windows are yet visible, this means that
-       // we should show a open panel
-       if (fWindowCount == 0)
-               fOpenPanel->Show();
+       // we should show the UninstallWindow
+       if (fWindowCount == 0) {
+               (new UninstallWindow)->Show();
+               fWindowCount++;
+       }
 }
 
 
@@ -91,7 +73,7 @@ PackageInstaller::ArgvReceived(int32 argc, char** argv)
                        gVerbose = true;
                        continue;
                }
-               
+
                BPath path;
                if (path.SetTo(argv[i]) != B_OK) {
                        fprintf(stderr, B_TRANSLATE("Error! \"%s\" is not a 
valid path.\n"),
diff --git a/src/apps/packageinstaller/main.h b/src/apps/packageinstaller/main.h
new file mode 100644
index 0000000..53fb162
--- /dev/null
+++ b/src/apps/packageinstaller/main.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2007-2009, Haiku, Inc. All rights reserved.
+ * Distributed under the terms of the MIT license.
+ *
+ * Author:
+ *             Łukasz 'Sil2100' Zemczak <sil2100@xxxxxxxxxxxxx>
+ */
+#ifndef PACKAGEINSTALLER_MAIN_H
+#define PACKAGEINSTALLER_MAIN_H
+
+#include <Application.h>
+
+
+const uint32 P_WINDOW_QUIT             =       'PiWq';
+
+
+
+class PackageInstaller : public BApplication {
+public:
+                                                               
PackageInstaller();
+       virtual                                         ~PackageInstaller();
+
+       virtual void                            RefsReceived(BMessage* message);
+       virtual void                            ArgvReceived(int32 argc, char** 
argv);
+       virtual void                            ReadyToRun();
+
+       virtual void                            MessageReceived(BMessage* 
message);
+
+private:
+                       void                            _NewWindow(const 
entry_ref* ref);
+
+private:
+                       uint32                          fWindowCount;
+};
+
+#endif // PACKAGEINSTALLER_MAIN_H

############################################################################

Revision:    hrev50134
Commit:      d3626243b02c6f1033ef005c3ac77aa30d1cb136
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d3626243b02c
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Mar  7 20:16:08 2016 UTC

PackageInstaller: Fix layout in UninstallView, use BLayoutBuilder.

----------------------------------------------------------------------------

diff --git a/src/apps/packageinstaller/UninstallView.cpp 
b/src/apps/packageinstaller/UninstallView.cpp
index 3b00f0bef..fed2719 100644
--- a/src/apps/packageinstaller/UninstallView.cpp
+++ b/src/apps/packageinstaller/UninstallView.cpp
@@ -22,8 +22,7 @@
 #include <File.h>
 #include <FilePanel.h>
 #include <FindDirectory.h>
-#include <GroupLayout.h>
-#include <GroupLayoutBuilder.h>
+#include <LayoutBuilder.h>
 #include <ListView.h>
 #include <Locale.h>
 #include <NodeMonitor.h>
@@ -314,28 +313,28 @@ UninstallView::_InitView()
 
        const float spacing = be_control_look->DefaultItemSpacing();
 
-       BGroupLayoutBuilder builder(GroupLayout());
-       builder.Add(scrollView)
+       BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
+               .Add(scrollView, 10)
                .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
-               .Add(BGroupLayoutBuilder(B_VERTICAL)
-                       .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
+               .AddGroup(B_VERTICAL)
+                       .SetInsets(spacing)
+                       .AddGroup(B_HORIZONTAL, 0)
                                .Add(descriptionLabel)
                                .AddGlue()
-                       )
-                       .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
+                       .End()
+                       .AddGroup(B_HORIZONTAL, 0)
                                
.Add(BSpaceLayoutItem::CreateHorizontalStrut(10))
                                .Add(fDescription)
-                       )
-                       .SetInsets(spacing, spacing, spacing, spacing)
-               )
+                       .End()
+               .End()
                .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
-               .Add(BGroupLayoutBuilder(B_HORIZONTAL)
+               .AddGroup(B_HORIZONTAL)
+                       .SetInsets(spacing)
                        .AddGlue()
                        .Add(fInstallButton)
                        .Add(fRemoveButton)
-                       .SetInsets(spacing, spacing, spacing, spacing)
-               )
-       ;
+               .End()
+       .End();
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev50134 - in src/apps: packageinstaller installedpackages - waddlesplash