-rw-r--r-- | noncore/unsupported/oipkg/TODO | 13 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/installdialog.cpp | 4 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/main.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/oipkg.pro | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 23 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.h | 15 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 10 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.h | 8 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistdoclnk.cpp | 8 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistdoclnk.h | 4 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistitem.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistview.cpp | 6 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.cpp | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.h | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 72 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.h | 10 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/settings.h | 2 |
18 files changed, 139 insertions, 49 deletions
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,13 +1,20 @@ -* 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 * dependency checking * create dest if it does not exist * allow reinstalling * 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 @@ -68,14 +68,14 @@ InstallDialog::InstallDialog( PackageManagerSettings* s, QWidget* parent, const _force_remove->setFont( _force_remove_font ); _force_remove->setText( tr( "-force-removal-of-essential-packages" ) ); 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") ); } /* * Destroys the object and frees any allocated resources */ 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 @@ -6,13 +6,13 @@ //#include <qmessagebox.h> int debugLevel; int main( int argc, char ** argv ) { printf("This is oipkg\n"); - printf("$ID$\n"); + printf("$Id$\n"); debugLevel = 2; if (argc > 1) { debugLevel = QString ( argv[1] ).toInt(); qDebug("setting debug level to %i",debugLevel); } 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 @@ -30,12 +30,15 @@ #include "utils.h" #include "packagelistitem.h" 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); listViewPackages = new PackageListView( this,"listViewPackages",settings ); setCentralWidget( listViewPackages ); listViewPackages->addList( tr("feeds"), &packageListServers ); 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 @@ -26,11 +26,12 @@ SOURCES = main.cpp \ pmipkg.cpp \ packagelistitem.cpp \ packagelist.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 @@ -6,18 +6,26 @@ #include <qtextstream.h> #include <stdlib.h> #include <unistd.h> #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); } void Package::init( PackageManagerSettings *s ) { settings = s; @@ -34,19 +42,20 @@ void Package::init( PackageManagerSettings *s ) _dest = settings->getDestinationName(); _link = settings->createLinks(); _versions=0; _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 ) ) { _name = QString( n ); }else{ @@ -54,13 +63,13 @@ Package::Package( QString n, PackageManagerSettings *s ) parseIpkgFile( n ); _useFileName = true; _fileName = QString( n ); } } -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 @@ -7,21 +7,22 @@ #include <qpixmap.h> #include <qdict.h> #include <qobject.h> #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* ); QString name(); QString installName(); 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 @@ -7,31 +7,31 @@ #include "debug.h" static QDict<Package> *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<Package>(); packageListAllRefCount++; sections << "All"; subSections.insert("All", new QStringList() ); QStringList *ss = subSections["All"]; *ss << "All"; aktSection = "All"; 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() { if (--packageListAllRefCount < 1 ) delete packageListAll; } 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 @@ -3,20 +3,20 @@ #include <qdict.h> #include "package.h" #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 ); Package* next(); Package* first(); 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 @@ -5,20 +5,20 @@ #include <qpe/config.h> #include <qlist.h> #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" ); docLnkDir = cfg.readEntry( "docLnkDir", "/root/" ); pvDebug(2,"opening DocLnkSet "+docLnkDir); doclnkset = new DocLnkSet(docLnkDir,"application/ipkg"); 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 @@ -6,14 +6,14 @@ 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(); private: DocLnkSet *doclnkset; QString docLnkDir; 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 @@ -156,11 +156,11 @@ void PackageListItem::displayDetails() sod += package->sizeUnits().isEmpty()?QString(""):QString(package->sizeUnits()); //sod += QString(package->dest().isEmpty()?"":QObject::tr(" on ")+package->dest()); sod += package->dest().isEmpty()?QString(""):QString(QObject::tr(" on ")+package->dest()); 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 @@ -56,13 +56,13 @@ void PackageListView::showPopup() popupMenu->clear(); destsMenu->clear(); 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++ ) { popupAction = new QAction( dests[i], QString::null, 0, this, 0 ); popupAction->addTo( destsMenu ); @@ -72,17 +72,17 @@ void PackageListView::showPopup() popupAction->setOn(true); }; } 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 ); } popupMenu->popup( QCursor::pos() ); } 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 @@ -238,12 +238,13 @@ void PackageManagerSettings::writeIpkgConfig(const QString& conffile) 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 for (int i = 0; i < installationSettingsCount; i++) { cfg.setGroup( "Setting_" + QString::number(i) ); 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 @@ -6,13 +6,13 @@ #include <qintdict.h> #include <qobject.h> class PackageManagerSettings : public PackageManagerSettingsBase { -// Q_OBJECT + Q_OBJECT public: PackageManagerSettings( QWidget* , const char* , WFlags ); ~PackageManagerSettings(); bool showDialog( int ) ; QString getDestinationUrl(); 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 @@ -1,12 +1,14 @@ #include "pmipkg.h" #include "pksettings.h" #include "package.h" #include "packagelistitem.h" -#include <qpe/process.h> +//#infdef OPROCESS +#include <opie/oprocess.h> +//#endif #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/stringutil.h> #include <qpe/qpeapplication.h> #include <qdir.h> #include <qfile.h> @@ -29,23 +31,40 @@ PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f ) : QObject ( p ) { 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 ) { 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(); else cmd += " -dest "+ dest; @@ -62,12 +81,47 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) } out( "Starting to "+ args+"\n"); 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<QCString> a = ipkgProcess->args(); + QValueList<QCString>::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]; QString lineStr, lineStrOld; sleep(1); cmd +=" 2>&1"; @@ -88,21 +142,22 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) out(lineStr); lineStrOld = lineStr; qApp->processEvents(); } pclose(fp); } +#endif //out( "Finished!"); pvDebug(2,QString(ret?"success\n":"failure\n")); return ret; } 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 ) { QString dest = settings->getDestinationUrlByName( d ); dest = dest==""?d:dest; @@ -239,12 +294,13 @@ void PmIpkg::commit() doIt(); runwindow->showMaximized(); runwindow->show(); } installDialog->close(); delete installDialog; + installDialog = 0; out(tr("\nAll done.")); } void PmIpkg::doIt() { runwindow->progress->setProgress(0); @@ -393,6 +449,18 @@ void PmIpkg::removeFile(const QString &fileName, const QString &dest) 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 @@ -1,10 +1,11 @@ #ifndef PMIPKG_H #define PMIPKG_H +#include <opie/oprocess.h> #include <qobject.h> #include <qlist.h> #include <qstring.h> #include <qwidget.h> #include "pksettings.h" #include "runwindow.h" @@ -37,23 +38,22 @@ public slots: void remove(); void installFile(const QString &fileName, const QString &dest=""); void removeFile(const QString &fileName, const QString &dest=""); 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<Package> to_remove; QList<Package> 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 ); bool runIpkg(const QString& args, const QString& dest="" ); void out( QString ); QStringList* getList( 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 @@ -5,13 +5,13 @@ #include <qintdict.h> class PackageManagerSettings : public PackageManagerSettingsBase //class PackageManagerSettings : private PackageManagerSettingsBase { - // Q_OBJECT + Q_OBJECT public: PackageManagerSettings( QWidget* , const char* , WFlags ); ~PackageManagerSettings(); bool showDialog( int ) ; QString getDestinationUrl(); |