-rw-r--r-- | noncore/unsupported/oipkg/TODO | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/debug.h | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 115 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.h | 9 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/opie-oipkg.control | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 54 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.h | 22 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 46 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.h | 8 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistitem.cpp | 44 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistitem.h | 8 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.cpp | 24 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.h | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 112 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.h | 12 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/runwindow.ui | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/settings.h | 2 |
17 files changed, 312 insertions, 155 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO index c53ca93..744cba4 100644 --- a/noncore/unsupported/oipkg/TODO +++ b/noncore/unsupported/oipkg/TODO @@ -1,10 +1,7 @@ -* search * Settings Class -* make oipkg determine dest of "to remove" apps * tr() ;) * Dialog to display ipkg output live * parse "to install" and "to remove" from status * install local file -* install to dest with click on packet * qcop * error handling diff --git a/noncore/unsupported/oipkg/debug.h b/noncore/unsupported/oipkg/debug.h index c53e36c..e73b9b2 100644 --- a/noncore/unsupported/oipkg/debug.h +++ b/noncore/unsupported/oipkg/debug.h @@ -8,4 +8,5 @@ extern int debugLevel; #define HACK +#define NEWLAYOUT #define pvDebug(I, S) \ diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index c803ca0..25ca889 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -8,4 +8,5 @@ #include <qpe/resource.h> #include <qpe/qpetoolbar.h> +#include <qpe/qcopenvelope_qws.h> #include <qaction.h> #include <qmessagebox.h> @@ -30,8 +31,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : listViewPackages = new QListView( this,0,0 ); + listViewPackages->setSelectionMode(QListView::NoSelection); setCentralWidget( listViewPackages ); makeMenu(); - +#ifdef NEWLAYOUT + listViewPackages->addColumn( tr("Package") ); + listViewPackages->setRootIsDecorated( true ); +#endif +#ifndef NEWLAYOUT QFontMetrics fm = fontMetrics(); int wlw = width()*2; @@ -39,5 +45,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : // int w0 = fm.width(tr("Package"))+30; int w2 = fm.width("00000")+4; - int w1 = wlw-w2-w0-20; + int w1 = wlw-w2-w0-24; listViewPackages->addColumn( tr("Package"), w0 ); listViewPackages->addColumn( tr("Description"), w1 ); @@ -47,5 +53,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : listViewPackages->setColumnWidthMode(2,QListView::Manual); listViewPackages->setSelectionMode( QListView::Multi ); - +#endif connect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); @@ -54,5 +60,9 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ), this, SLOT( setCurrent( QListViewItem* ) ) ); - + connect( listViewPackages, SIGNAL( clicked( QListViewItem* ) ), + this, SLOT( stopTimer( QListViewItem* ) ) ); + + popupMenu = new QPopupMenu( this ); + settings = new PackageManagerSettings(this,0,TRUE); @@ -75,7 +85,8 @@ void MainWindow::makeMenu() // QPopupMenu *sectMenu = new QPopupMenu( menuBar ); - popupMenu = new QPopupMenu( this ); - - contextMenu = new QPopupMenu( this ); + popupMenu = new QPopupMenu( this ); + destsMenu = new QPopupMenu( popupMenu ); + popupTimer = new QTimer( this ); + connect( popupTimer, SIGNAL(timeout()), this, SLOT(showPopup()) ); setToolBarsMovable( false ); @@ -181,4 +192,12 @@ void MainWindow::makeMenu() findAction->setOn( true ); findAction->addTo( viewMenu ); + + #ifdef NEW + Config cfg( "oipkg", Config::User ); + cfg.setGroup( "Setting_" + QString::number( setting ) ); + CheckBoxLink->setChecked( cfg.readBoolEntry( "link", false ) ); + findShow(bool b) + sectionShow(bool b) + #endif } @@ -190,5 +209,10 @@ void MainWindow::runIpkg() { ipkg->commit( packageList ); -// updateList(); //to remove + // ##### If we looked in the list of files, we could send out accurate + // ##### messages. But we don't bother yet, and just do an "all". + QCopEnvelope e("QPE/System", "linkChanged(QString)"); + QString lf = QString::null; + e << lf; + displayList(); } @@ -201,5 +225,5 @@ void MainWindow::updateList() ipkg->update(); getList(); - t->stop(); + t->stop(); } @@ -225,5 +249,5 @@ void MainWindow::displayList() { if ( pack && (pack->name() != "") ) - listViewPackages->insertItem( new PackageListItem( listViewPackages, pack ) ); + listViewPackages->insertItem( new PackageListItem( listViewPackages, pack, settings ) ); pack = packageList.next(); } @@ -292,18 +316,22 @@ void MainWindow::showSettingsDst() void MainWindow::showDetails() { - if ( activePackage ) return; if ( details ) - { - details = new PackageDetails( this ); - connect( details->install, SIGNAL(clicked()), SLOT( toggleActivePackage() ) ); - connect( details->remove, SIGNAL(clicked()), SLOT( toggleActivePackage() ) ); - connect( details->ignore, SIGNAL(clicked()), details, SLOT(close())); - details->description->setTextFormat(RichText); - } - - details->setCaption("Package: " + activePackage->name()); - details->description->setText(activePackage->details() ); - details->install->setEnabled(!activePackage->installed()); - details->remove->setEnabled(activePackage->installed()); + { + details = new PackageDetails( this ); + connect( details->install, SIGNAL(clicked()), SLOT( toggleActivePackage() ) ); + connect( details->remove, SIGNAL(clicked()), SLOT( toggleActivePackage() ) ); + connect( details->ignore, SIGNAL(clicked()), details, SLOT(close())); + details->description->setTextFormat(RichText); + } + if ( !activePackage ) + { + details->description->setText(tr("no package selected")); + details->description->setText(tr("errmm...<br>...not working?")); + }else{ + details->setCaption("Package: " + activePackage->name()); + details->description->setText(activePackage->details() ); + details->install->setEnabled(!activePackage->installed()); + details->remove->setEnabled(activePackage->installed()); + } details->showMaximized(); } @@ -317,8 +345,9 @@ void MainWindow::toggleActivePackage() void MainWindow::setCurrent( QListViewItem* p ) { - pvDebug(2, "MainWindow::setCurrent "); - return; - pvDebug(2, "name "+((Package*)p)->name()); - activePackage = (Package*)p; + if ( !p ) return; + activePackageListItem = (PackageListItem*)p; + activePackage = activePackageListItem->getPackage(); + pvDebug(5, "start timer"); + popupTimer->start( 750, true ); } @@ -356,2 +385,34 @@ void MainWindow::rotateUpdateIcon() updateIcon = !updateIcon; } + +void MainWindow::showPopup() +{ + popupMenu->clear(); + destsMenu->clear(); + + QAction *popupAction; + popupMenu->insertItem( tr("Install to"), destsMenu ); + QStringList dests = settings->getDestinationNames(); + for (uint i = 0; i < dests.count(); i++ ) + { + popupAction = new QAction( dests[i], QString::null, 0, this, 0 ); + popupAction->addTo( destsMenu ); + } + connect( destsMenu, SIGNAL( activated( int ) ), + this, SLOT( changePackageDest( int ) ) ); + popupMenu->popup( QCursor::pos() ); +} + +void MainWindow::changePackageDest( int i ) +{ + activePackage->setDest( destsMenu->text(i) ); + activePackage->setOn(); + activePackage->setLink( settings->createLinks() ); + activePackageListItem->displayDetails(); +} + +void MainWindow::stopTimer( QListViewItem* ) +{ + pvDebug( 5, "stop timer" ); + popupTimer->stop(); +} diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h index 892d5e8..adc5e78 100644 --- a/noncore/unsupported/oipkg/mainwindow.h +++ b/noncore/unsupported/oipkg/mainwindow.h @@ -16,5 +16,5 @@ class QPEToolBar; class QLineEdit; class QListView; - +class PackageListItem; class MainWindow : public QMainWindow @@ -47,4 +47,7 @@ public slots: void findShow(bool); void filterList(); + void showPopup(); + void changePackageDest( int ); + void stopTimer( QListViewItem* ); private: @@ -58,4 +61,5 @@ private: PackageList packageList; Package *activePackage; + PackageListItem *activePackageListItem; QAction *runAction; QAction *detailsAction; @@ -64,5 +68,4 @@ private: QAction *sectionAction; QListView *listViewPackages; - QPopupMenu *contextMenu; QPEToolBar *findBar; QLineEdit *findEdit; @@ -70,5 +73,7 @@ private: QComboBox *section; QComboBox *subsection; + QTimer *popupTimer; QPopupMenu *popupMenu; + QPopupMenu *destsMenu; bool updateIcon; private slots: diff --git a/noncore/unsupported/oipkg/opie-oipkg.control b/noncore/unsupported/oipkg/opie-oipkg.control index 89cc0b4..2ffec71 100644 --- a/noncore/unsupported/oipkg/opie-oipkg.control +++ b/noncore/unsupported/oipkg/opie-oipkg.control @@ -5,5 +5,5 @@ Maintainer: Patrick S. Vogt <tille@almana.ch> Architecture: arm Version: $QPE_VERSION-$SUB_VERSION -Depends: opie-base ($QPE_VERSION) +Depends: opie-base ($QPE_VERSION), ipkg (>0.9) Description: Package Manager A GUI front-end to ipkg for the Opie environment. diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 1705f78..9f602b5 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -10,6 +10,12 @@ Package::~Package() } -Package::Package() +Package::Package( PackageManagerSettings *s ) { + init(s); +} + +void Package::init( PackageManagerSettings *s ) +{ + settings = s; _size = ""; _section = ""; @@ -20,16 +26,17 @@ Package::Package() _toProcess = false; _status = ""; + _dest = ""; } -Package::Package( QStringList pack ) +Package::Package( QStringList pack, PackageManagerSettings *s ) { - Package(); + init(s); parsePackage( pack ); _toProcess = false; } -Package::Package( QString n ) +Package::Package( QString n, PackageManagerSettings *s ) { - Package(); + init(s); _name = QString( n ); _toProcess = false; @@ -38,5 +45,5 @@ Package::Package( QString n ) Package::Package( Package *pi ) { - Package(); + init(pi->settings); copyValues( pi ); _toProcess = false; @@ -173,5 +180,5 @@ void Package::copyValues( Package* pack ) } -QString Package::getSection() +QString Package::section() { return _section; @@ -191,5 +198,5 @@ void Package::setSection( QString s) } -QString Package::getSubSection() +QString Package::subSection() { return _subsection; @@ -254,10 +261,37 @@ QString Package::details() } -/** No descriptions */ void Package::processed() { _toProcess = false; - //hack, but we're mot writing status anyway... + //hack, but we're not writing status anyway... if ( installed() ) _status = "install"; else _status = "installed"; } + +QString Package::dest() +{ + if ( installed()||(!installed() && _toProcess) ) + return _dest!=""?_dest:settings->getDestinationName(); + else return ""; +} + +void Package::setDest( QString d ) +{ + _dest = d; +} + +void Package::setOn() +{ + _toProcess = true; +} + +bool Package::link() +{ + if ( _dest == "root" || (!installed() && !_toProcess) ) return false; + return _link; +} + +void Package::setLink(bool b) +{ + _link = b; +} diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h index cf2af75..6c292ed 100644 --- a/noncore/unsupported/oipkg/package.h +++ b/noncore/unsupported/oipkg/package.h @@ -9,12 +9,14 @@ #include <qobject.h> +#include "pksettings.h" + class Package //: public QObject { // Q_OBJECT public: - Package(); + Package(PackageManagerSettings *); ~Package(); - Package( QStringList ); - Package( QString ); + Package( QStringList, PackageManagerSettings * ); + Package( QString, PackageManagerSettings * ); Package( Package* ); @@ -30,18 +32,24 @@ class Package //: public QObject QString size(); void setSection( QString ); - QString getSection(); - QString getSubSection(); + QString section(); + QString subSection(); QString details(); bool toProcess(); bool toInstall(); bool toRemove(); - /** No descriptions */ void processed(); + QString dest(); + void setDest( QString d ); + void setOn(); + bool link(); + void setLink(bool); public slots: void toggleProcess(); private: + PackageManagerSettings *settings; QString _name; bool _toProcess; + bool _link; QString _status; QString _size; @@ -50,5 +58,7 @@ private: QString _shortDesc; QString _desc; + QString _dest; void parsePackage( QStringList ); + void init(PackageManagerSettings *); }; diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp index 944bb83..035ec81 100644 --- a/noncore/unsupported/oipkg/packagelist.cpp +++ b/noncore/unsupported/oipkg/packagelist.cpp @@ -71,6 +71,6 @@ void PackageList::filterPackages( QString f ) { if ( - ((aktSection=="All")||(pack->getSection()==aktSection)) && - ((aktSubSection=="All")||(pack->getSubSection()==aktSubSection)) && + ((aktSection=="All")||(pack->section()==aktSection)) && + ((aktSubSection=="All")||(pack->subSection()==aktSubSection)) && pack->name().contains( f ) ) @@ -127,9 +127,9 @@ void PackageList::setSubSection( QString ssec ) void PackageList::updateSections( Package* pack ) { - QString s = pack->getSection(); + QString s = pack->section(); if ( s.isEmpty() || s == "") return; if ( sections.contains(s) ) return; sections += s; - QString ss = pack->getSubSection(); + QString ss = pack->subSection(); if ( ss.isEmpty() || ss == "" ) return; if ( !subSections[s] ) { @@ -151,8 +151,11 @@ void PackageList::parseStatus() { QStringList dests = settings->getDestinationUrls(); - for ( QStringList::Iterator it = dests.begin(); it != dests.end(); ++it ) + QStringList destnames = settings->getDestinationNames(); + QStringList::Iterator name = destnames.begin(); + for ( QStringList::Iterator dir = dests.begin(); dir != dests.end(); ++dir ) { - pvDebug( 2,"Status Dir: "+*it+statusDir+"/status"); - readFileEntries( *it+statusDir+"/status" ); + pvDebug( 2,"Status: "+*dir+statusDir+"/status"); + readFileEntries( *dir+statusDir+"/status", *name ); + ++name; }; } @@ -164,10 +167,10 @@ void PackageList::parseList() for ( QStringList::Iterator it = srvs.begin(); it != srvs.end(); ++it ) { - pvDebug( 2, "List Dir: "+listsDir+"/"+*it); - readFileEntries( listsDir+"/"+*it ); + pvDebug( 2, "List: "+listsDir+"/"+*it); + readFileEntries( listsDir+"/"+*it, "" ); } } -void PackageList::readFileEntries( QString filename ) +void PackageList::readFileEntries( QString filename, QString dest ) { QStringList packEntry; @@ -183,5 +186,6 @@ void PackageList::readFileEntries( QString filename ) if ( ! packEntry.isEmpty() ) { - Package *p = new Package( packEntry ); + Package *p = new Package( packEntry, settings ); + p->setDest( dest ); if ( p ) { @@ -200,9 +204,9 @@ void PackageList::readFileEntries( QString filename ) void PackageList::update() { - pvDebug( 3, "parseStatus"); + pvDebug( 2, "parseStatus"); parseStatus(); - pvDebug( 3, "parseList"); + pvDebug( 2, "parseList"); parseList(); - pvDebug( 3, "finished parsing"); + pvDebug( 2, "finished parsing"); } @@ -222,2 +226,16 @@ void PackageList::clear() packageList.clear(); } + +void PackageList::allPackages() +{ + packageList.clear(); + QDictIterator<Package> filterIter( origPackageList ); + filterIter.toFirst(); + Package *pack= filterIter.current() ; + while ( pack ) + { + packageList.insert( pack->name(), pack ); + ++filterIter; + pack = filterIter.current(); + } +} diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h index 4ce97af..7c326ca 100644 --- a/noncore/unsupported/oipkg/packagelist.h +++ b/noncore/unsupported/oipkg/packagelist.h @@ -13,5 +13,7 @@ #endif -class PackageList { +class PackageList //:QObject +{ +// Q_OBJECT public: // static QString all = QObject::tr("All"); @@ -30,6 +32,6 @@ public: void filterPackages( QString ); Package* getByName( QString ); - /** No descriptions */ void clear(); + void allPackages(); public slots: @@ -62,5 +64,5 @@ private: void parseStatus(); void parseList(); - void readFileEntries( QString ); + void readFileEntries( QString file, QString dest ); }; diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp index 5d08bb1..149ba35 100644 --- a/noncore/unsupported/oipkg/packagelistitem.cpp +++ b/noncore/unsupported/oipkg/packagelistitem.cpp @@ -2,4 +2,7 @@ #include <qpe/resource.h> +#include <qobject.h> + +#include "debug.h" static QPixmap *pm_uninstalled=0; @@ -8,8 +11,30 @@ static QPixmap *pm_uninstall=0; static QPixmap *pm_install=0; -PackageListItem::PackageListItem(QListView* lv, Package *pi) +PackageListItem::PackageListItem(QListView* lv, Package *pi, PackageManagerSettings *s) : QCheckListItem(lv,pi->name(),CheckBox) { package = pi; + settings = s; + setExpandable( true ); + QCheckListItem *item; +#ifndef NEWLAYOUT + item = new QCheckListItem( this, QObject::tr("Name") ); + item->setText(1,pi->name()); + item = new QCheckListItem( this, QObject::tr("Description") ); + item->setText(1,pi->desc()+"\ntest multi\nline"); + item = new QCheckListItem( this, QObject::tr("Size") ); + item->setText(1,pi->size()); + item = new QCheckListItem( this, QObject::tr("Destination") ); + item->setText(1,pi->getDest()); +#endif +#ifdef NEWLAYOUT + item = new QCheckListItem( this, QObject::tr("Name: ")+pi->name() ); + item = new QCheckListItem( this, QObject::tr("Description: ")+pi->desc() ); + item = new QCheckListItem( this, QObject::tr("Size: ")+pi->size() ); + destItem = new QCheckListItem( this, "" ); + linkItem = new QCheckListItem( this, "" ); + displayDetails(); +#endif + if (!pm_uninstalled) { pm_uninstalled = new QPixmap(Resource::loadPixmap("oipkg/uninstalled")); @@ -18,6 +43,8 @@ PackageListItem::PackageListItem(QListView* lv, Package *pi) pm_uninstall = new QPixmap(Resource::loadPixmap("oipkg/uninstall")); } +#ifndef NEWLAYOUT setText(1, package->shortDesc() ); setText(2, package->size() ); +#endif } @@ -94,4 +121,19 @@ void PackageListItem::setOn( bool b ) QCheckListItem::setOn( b ); package->toggleProcess(); +// if ( b ) +// { +// if ((package->dest()).isEmpty) +// package->setDest( settings->getDestinationName() ); +// }else{ +// package->setDest( QObject::tr("not installed")); +// } + package->setLink( settings->createLinks() ); + displayDetails(); +} + +void PackageListItem::displayDetails() +{ + linkItem->setText( 0, QObject::tr("Link: ")+QString(package->link()?QObject::tr("Yes"):QObject::tr("No")) ); + destItem->setText( 0, QObject::tr("Destination: ")+package->dest() ); repaint(); } diff --git a/noncore/unsupported/oipkg/packagelistitem.h b/noncore/unsupported/oipkg/packagelistitem.h index 6983e58..f695432 100644 --- a/noncore/unsupported/oipkg/packagelistitem.h +++ b/noncore/unsupported/oipkg/packagelistitem.h @@ -10,9 +10,11 @@ #include <qdict.h> +#include "pksettings.h" + class PackageListItem : public QCheckListItem { public: - PackageListItem(QListView*, Package* ); + PackageListItem(QListView*, Package*, PackageManagerSettings*); void paintCell( QPainter*, const QColorGroup&, int, int, int ); void paintFocus( QPainter*, const QColorGroup&, const QRect& ); @@ -23,6 +25,10 @@ public: bool isInstalled(){ return package->installed(); }; virtual void setOn ( bool ); + void displayDetails(); private: + QCheckListItem *destItem; + QCheckListItem *linkItem; + PackageManagerSettings *settings; Package *package; }; diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp index 32224b5..f84a9c4 100644 --- a/noncore/unsupported/oipkg/pksettings.cpp +++ b/noncore/unsupported/oipkg/pksettings.cpp @@ -470,4 +470,5 @@ QStringList PackageManagerSettings::getActiveServers() return sl; } + /** returns the destination listed in ipkg.conf */ QStringList PackageManagerSettings::getDestinationUrls() @@ -481,4 +482,27 @@ QStringList PackageManagerSettings::getDestinationUrls() } +/** returns the destination listed in ipkg.conf */ +QString PackageManagerSettings::getDestinationUrlByName(QString n) +{ + QStringList sl; + for (int i=0; i<(int)destinations->count(); i++) + { + if ( n == destinations->text(i)) return*destinationurlDic[i]; + } + return ""; +} + +/** returns the destination listed in ipkg.conf */ +QStringList PackageManagerSettings::getDestinationNames() +{ + QStringList sl; + for (int i=0; i<(int)destinations->count(); i++) + { + sl += destinations->text(i); + } + return sl; +} + + void PackageManagerSettings::linkEnabled( bool b ) { diff --git a/noncore/unsupported/oipkg/pksettings.h b/noncore/unsupported/oipkg/pksettings.h index 2982f1c..11ba55c 100644 --- a/noncore/unsupported/oipkg/pksettings.h +++ b/noncore/unsupported/oipkg/pksettings.h @@ -20,4 +20,7 @@ public: QStringList getActiveServers(); QStringList getDestinationUrls(); + QStringList getDestinationNames(); + QString getDestinationUrlByName(QString); + private: QIntDict<QString> serverurlDic; diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index eae73ad..3b31b4d 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -9,5 +9,4 @@ #include <qpe/config.h> #include <qpe/stringutil.h> -#include <qpe/qcopenvelope_qws.h> #include <qdir.h> #include <qfile.h> @@ -41,15 +40,8 @@ PmIpkg::~PmIpkg() //#define PROC #define SYSTEM -int PmIpkg::runIpkg(const QString& args) +int PmIpkg::runIpkg(const QString& args, const QString& dest ) { pvDebug(2,"PmIpkg::runIpkg "+args); - //to make script ipkg happy - pvDebug(2, "cd "+settings->getDestinationUrl()+"/tmp/ipkg"); - if (!QDir::setCurrent(settings->getDestinationUrl()+"/tmp/ipkg")) - { - QDir instDir = QDir(settings->getDestinationUrl()+"/tmp/ipkg"); - instDir.mkdir(settings->getDestinationUrl()+"/tmp/ipkg"); - } #ifdef PROC QStringList cmd = "/usr/bin/ipkg "; @@ -58,19 +50,25 @@ int PmIpkg::runIpkg(const QString& args) QString cmd = "/usr/bin/ipkg "; #endif - cmd += " -dest "+settings->getDestinationName(); + pvDebug( 3,"PmIpkg::runIpkg got dest="+dest); + if ( dest == "" ) + cmd += " -dest "+settings->getDestinationName(); + else + cmd += " -dest "+ dest; + cmd += " -force-defaults "; out( "<hr><br>Starting to "+ args+"<br>\n"); cmd += args; - out( "running:<br>\n"+cmd+"<br>\n" ); int r = 0; #ifdef PROC QString o = "start"; - Process ipkg( cmd ); + Process *ipkg = new Process( "ls");//cmd ); + out( "running:<br>\n"+ipkg->arguments().join(" ")+"<br>\n" ); QString description; - ipkg.exec("",o); - out( o ); + ipkg->exec("",o); +// out( o ); #endif #ifdef SYSTEM + out( "running:<br>\n"+cmd+"<br>\n" ); QString redirect = "/tmp/oipkg.pipe"; cmd += " | tee "+redirect+" 2>&1"; @@ -81,5 +79,5 @@ int PmIpkg::runIpkg(const QString& args) QString oldLine; while ( ! f.open(IO_ReadOnly) ) {}; - { + // { QTextStream t( &f ); // QString fp; @@ -87,8 +85,11 @@ int PmIpkg::runIpkg(const QString& args) { line = t.readLine(); - if ( line != oldLine ) out( line +"<br>" ); - oldLine = line; + if ( line != oldLine ) + { + out( line +"<br>" ); + oldLine = line; + } } - } +// } f.close(); out( "Finished!<br>"); @@ -98,10 +99,11 @@ int PmIpkg::runIpkg(const QString& args) } -void PmIpkg::makeLinks(QString pack) +void PmIpkg::makeLinks(Package *pack) { - pvDebug( 2, "PmIpkg::makeLinks "+ pack); + pvDebug( 2, "PmIpkg::makeLinks "+ pack->name()); + QString dest = settings->getDestinationUrlByName( pack->dest() ); + if (dest == "/" ) return; out( "<br>creating links<br>" ); - QString dest = settings->getDestinationUrl(); - out("for package "+pack+" in "+dest+"<br>"); + out("for package "+pack->name()+" in "+dest+"<br>"); { Config cfg( "oipkg", Config::User ); @@ -109,9 +111,10 @@ void PmIpkg::makeLinks(QString pack) QString statusDir = cfg.readEntry( "statusDir", "" ); } - QString fn = dest+"/"+statusDir+"/info/"+pack+".list"; + QString fn = dest+"/"+statusDir+"/info/"+pack->name()+".list"; QFile f( fn ); if ( ! f.open(IO_ReadOnly) ) { out( "<b>Panik!</b> Could not open:<br>"+fn ); + return; }; QTextStream t( &f ); @@ -127,6 +130,8 @@ void PmIpkg::makeLinks(QString pack) void PmIpkg::processLinkDir( QString file, QString dest ) { + if ( dest == "???" ) return; QString destFile = file; file = dest+"/"+file; + if (file == dest) return; QFileInfo fileInfo( file ); if ( fileInfo.isDir() ) @@ -167,4 +172,5 @@ void PmIpkg::commit( PackageList pl ) QString rem="<b>To remove:</b><br>\n"; QString inst="<b>To install:</b><br>\n";; + pl.allPackages(); for( Package *pack = pl.first();pack ; (pack = pl.next()) ) { @@ -173,22 +179,12 @@ void PmIpkg::commit( PackageList pl ) if ( pack->toInstall() ) { - #ifndef NEWLIST - to_install.append( pack->name() ); - #endif - #ifdef NEWLIST to_install.append( pack ); sizecount += pack->size().toInt(); - #endif - inst += pack->name()+"<br>"; + inst += pack->name()+"\t(on "+pack->dest()+")<br>"; } if ( pack->toRemove() ) { - #ifndef NEWLIST - to_remove.append( pack->name() ); - #endif - #ifdef NEWLIST to_remove.append( pack ); sizecount += 1; - #endif rem += pack->name()+"<br>"; } @@ -212,9 +208,4 @@ void PmIpkg::commit( PackageList pl ) runwindow->exec(); - // ##### If we looked in the list of files, we could send out accurate - // ##### messages. But we don't bother yet, and just do an "all". - QCopEnvelope e("QPE/System", "linkChanged(QString)"); - QString lf = QString::null; - e << lf; return; } @@ -234,16 +225,4 @@ void PmIpkg::remove() out("<hr><hr><b>"+tr("Removing")+"<br>"+tr("please wait")+"</b><br>"); - #ifndef NEWLIST - for (QStringList::ConstIterator it=to_remove.begin(); it!=to_remove.end(); ++it) - { - if ( runIpkg("remove " + *it) == 0) - { - - }else{ - out("<b>"+tr("Error while removing")+"</b>"+*it); - } - } -#endif - #ifdef NEWLIST for (Package *it=to_remove.first(); it != 0; it=to_remove.next() ) { @@ -257,5 +236,4 @@ void PmIpkg::remove() } } -#endif } @@ -266,24 +244,12 @@ void PmIpkg::install() show( true ); out("<hr><hr><b>"+tr("Installing")+"<br>"+tr("please wait")+"</b><br>"); - #ifndef NEWLIST - for (QStringList::ConstIterator it=to_install.begin(); it!=to_install.end(); ++it) - { - if ( runIpkg("install " + *it) == 0 ) - { - if ( settings->createLinks() ) - makeLinks( *it ); - }else{ - out("<b>"+tr("Error while installing")+"</b>"+*it); - } - } -#endif - #ifdef NEWLIST - for (Package *it=to_install.first(); it != 0; it=to_install.next() ) + for (Package *it=to_install.first(); it != 0; it=to_install.next() ) { - if ( runIpkg("install " + it->name()) == 0 ) + + if ( runIpkg("install " + it->name(), it->dest() ) == 0 ) { runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress()); - if ( settings->createLinks() ) - makeLinks( it->name() ); + if ( it->link() ) + makeLinks( it ); it->processed(); }else{ @@ -291,9 +257,7 @@ void PmIpkg::install() } } -#endif } void PmIpkg::linkDestination( const QString msg, const QByteArray dest ) -// add 3rd package parameter { qDebug("msg="+msg+" -- "+QString(dest) ); @@ -346,7 +310,7 @@ void PmIpkg::show(bool b) runwindow->showMaximized(); showButtons(b); -// if ( b ) + if ( b ) runwindow->progress->hide(); -// else -// runwindow->progress->show(); + else + runwindow->progress->show(); } diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index 2692017..c57adb7 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -12,5 +12,4 @@ #include "debug.h" -//#define NEWLIST class Package; class PmIpkg : public QObject @@ -30,18 +29,11 @@ private: PackageManagerSettings* settings; RunWindow *runwindow; -#ifndef NEWLIST - QStringList to_remove; - QStringList to_install; -#endif -#ifdef NEWLIST QList<Package> to_remove; QList<Package> to_install; -#endif bool runwindowopen; - void makeLinks(QString); + void makeLinks(Package*); void processLinkDir( QString, QString ); - - int runIpkg(const QString& args); + int runIpkg(const QString& args, const QString& dest="" ); void out( QString ); diff --git a/noncore/unsupported/oipkg/runwindow.ui b/noncore/unsupported/oipkg/runwindow.ui index 5359fe2..52da408 100644 --- a/noncore/unsupported/oipkg/runwindow.ui +++ b/noncore/unsupported/oipkg/runwindow.ui @@ -43,5 +43,5 @@ <property stdset="1"> <name>progress</name> - <number>42</number> + <number>0</number> </property> </widget> diff --git a/noncore/unsupported/oipkg/settings.h b/noncore/unsupported/oipkg/settings.h index 5df522b..cf6e614 100644 --- a/noncore/unsupported/oipkg/settings.h +++ b/noncore/unsupported/oipkg/settings.h @@ -21,6 +21,4 @@ public: QStringList getActiveServers(); QStringList getDestinationUrls(); - /** No descriptions */ - QComboBox getActiveDestinationCombo(); private: |