From 320532727fc7dfbe9760d0eea0e17b8e1230fc8e Mon Sep 17 00:00:00 2001 From: tille Date: Sat, 27 Apr 2002 14:35:48 +0000 Subject: added setDocument and a qcop call to install a file --- diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO index 744cba4..b07542a 100644 --- a/noncore/unsupported/oipkg/TODO +++ b/noncore/unsupported/oipkg/TODO @@ -1,3 +1,4 @@ +* setDocument function * Settings Class * tr() ;) * Dialog to display ipkg output live @@ -6,3 +7,4 @@ * qcop * error handling * manage links +* dependency checking \ No newline at end of file diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index 25ca889..e3abf36 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -33,6 +33,10 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : listViewPackages->setSelectionMode(QListView::NoSelection); setCentralWidget( listViewPackages ); + channel = new QCopChannel( "QPE/Application/oipkg", this ); + connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), + this, SLOT(receive(const QCString&, const QByteArray&)) ); + makeMenu(); #ifdef NEWLAYOUT listViewPackages->addColumn( tr("Package") ); @@ -416,3 +420,17 @@ void MainWindow::stopTimer( QListViewItem* ) pvDebug( 5, "stop timer" ); popupTimer->stop(); } + +void MainWindow::setDocument(const QString &fileName) +{ + ipkg->installFile( fileName ); +} + +void MainWindow::receive(const QCString &msg, const QByteArray &arg) +{ + pvDebug(3, "QCop "+msg); + if ( msg == "setDocument(QString)" ) + { + setDocument( QString(arg) ); + } +} \ No newline at end of file diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h index adc5e78..34943f2 100644 --- a/noncore/unsupported/oipkg/mainwindow.h +++ b/noncore/unsupported/oipkg/mainwindow.h @@ -16,6 +16,7 @@ class QPEToolBar; class QLineEdit; class QListView; class PackageListItem; +class QCopChannel; class MainWindow : public QMainWindow { @@ -26,6 +27,8 @@ public: MainWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); ~MainWindow(); + QCopChannel *channel; + protected slots: void runIpkg(); void getList(); @@ -36,6 +39,7 @@ protected slots: void showSettings(); void showSettingsSrv(); void showSettingsDst(); + void setDocument (const QString &); public slots: void showDetails(); @@ -49,6 +53,7 @@ public slots: void showPopup(); void changePackageDest( int ); void stopTimer( QListViewItem* ); + void receive (const QCString &, const QByteArray &); private: void makeMenu(); diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 3b31b4d..45c89c5 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -111,10 +111,15 @@ void PmIpkg::makeLinks(Package *pack) QString statusDir = cfg.readEntry( "statusDir", "" ); } QString fn = dest+"/"+statusDir+"/info/"+pack->name()+".list"; - QFile f( fn ); - if ( ! f.open(IO_ReadOnly) ) + linkPackage( fn, dest ); +} + +void PmIpkg::linkPackage( QString packFileName, QString dest ) +{ + QFile f( packFileName ); + if ( ! f.open(IO_ReadOnly) ) { - out( "Panik! Could not open:
"+fn ); + out( "Panik! Could not open:
"+packFileName ); return; }; QTextStream t( &f ); @@ -207,7 +212,7 @@ void PmIpkg::commit( PackageList pl ) runwindow, SLOT( close() ) ); runwindow->exec(); - return; + out("

"+tr("Its now save to close this window")+"

"); } void PmIpkg::doIt() @@ -314,3 +319,30 @@ void PmIpkg::show(bool b) else runwindow->progress->show(); } + +void PmIpkg::installFile(const QString &fileName) +{ + pvDebug( 2,"PmIpkg::installFile "+ fileName); + show( false ); + runwindow->outPut->setText(""); + fileNameToInstall = fileName; + runwindow->doItButton->hide(); + runwindow->removeButton->hide(); + out(""+tr("Install: ")+fileName); + connect( runwindow->installButton, SIGNAL( clicked() ), + this, SLOT( installFileName() ) ); + connect( runwindow->cancelButton, SIGNAL( clicked() ), + runwindow, SLOT( close() ) ); + + runwindow->exec(); +} + +void PmIpkg::installFileName() +{ + if ( !QFile::exists( fileNameToInstall ) ) return; + out(tr("Installing pacakge ")+fileNameToInstall+"
"+tr("please wait")+"

"); + runIpkg("install " + fileNameToInstall ); + if ( settings->createLinks() ) + linkPackage( fileNameToInstall, settings->getDestinationUrl() ); + out("

"+tr("Its now save to close this window")+"

"); +} \ No newline at end of file diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index c57adb7..8e06f4c 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -31,8 +31,10 @@ private: QList to_remove; QList to_install; bool runwindowopen; + QString fileNameToInstall; void makeLinks(Package*); + void linkPackage( QString, QString ); void processLinkDir( QString, QString ); int runIpkg(const QString& args, const QString& dest="" ); void out( QString ); @@ -40,7 +42,9 @@ private: public slots: void doIt(); void install(); + void installFileName(); void remove(); + void installFile(const QString &fileName); void linkDestination( const QString, const QByteArray ); }; -- cgit v0.9.0.2