From 1c6f490e8541626f68422e0a3a7c7281d7f5b7d3 Mon Sep 17 00:00:00 2001
From: drw <drw>
Date: Tue, 16 Nov 2004 19:06:12 +0000
Subject: Add ability to install local ipkg files

---
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp
index 807bddd..5a942a1 100644
--- a/noncore/settings/packagemanager/mainwindow.cpp
+++ b/noncore/settings/packagemanager/mainwindow.cpp
@@ -34,6 +34,8 @@ _;:,   .>  :=|.         This file is free software; you can
 #include "entrydlg.h"
 #include "packageinfodlg.h"
 
+#include <opie2/ofiledialog.h>
+
 #include <qpe/qcopenvelope_qws.h>
 #include <qpe/qpeapplication.h>
 #include <qpe/resource.h>
@@ -182,6 +184,12 @@ void MainWindow::initUI()
     a->addTo( popup );
     a->addTo( &m_toolBar );
 
+    a = new QAction( tr( "Install local package" ), Resource::loadPixmap( "folder" ), QString::null, 0, this, 0 );
+    a->setWhatsThis( tr( "Tap here to install a package file located on device." ) );
+    connect( a, SIGNAL(activated()), this, SLOT(slotInstallLocal()) );
+    a->addTo( popup );
+    //a->addTo( &m_toolBar );
+
     popup->insertSeparator();
 
     a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 );
@@ -519,6 +527,28 @@ void MainWindow::slotApply()
     m_widgetStack.raiseWidget( dlg );
 }
 
+void MainWindow::slotInstallLocal()
+{
+    // Display file open dialog with only package files
+    MimeTypes type;
+    QStringList packages;
+    packages << "application/ipkg";
+    type.insert( tr( "Application Packages" ), packages );
+    QString package = Opie::Ui::OFileDialog::getOpenFileName( Opie::Ui::OFileSelector::NORMAL,
+                                                              "/", QString::null, type );
+    if ( !package.isNull() )
+    {
+        // Install selected file
+        InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), true,
+                                          OPackage::Install, new QStringList( package ) );
+        connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
+    
+        // Display widget
+        m_widgetStack.addWidget( dlg, 3 );
+        m_widgetStack.raiseWidget( dlg );
+    }
+}
+
 void MainWindow::slotCloseDlg()
 {
     // Close install dialog
diff --git a/noncore/settings/packagemanager/mainwindow.h b/noncore/settings/packagemanager/mainwindow.h
index 632effb..7968614 100644
--- a/noncore/settings/packagemanager/mainwindow.h
+++ b/noncore/settings/packagemanager/mainwindow.h
@@ -1,27 +1,27 @@
 /*
-� � � � � � � �             This file is part of the OPIE Project
+                    This file is part of the OPIE Project
 
                =.            Copyright (c)  2003 Dan Williams <drw@handhelds.org>
-� � � � � � �.=l.
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This file is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This file is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful, but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU General
-..}^=.= � � � = � � � ;      Public License for more details.
-++= � -. � � .` � � .:
-�: � � = �...= . :.=-        You should have received a copy of the GNU
-�-. � .:....=;==+<;          General Public License along with this file;
-� -_. . . � )=. �=           see the file COPYING. If not, write to the
-� � -- � � � �:-=`           Free Software Foundation, Inc.,
+      .=l.
+     .>+-=
+_;:,   .>  :=|.         This file is free software; you can
+.> <`_,  > .  <=          redistribute it and/or modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This file is distributed in the hope that
+  + . -:.    =       it will be useful, but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU General
+..}^=.=    =    ;      Public License for more details.
+++=  -.   .`   .:
+:   = ...= . :.=-        You should have received a copy of the GNU
+-.  .:....=;==+<;          General Public License along with this file;
+ -_. . .  )=. =           see the file COPYING. If not, write to the
+  --    :-=`           Free Software Foundation, Inc.,
                              59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
 
@@ -116,6 +116,7 @@ private slots:
     void slotUpgrade();
     void slotDownload();
     void slotApply();
+    void slotInstallLocal();
     void slotCloseDlg();
     void slotConfigure();
 
--
cgit v0.9.0.2