summaryrefslogtreecommitdiff
authordrw <drw>2004-11-16 20:50:31 (UTC)
committer drw <drw>2004-11-16 20:50:31 (UTC)
commit251511f7cdd1691a7d790ce0473e040d38a6d834 (patch) (side-by-side diff)
tree23a1eb61e8524afc8458ac0f77abcc4f22041c44
parentea3945a9bd8f9830f70b1efa133f9df13b19362f (diff)
downloadopie-251511f7cdd1691a7d790ce0473e040d38a6d834.zip
opie-251511f7cdd1691a7d790ce0473e040d38a6d834.tar.gz
opie-251511f7cdd1691a7d790ce0473e040d38a6d834.tar.bz2
Implemented setDocument to allow installs by clicking on ipk file
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/packagemanager/mainwindow.cpp40
-rw-r--r--noncore/settings/packagemanager/mainwindow.h3
2 files changed, 31 insertions, 12 deletions
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp
index 5a942a1..349094d 100644
--- a/noncore/settings/packagemanager/mainwindow.cpp
+++ b/noncore/settings/packagemanager/mainwindow.cpp
@@ -90,9 +90,9 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ )
// Initialize remaining user interface items
initUI();
// Initialize package information
- QTimer::singleShot( 100, this, SLOT( initPackageInfo() ) );
+ QTimer::singleShot( -1, this, SLOT( initPackageInfo() ) );
}
void MainWindow::closeEvent( QCloseEvent *event )
{
@@ -308,8 +308,30 @@ void MainWindow::searchForPackage( const QString &text )
}
}
}
+void MainWindow::installLocalPackage( const QString &ipkFile )
+{
+ // Install selected file
+ InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), true,
+ OPackage::Install, new QStringList( ipkFile ) );
+ connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
+
+ // Display widget
+ m_widgetStack.addWidget( dlg, 3 );
+ m_widgetStack.raiseWidget( dlg );
+}
+
+void MainWindow::setDocument( const QString &ipkFile )
+{
+ QString file = ipkFile;
+ DocLnk lnk( ipkFile );
+ if ( lnk.isValid() )
+ file = lnk.file();
+
+ installLocalPackage( file );
+}
+
void MainWindow::initPackageInfo()
{
m_widgetStack.raiseWidget( &m_statusWidget );
@@ -323,9 +345,12 @@ void MainWindow::initPackageInfo()
loadPackageList( packageList, true );
delete packageList;
}
- m_widgetStack.raiseWidget( &m_packageList );
+ QWidget *widget = m_widgetStack.widget( 3 );
+ if ( !widget )
+ widget = &m_packageList;
+ m_widgetStack.raiseWidget( widget );
}
void MainWindow::slotWidgetStackShow( QWidget *widget )
{
@@ -536,18 +561,9 @@ void MainWindow::slotInstallLocal()
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 );
- }
+ installLocalPackage( package );
}
void MainWindow::slotCloseDlg()
{
diff --git a/noncore/settings/packagemanager/mainwindow.h b/noncore/settings/packagemanager/mainwindow.h
index 7968614..103c664 100644
--- a/noncore/settings/packagemanager/mainwindow.h
+++ b/noncore/settings/packagemanager/mainwindow.h
@@ -100,10 +100,13 @@ private:
void initUI();
void loadPackageList( OPackageList *packages = 0x0, bool clearList = true );
void searchForPackage( const QString &text );
+ void installLocalPackage( const QString &ipkFile );
private slots:
+ void setDocument( const QString &ipkFile );
+
void initPackageInfo();
void slotWidgetStackShow( QWidget *widget );
// Status widget slots