From 0d5a0129ee055e0f077505b05caa942bf6ef6165 Mon Sep 17 00:00:00 2001 From: tille Date: Fri, 21 Jun 2002 09:01:39 +0000 Subject: some fixes and first version with oprocess (out-ifdefed) --- diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO index e7b017c..6e0e6ca 100644 --- a/noncore/unsupported/oipkg/TODO +++ b/noncore/unsupported/oipkg/TODO @@ -1,7 +1,10 @@ -* check for networt before installing from network -* Settings Class -* parse "to install" and "to remove" from status +* check for network before installing from network +* Settings Class / new setting dialog +* parse "to install" and "to remove" from status, and change status + i.e. improve status handling / modify status file + dest keyword in status? -> cworth * install local file dialog +* parse lists files after opening feed / doclnk * qcop * error handling * manage links @@ -11,3 +14,7 @@ * different types of filters and searches i.e. name, desc, files etc * display new list after update +* make sure oipkg installs to the correct dest when getting packet to install from list + dest keyword? +* cancel button while installing +* duplicate button for settings-servers diff --git a/noncore/unsupported/oipkg/installdialog.cpp b/noncore/unsupported/oipkg/installdialog.cpp index a2c9702..bb50103 100644 --- a/noncore/unsupported/oipkg/installdialog.cpp +++ b/noncore/unsupported/oipkg/installdialog.cpp @@ -71,8 +71,8 @@ InstallDialog::InstallDialog( PackageManagerSettings* s, QWidget* parent, const GroupBoxOptionsLayout->addWidget( _force_remove, 2, 0 ); InstallDialogLayout->addWidget( GroupBoxOptions, 1, 0 ); - toRemoveItem = new QCheckListItem( ListViewPackages, QObject::tr("To remove") ); - toInstallItem = new QCheckListItem( ListViewPackages, QObject::tr("To install") ); + toRemoveItem = new QCheckListItem( ListViewPackages, tr("To remove") ); + toInstallItem = new QCheckListItem( ListViewPackages, tr("To install") ); } diff --git a/noncore/unsupported/oipkg/main.cpp b/noncore/unsupported/oipkg/main.cpp index de25e27..f72540c 100644 --- a/noncore/unsupported/oipkg/main.cpp +++ b/noncore/unsupported/oipkg/main.cpp @@ -9,7 +9,7 @@ int debugLevel; int main( int argc, char ** argv ) { printf("This is oipkg\n"); - printf("$ID$\n"); + printf("$Id$\n"); debugLevel = 2; if (argc > 1) { diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index 27c9f4c..11ab406 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -33,6 +33,9 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : QMainWindow( parent, name, f ) +// packageListServers( QObject(parent), name ), +// packageListSearch( parent, name ), +// packageListDocLnk( parent, name ) { setCaption( tr("Package Manager") ); settings = new PackageManagerSettings(this,0,TRUE); diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro index 9e2f5f8..7f60ed8 100644 --- a/noncore/unsupported/oipkg/oipkg.pro +++ b/noncore/unsupported/oipkg/oipkg.pro @@ -29,7 +29,8 @@ SOURCES = main.cpp \ package.cpp INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/ioclude -LIBS += -lqpe +LIBS += -lqpe +LIBS += -lopie INTERFACES = runwindow.ui \ pksettingsbase.ui TARGET = oipkg diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 4a09b40..97f7813 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -9,12 +9,20 @@ #include "debug.h" -//Package::~Package() -//{ -//} +Package::Package( QObject *parent=0, const char *name=0 ) + : QObject(parent,name) +{ + +} + +Package::~Package() +{ +} -Package::Package( PackageManagerSettings *s ) +Package::Package( PackageManagerSettings *s, QObject *parent=0, const char *name=0 ) + : QObject(parent,name) { + Package(parent,name); init(s); } @@ -37,13 +45,14 @@ void Package::init( PackageManagerSettings *s ) _version=""; } -Package::Package( QStringList pack, PackageManagerSettings *s ) +Package::Package( QStringList pack, PackageManagerSettings *s , QObject *parent=0, const char *name=0 ) + : QObject(parent,name) { init(s); parsePackage( pack ); } -Package::Package( QString n, PackageManagerSettings *s ) +Package::Package( QString n, PackageManagerSettings *s, QObject *parent=0, const char *name=0 ) { init(s); if ( !QFile::exists( n ) ) @@ -57,7 +66,7 @@ Package::Package( QString n, PackageManagerSettings *s ) } } -Package::Package( Package *pi ) +Package::Package( Package *pi, QObject *parent=0, const char *name=0 ) { init(pi->settings); copyValues( pi ); diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h index 68090dc..f50b9b5 100644 --- a/noncore/unsupported/oipkg/package.h +++ b/noncore/unsupported/oipkg/package.h @@ -10,15 +10,16 @@ #include "pksettings.h" -class Package //: public QObject +class Package : public QObject { -// Q_OBJECT + Q_OBJECT public: - Package(PackageManagerSettings *); - // ~Package(); - Package( QStringList, PackageManagerSettings * ); - Package( QString, PackageManagerSettings * ); - Package( Package* ); + Package(QObject *parent=0, const char *name=0); + Package(PackageManagerSettings *s, QObject *parent=0, const char *name=0); + ~Package(); + Package( QStringList, PackageManagerSettings *s, QObject *parent=0, const char *name=0 ); + Package( QString, PackageManagerSettings *s, QObject *parent=0, const char *name=0 ); + Package( Package*s, QObject *parent=0, const char *name=0 ); void setValue( QString, QString ); void copyValues( Package* ); diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp index 1b572e0..3cc0443 100644 --- a/noncore/unsupported/oipkg/packagelist.cpp +++ b/noncore/unsupported/oipkg/packagelist.cpp @@ -10,8 +10,8 @@ static QDict *packageListAll; static int packageListAllRefCount = 0; -PackageList::PackageList() - : packageIter( packageList ) +PackageList::PackageList(QObject *parent=0, const char *name=0) + : QObject(parent,name), packageIter( packageList ) { empty=true; if (!packageListAll) packageListAll = new QDict(); @@ -24,11 +24,11 @@ PackageList::PackageList() aktSubSection = "All"; } -PackageList::PackageList( PackageManagerSettings* s) - : packageIter( packageList ) +PackageList::PackageList( PackageManagerSettings* s, QObject *parent, const char *name) + : QObject(parent,name), packageIter( packageList ) { settings = s; - PackageList(); + PackageList(parent, name); } PackageList::~PackageList() diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h index d0f8897..78dcd92 100644 --- a/noncore/unsupported/oipkg/packagelist.h +++ b/noncore/unsupported/oipkg/packagelist.h @@ -6,14 +6,14 @@ #include "pksettings.h" #include "debug.h" -class PackageList //:QObject +class PackageList :QObject { -// Q_OBJECT + Q_OBJECT public: // static QString all = QObject::tr("All"); - PackageList(); - PackageList( PackageManagerSettings* ); + PackageList (QObject *parent=0, const char *name=0); + PackageList( PackageManagerSettings *s, QObject *parent=0, const char *name=0); virtual ~PackageList(); void insertPackage( Package* ); Package* find( QString ); diff --git a/noncore/unsupported/oipkg/packagelistdoclnk.cpp b/noncore/unsupported/oipkg/packagelistdoclnk.cpp index f31f742..b42cfdd 100644 --- a/noncore/unsupported/oipkg/packagelistdoclnk.cpp +++ b/noncore/unsupported/oipkg/packagelistdoclnk.cpp @@ -8,14 +8,14 @@ #include "package.h" #include "pksettings.h" -PackageListDocLnk::PackageListDocLnk(PackageManagerSettings* s) +PackageListDocLnk::PackageListDocLnk(PackageManagerSettings* s, QObject *parent=0, const char *name=0) : PackageList(s) { - PackageListDocLnk(); + PackageListDocLnk(parent, name); } -PackageListDocLnk::PackageListDocLnk() - : PackageList() +PackageListDocLnk::PackageListDocLnk(QObject *parent=0, const char *name=0) + : PackageList(parent, name) { Config cfg( "oipkg", Config::User ); cfg.setGroup( "Common" ); diff --git a/noncore/unsupported/oipkg/packagelistdoclnk.h b/noncore/unsupported/oipkg/packagelistdoclnk.h index fe73658..a63fb59 100644 --- a/noncore/unsupported/oipkg/packagelistdoclnk.h +++ b/noncore/unsupported/oipkg/packagelistdoclnk.h @@ -9,8 +9,8 @@ class DocLnkSet; class PackageListDocLnk : public PackageList { public: - PackageListDocLnk(); - PackageListDocLnk( PackageManagerSettings* s); + PackageListDocLnk(QObject *parent=0, const char *name=0); + PackageListDocLnk( PackageManagerSettings *s, QObject *parent=0, const char *name=0); virtual ~PackageListDocLnk(); public slots: void update(); diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp index 55047d5..0c9c676 100644 --- a/noncore/unsupported/oipkg/packagelistitem.cpp +++ b/noncore/unsupported/oipkg/packagelistitem.cpp @@ -159,7 +159,7 @@ void PackageListItem::displayDetails() sod = sod.isEmpty()?QString(""):QString(" ("+sod+")"); setText(0, package->name()+sod ); nameItem->setText( 0, QObject::tr("Name: ")+package->name()); - linkItem->setText( 0, QObject::tr("Link: ")+QString(package->link()?QObject::tr("Yes"):QObject::tr("No")) ); + linkItem->setText( 0, QObject::tr("Link: ")+package->link()?QObject::tr("Yes"):QObject::tr("No")); destItem->setText( 0, QObject::tr("Destination: ")+package->dest() ); statusItem->setText( 0, QObject::tr("Status: ")+package->status() ); repaint(); diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp index 70aa48a..2bb74e9 100644 --- a/noncore/unsupported/oipkg/packagelistview.cpp +++ b/noncore/unsupported/oipkg/packagelistview.cpp @@ -59,7 +59,7 @@ void PackageListView::showPopup() QAction *popupAction; if ( !activePackage->installed() ) { - popupMenu->insertItem( QObject::tr("Install to"), destsMenu ); + popupMenu->insertItem( tr("Install to"), destsMenu ); QStringList dests = settings->getDestinationNames(); QString ad = settings->getDestinationName(); for (uint i = 0; i < dests.count(); i++ ) @@ -75,11 +75,11 @@ void PackageListView::showPopup() connect( destsMenu, SIGNAL( activated( int ) ), this, SLOT( changePackageDest( int ) ) ); }else{ - popupAction = new QAction( QObject::tr("Remove"),QString::null, 0, this, 0 ); + popupAction = new QAction( tr("Remove"),QString::null, 0, this, 0 ); popupAction->addTo( popupMenu ); connect( popupAction, SIGNAL( activated() ), this , SLOT( toggleProcess() ) ); - popupAction = new QAction( QObject::tr("Reinstall"),QString::null, 0, this, 0 ); + popupAction = new QAction( tr("Reinstall"),QString::null, 0, this, 0 ); popupAction->addTo( popupMenu ); popupAction->setEnabled( false ); } diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp index 09975b0..59d5a3e 100644 --- a/noncore/unsupported/oipkg/pksettings.cpp +++ b/noncore/unsupported/oipkg/pksettings.cpp @@ -241,6 +241,7 @@ void PackageManagerSettings::readInstallationSettings() { Config cfg( "oipkg", Config::User ); cfg.setGroup( "Settings" ); + installationSettingsCount = cfg.readNumEntry( "count", -1 ); currentSetting = cfg.readNumEntry( "current", 0 );// o should be -1 diff --git a/noncore/unsupported/oipkg/pksettings.h b/noncore/unsupported/oipkg/pksettings.h index dcc1e3a..8f9fe62 100644 --- a/noncore/unsupported/oipkg/pksettings.h +++ b/noncore/unsupported/oipkg/pksettings.h @@ -9,7 +9,7 @@ class PackageManagerSettings : public PackageManagerSettingsBase { -// Q_OBJECT + Q_OBJECT public: PackageManagerSettings( QWidget* , const char* , WFlags ); ~PackageManagerSettings(); diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 7b3fa1e..2a534d2 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -3,7 +3,9 @@ #include "package.h" #include "packagelistitem.h" -#include +//#infdef OPROCESS +#include +//#endif #include #include #include @@ -32,10 +34,22 @@ PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlag { settings = s; runwindow = new RunWindow( p, name, true, f ); +#ifdef OPROCESS + ipkgProcess = new OProcess(); + connect ( ipkgProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), + this, SLOT(getIpkgOutput(OProcess*,char*,int))); + + connect ( ipkgProcess, SIGNAL(receivedStderr(OProcess*,char*,int)), + this, SLOT(getIpkgOutput(OProcess*,char*,int))); + installDialog = 0; +#endif } PmIpkg::~PmIpkg() { +#ifdef OPROCESS + delete ipkgProcess; +#endif } bool PmIpkg::runIpkg(const QString& args, const QString& dest ) @@ -43,6 +57,11 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) bool ret=false; QDir::setCurrent("/tmp"); QString cmd = "/usr/bin/ipkg "; +#ifdef OPROCESS + ipkgProcess->clearArguments(); + *ipkgProcess << "/usr/bin/ipkg "; + QString cmd = ""; +#endif pvDebug( 3,"PmIpkg::runIpkg got dest="+dest); if ( dest == "" ) cmd += " -dest "+settings->getDestinationName(); @@ -65,6 +84,41 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) cmd += args; out( "running:\n"+cmd+"\n" ); pvDebug(2,"running:"+cmd); +#ifdef OPROCESS + *ipkgProcess << args; + out( "running:\n" + cmd); + *ipkgProcess << cmd; + +//debug + ipkgProcess->clearArguments(); + *ipkgProcess << "/bin/ls "; +//debug + QValueList a = ipkgProcess->args(); + QValueList::Iterator it; + for( it = a.begin(); it != a.end(); ++it ) + { + out( *it ); + cmd += *it; + } + + pvDebug(2,"running:"+cmd); + qApp->processEvents(); +// sleep(1); + ret = ipkgProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput); + if ( !ret ) { + pvDebug(2,"Could not execute '" + cmd); + out("\nError while executing "+ cmd+"\n\n"); + out("\nError while executing\n\n"); + // return false; + } + + while ( ipkgProcess->isRunning() ) + { + out("."); + pvDebug(7,"wait for oprocess to terminate"); + qApp->processEvents(); + }; +#else qApp->processEvents(); FILE *fp; char line[130]; @@ -91,6 +145,7 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) } pclose(fp); } +#endif //out( "Finished!"); pvDebug(2,QString(ret?"success\n":"failure\n")); return ret; @@ -99,7 +154,7 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) void PmIpkg::makeLinks(Package *pack) { pvDebug( 2, "PmIpkg::makeLinks "+ pack->name()); - linkPackage( pack->installName(), pack->dest() ); + linkPackage( pack->name(), pack->dest() ); } QStringList* PmIpkg::getList( QString packFileName, QString d ) @@ -242,6 +297,7 @@ void PmIpkg::commit() } installDialog->close(); delete installDialog; + installDialog = 0; out(tr("\nAll done.")); } @@ -396,3 +452,15 @@ void PmIpkg::clearLists() to_remove.clear(); to_install.clear(); } + + +void PmIpkg::getIpkgOutput(OProcess *proc, char *buffer, int buflen) +{ + QString lineStr, lineStrOld; + lineStr = buffer; + lineStr=lineStr.left(buflen); + //Configuring opie-oipkg...Done + if (lineStr!=lineStrOld) + out(lineStr); + lineStrOld = lineStr; +} \ No newline at end of file diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index d53a74d..2c92348 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -2,6 +2,7 @@ #define PMIPKG_H +#include #include #include #include @@ -40,17 +41,16 @@ public slots: void createLinks( const QString &dest ); void removeLinks( const QString &dest ); +//private slots: + void getIpkgOutput(OProcess *proc, char *buffer, int buflen); + private: + OProcess *ipkgProcess; PackageManagerSettings* settings; RunWindow *runwindow; InstallDialog *installDialog; QList to_remove; QList to_install; - QString fileNameToInstall; - QCheckBox *_force_reinstall; - QCheckBox *_force_remove; - QCheckBox *_force_depends; -// void startDialog(); void makeLinks(Package*); void linkPackage( QString, QString ); void processLinkDir( QString , QString ); diff --git a/noncore/unsupported/oipkg/settings.h b/noncore/unsupported/oipkg/settings.h index f01cb69..9cb7a9b 100644 --- a/noncore/unsupported/oipkg/settings.h +++ b/noncore/unsupported/oipkg/settings.h @@ -8,7 +8,7 @@ class PackageManagerSettings : public PackageManagerSettingsBase //class PackageManagerSettings : private PackageManagerSettingsBase { - // Q_OBJECT + Q_OBJECT public: PackageManagerSettings( QWidget* , const char* , WFlags ); ~PackageManagerSettings(); -- cgit v0.9.0.2