24 files changed, 552 insertions, 234 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO index 790766c..fc2e8a4 100644 --- a/noncore/unsupported/oipkg/TODO +++ b/noncore/unsupported/oipkg/TODO @@ -7,3 +7,8 @@ * error handling * manage links * dependency checking +* create dest if it does not exist +* allow reinstalling +* handle different versions +* different types of filters and searches + i.e. name, desc, files etc
\ No newline at end of file diff --git a/noncore/unsupported/oipkg/debug.h b/noncore/unsupported/oipkg/debug.h index 206dea5..d20a5eb 100644 --- a/noncore/unsupported/oipkg/debug.h +++ b/noncore/unsupported/oipkg/debug.h @@ -6,7 +6,7 @@ extern int debugLevel; #define HACK - +#define PACKAGELISTLOCAL #define NEWLAYOUT #define pvDebug(I, S) \ diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index ca1e5e8..06828e0 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -23,6 +23,7 @@ #include <qtabwidget.h> #include <qcombobox.h> #include <qmessagebox.h> +#include <qpushbutton.h> #include <qlayout.h> #include "pksettingsbase.h" @@ -42,7 +43,9 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : // wait = new QMessageBox(this); // wait->setText(tr("Please wait")); ipkg = new PmIpkg( settings, this ); +// settings->setIpkg( ipkg ); packageList.setSettings( settings ); + packageListSearch.setSettings( settings ); packageList.update(); makeMenu(); makeChannel(); @@ -54,6 +57,14 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : connect( section, SIGNAL(activated(int)), SLOT(sectionChanged()) ); connect( subsection, SIGNAL(activated(int)), SLOT(subSectionChanged()) ); + + connect( settings->removeLinksButton, SIGNAL( clicked()), + SLOT(removeLinks()) ); + connect( settings->createLinksButton, SIGNAL( clicked()), + SLOT(createLinks()) ); + +// rootLocal = new QCheckListItem(listViewPackages,tr("local")); +// rootSearch = new QCheckListItem(listViewPackages,tr("ipkgfind")); displayList(); } @@ -97,14 +108,6 @@ void MainWindow::makeMenu() updateAction->addTo( toolBar ); updateAction->addTo( srvMenu ); -// could we use for find -// detailsAction = new QAction( tr( "Find" ), -// Resource::loadIconSet( "find" ), -// QString::null, 0, this, 0 ); -// connect( detailsAction, SIGNAL( activated() ), -// this , SLOT( showFind() ) ); -// detailsAction->addTo( toolBar ); - QAction *cfgact; cfgact = new QAction( tr( "Setups" ), @@ -126,6 +129,7 @@ void MainWindow::makeMenu() QAction *a; + // SECTIONS sectionBar = new QPEToolBar( this ); addToolBar( sectionBar, "Section", QMainWindow::Top, TRUE ); sectionBar->setHorizontalStretchable( true ); @@ -139,17 +143,16 @@ void MainWindow::makeMenu() a = new QAction( tr( "Close Section" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( sectionClose() ) ); a->addTo( sectionBar ); - setSections(); setSubSections(); - sectionAction = new QAction( tr( "Sections" ), QString::null, 0, this, 0 ); connect( sectionAction, SIGNAL( toggled(bool) ), this, SLOT( sectionShow(bool) ) ); sectionAction->setToggleAction( true ); sectionAction->addTo( viewMenu ); + //FIND findBar = new QPEToolBar(this); - addToolBar( findBar, "Search", QMainWindow::Top, TRUE ); + addToolBar( findBar, "Filter", QMainWindow::Top, TRUE ); label = new QLabel( tr("Filter: "), findBar ); label->setBackgroundColor( findBar->backgroundColor() ); findBar->setHorizontalStretchable( TRUE ); @@ -157,18 +160,42 @@ void MainWindow::makeMenu() findBar->setStretchableWidget( findEdit ); connect( findEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( displayList() ) ); - a = new QAction( tr( "Clear Find" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), findEdit, SLOT( clear() ) ); a->addTo( findBar ); a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); a->addTo( findBar ); - findAction = new QAction( tr( "Find" ), QString::null, 0, this, 0 ); + findAction = new QAction( tr( "Filter" ), QString::null, 0, this, 0 ); connect( findAction, SIGNAL( toggled(bool) ), this, SLOT( findShow(bool) ) ); findAction->setToggleAction( true ); findAction->addTo( viewMenu ); + //SEARCH + searchBar = new QPEToolBar(this); + addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); + label = new QLabel( tr("ipkgfind: "), searchBar ); + label->setBackgroundColor( searchBar->backgroundColor() ); + searchBar->setHorizontalStretchable( TRUE ); + searchEdit = new QLineEdit( searchBar, "seachEdit" ); + searchBar->setStretchableWidget( searchEdit ); +// connect( searchEdit, SIGNAL( textChanged( const QString & ) ), +// this, SLOT( displayList() ) ); + a = new QAction( tr( "Clear Search" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), searchEdit, SLOT( clear() ) ); + a->addTo( searchBar ); + searchCommit = new QAction( tr( "Do Search" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); + connect( searchCommit, SIGNAL( activated() ), SLOT( remotePackageQuery() ) ); + searchCommit->addTo( searchBar ); + a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( searchClose() ) ); + a->addTo( searchBar ); + searchAction = new QAction( tr( "Search" ), QString::null, 0, this, 0 ); + connect( searchAction, SIGNAL( toggled(bool) ), this, SLOT( searchShow(bool) ) ); + searchAction->setToggleAction( true ); + searchAction->addTo( viewMenu ); + + //DEST destBar = new QPEToolBar(this); addToolBar( destBar, "Destination", QMainWindow::Top, TRUE ); label = new QLabel( tr("Destination: "), destBar ); @@ -177,15 +204,15 @@ void MainWindow::makeMenu() destination = new QComboBox( false, destBar ); destination->insertStringList( settings->getDestinationNames() ); setComboName(destination,settings->getDestinationName()); -// connect( destination, SIGNAL(activated(int)), -// SLOT(activeDestinationChange(int)) ); + connect( destination, SIGNAL(activated(int)), + settings, SLOT(activeDestinationChange(int)) ); spacer = new QLabel( " ", destBar ); spacer->setBackgroundColor( destBar->backgroundColor() ); CheckBoxLink = new QCheckBox( tr("Link"), destBar); CheckBoxLink->setBackgroundColor( destBar->backgroundColor() ); CheckBoxLink->setChecked( settings->createLinks() ); -// connect( CheckBoxLink, SIGNAL(toggled(bool)), -// settings, SLOT(linkEnabled(bool)) ); + connect( CheckBoxLink, SIGNAL(toggled(bool)), + settings, SLOT(linkEnabled(bool)) ); destAction = new QAction( tr( "Destinations" ), QString::null, 0, this, 0 ); connect( destAction, SIGNAL( toggled(bool) ), SLOT( destShow(bool) ) ); a = new QAction( tr( "Close Destinations" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); @@ -200,6 +227,7 @@ void MainWindow::makeMenu() cfg.setGroup( "gui" ); findShow( cfg.readBoolEntry( "findBar", true ) ); + searchShow( cfg.readBoolEntry( "searchBar", true ) ); sectionShow( cfg.readBoolEntry( "sectionBar", true ) ); destShow( cfg.readBoolEntry( "destBar", false ) ); } @@ -209,6 +237,7 @@ MainWindow::~MainWindow() Config cfg( "oipkg", Config::User ); cfg.setGroup( "gui" ); cfg.writeEntry( "findBar", !findBar->isHidden() ); + cfg.writeEntry( "searchBar", !searchBar->isHidden() ); cfg.writeEntry( "sectionBar", !sectionBar->isHidden() ); cfg.writeEntry( "destBar", !destBar->isHidden() ); @@ -217,6 +246,7 @@ MainWindow::~MainWindow() void MainWindow::runIpkg() { packageList.allPackages(); + ipkg->loadList( packageListSearch ); ipkg->commit( packageList ); // ##### 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". @@ -254,12 +284,21 @@ void MainWindow::displayList() filterList(); listViewPackages->clear(); Package *pack = packageList.first(); + PackageListItem *item; + + QCheckListItem *rootLocal = new QCheckListItem(listViewPackages,tr("local")); + QCheckListItem *rootSearch = new QCheckListItem(listViewPackages,tr("ipkgfind")); while( pack ) { - if ( pack && (pack->name() != "") ) - listViewPackages->insertItem( new PackageListItem( listViewPackages, pack, settings ) ); + item = new PackageListItem( rootLocal, pack, settings ); pack = packageList.next(); } + pack = packageListSearch.first(); + while( pack ) + { + item = new PackageListItem( rootSearch, pack, settings ); + pack = packageListSearch.next(); + } } void MainWindow::sectionChanged() @@ -345,6 +384,19 @@ void MainWindow::findClose() findAction->setOn( false ); } +void MainWindow::searchShow(bool b) +{ + if (b) searchBar->show(); + else searchBar->hide(); + searchAction->setOn( b ); +} + +void MainWindow::searchClose() +{ + searchAction->setOn( false ); +} + + void MainWindow::destShow(bool b) { if (b) destBar->show(); @@ -420,3 +472,22 @@ void MainWindow::receive(const QCString &msg, const QByteArray &arg) pvDebug(2,"Huh what do ya want") } } + + +void MainWindow::createLinks() +{ + pvDebug(2,"creating links..."); + ipkg->createLinks( settings->destinationurl->text() ); +} + +void MainWindow::removeLinks() +{ + pvDebug(2,"removing links..."); + ipkg->removeLinks( settings->destinationurl->text() ); +} + +void MainWindow::remotePackageQuery() +{ + packageListSearch.query( searchEdit->text() ); + displayList(); +} diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h index 7615b09..4a73b78 100644 --- a/noncore/unsupported/oipkg/mainwindow.h +++ b/noncore/unsupported/oipkg/mainwindow.h @@ -7,6 +7,8 @@ #include <qpopupmenu.h> #include "packagelist.h" +#include "packagelistremote.h" +#include "packagelistlocal.h" #include "pmipkg.h" #include "pksettings.h" #include "packagelistview.h" @@ -46,11 +48,16 @@ public slots: void sectionShow(bool); void findClose(); void findShow(bool); + void searchClose(); + void searchShow(bool); void destClose(); void destShow(bool); void filterList(); + void createLinks(); + void removeLinks(); void receive (const QCString &, const QByteArray &); void setDocument (const QString &); + void remotePackageQuery(); private: void makeMenu(); @@ -61,18 +68,25 @@ private: PmIpkg* ipkg; PackageManagerSettings *settings; - PackageList packageList; + PackageListLocal packageList; + PackageListRemote packageListSearch; + PackageListView *listViewPackages; +// QCheckListItem* rootSearch; +// QCheckListItem* rootLocal; QAction *runAction; QAction *updateAction; QAction *findAction; - QAction *sectionAction; - QAction *destAction; - PackageListView *listViewPackages; QPEToolBar *findBar; QLineEdit *findEdit; + QAction *searchAction; + QAction *searchCommit; + QPEToolBar *searchBar; + QLineEdit *searchEdit; + QAction *sectionAction; QPEToolBar *sectionBar; QComboBox *section; QComboBox *subsection; + QAction *destAction; QPEToolBar *destBar; QComboBox *destination; QCheckBox* CheckBoxLink; diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro index c5d3b3d..98f92c8 100644 --- a/noncore/unsupported/oipkg/oipkg.pro +++ b/noncore/unsupported/oipkg/oipkg.pro @@ -7,13 +7,17 @@ HEADERS = mainwindow.h \ pmipkg.h \ utils.h \ packagelistitem.h \ + packagelistremote.h \ packagelist.h \ + packagelistlocal.h \ packagelistview.h \ package.h SOURCES = main.cpp \ mainwindow.cpp \ utils.cpp \ packagelistview.cpp \ + packagelistremote.cpp \ + packagelistlocal.cpp \ pksettings.cpp \ pmipkg.cpp \ packagelistitem.cpp \ diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 0499e19..6bb53a9 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -28,6 +28,7 @@ void Package::init( PackageManagerSettings *s ) _desc = ""; _name = ""; _toProcess = false; + _useFileName = false; _status = ""; _dest = settings->getDestinationName(); _link = settings->createLinks(); @@ -48,7 +49,8 @@ Package::Package( QString n, PackageManagerSettings *s ) }else{ parseIpkgFile( n ); _toProcess = true; - _packageName = QString( n ); + _useFileName = true; + _fileName = QString( n ); } } @@ -90,7 +92,7 @@ void Package::setValue( QString n, QString t ) }else if ( n == "Filename") { - + _fileName = t; }else if ( n == "Size") { @@ -118,6 +120,13 @@ QString Package::name() return _name; } + +QString Package::installName() +{ + if (_useFileName) return _fileName; + else return _name; +} + bool Package::installed() { return _status.contains("installed"); @@ -331,8 +340,13 @@ void Package::parseIpkgFile( QString file) } -QString Package::getPackageName() +//QString Package::getPackageName() +//{ +// if ( _packageName.isEmpty() ) return _name; +// else return _packageName; +//} + +void Package::instalFromFile(bool iff) { - if ( _packageName.isEmpty() ) return _name; - else return _packageName; + _useFileName = iff; } diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h index 49bb3bf..4618c3a 100644 --- a/noncore/unsupported/oipkg/package.h +++ b/noncore/unsupported/oipkg/package.h @@ -24,6 +24,7 @@ class Package //: public QObject void copyValues( Package* ); QString name() ; + QString installName() ; bool installed(); void setDesc( QString ); @@ -44,15 +45,17 @@ class Package //: public QObject void setOn(); bool link(); void setLink(bool); - void parseIpkgFile( QString );; + void parseIpkgFile( QString ); + void instalFromFile(bool iff=true); public slots: - QString getPackageName(); +// QString getPackageName(); void toggleProcess(); private: PackageManagerSettings *settings; - QString _packageName; +// QString _packageName; QString _name; + QString _fileName; bool _toProcess; bool _link; QString _status; @@ -62,6 +65,7 @@ private: QString _shortDesc; QString _desc; QString _dest; + bool _useFileName; void parsePackage( QStringList ); void init(PackageManagerSettings *); }; diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp index 035ec81..b892b30 100644 --- a/noncore/unsupported/oipkg/packagelist.cpp +++ b/noncore/unsupported/oipkg/packagelist.cpp @@ -4,7 +4,6 @@ #include <qfile.h> #include <qfileinfo.h> #include <qtextstream.h> -#include <qpe/config.h> #include "debug.h" @@ -12,19 +11,6 @@ PackageList::PackageList() : packageIter( packageList ) { empty=true; - { - Config cfg( "oipkg", Config::User ); - cfg.setGroup( "Common" ); - statusDir = cfg.readEntry( "statusDir", "" ); - listsDir = cfg.readEntry( "listsDir", "" ); - if ( statusDir=="" || ! QFileInfo(statusDir+"/status").isFile() ) - { - statusDir="/usr/lib/ipkg/"; - listsDir="/usr/lib/ipkg/lists/"; - cfg.writeEntry( "statusDir", statusDir ); - cfg.writeEntry( "listsDir", listsDir ); - } - } sections << "All"; subSections.insert("All", new QStringList() ); QStringList *ss = subSections["All"]; @@ -145,71 +131,36 @@ void PackageList::updateSections( Package* pack ) } - -/** No descriptions */ -void PackageList::parseStatus() -{ - QStringList dests = settings->getDestinationUrls(); - QStringList destnames = settings->getDestinationNames(); - QStringList::Iterator name = destnames.begin(); - for ( QStringList::Iterator dir = dests.begin(); dir != dests.end(); ++dir ) - { - pvDebug( 2,"Status: "+*dir+statusDir+"/status"); - readFileEntries( *dir+statusDir+"/status", *name ); - ++name; - }; -} - -void PackageList::parseList() -{ - QStringList srvs = settings->getActiveServers(); - - for ( QStringList::Iterator it = srvs.begin(); it != srvs.end(); ++it ) - { - pvDebug( 2, "List: "+listsDir+"/"+*it); - readFileEntries( listsDir+"/"+*it, "" ); - } -} - void PackageList::readFileEntries( QString filename, QString dest ) { + pvDebug(5,"PackageList::readFileEntries "+filename+" dest "+dest); QStringList packEntry; QFile f( filename ); if ( !f.open(IO_ReadOnly) ) return; QTextStream *statusStream = new QTextStream( &f ); while ( !statusStream ->eof() ) - { - QString line = statusStream->readLine(); - if ( line.find(QRegExp("[\n\t ]*")) || line == "" ) - { - //end of package - if ( ! packEntry.isEmpty() ) - { - Package *p = new Package( packEntry, settings ); - p->setDest( dest ); - if ( p ) - { - insertPackage( p ); - packEntry.clear(); - } - } - }else{ - packEntry << line; - }; + { + QString line = statusStream->readLine(); + if ( line.find(QRegExp("[\n\t ]*")) || line == "" ) + { + //end of package + if ( ! packEntry.isEmpty() ) + { + Package *p = new Package( packEntry, settings ); + p->setDest( dest ); + if ( p ) + { + insertPackage( p ); + packEntry.clear(); + } + } + }else{ + packEntry << line; + }; } return; } - -void PackageList::update() -{ - pvDebug( 2, "parseStatus"); - parseStatus(); - pvDebug( 2, "parseList"); - parseList(); - pvDebug( 2, "finished parsing"); -} - void PackageList::setSettings( PackageManagerSettings *s ) { settings = s; diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h index 7c326ca..acea3b9 100644 --- a/noncore/unsupported/oipkg/packagelist.h +++ b/noncore/unsupported/oipkg/packagelist.h @@ -6,12 +6,6 @@ #include "pksettings.h" #include "debug.h" -#define HACK -#ifdef HACK - static QString listsDir="/usr/lib/ipkg/"; - static QString statusDir="/usr/lib/ipkg/"; -#endif - class PackageList //:QObject { // Q_OBJECT @@ -20,7 +14,7 @@ public: PackageList(); PackageList( PackageManagerSettings* ); - ~PackageList(); + virtual ~PackageList(); void insertPackage( Package* ); Package* find( QString ); Package* next(); @@ -37,9 +31,9 @@ public: public slots: void setSection(QString); void setSubSection(QString); - void update(); + // virtual void update(); -private: +protected: int currentPackage; int packageCount; @@ -49,10 +43,6 @@ private: QDictIterator<Package> packageIter; bool empty; -#ifndef HACK - QString listsDir; - QString statusDir; -#endif QString aktSection; QString aktSubSection; QStringList sections; @@ -61,9 +51,7 @@ private: void updateSections( Package* ); - void parseStatus(); - void parseList(); - void readFileEntries( QString file, QString dest ); + void readFileEntries( QString file, QString dest="" ); }; diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp index 0c7c928..b7af9a6 100644 --- a/noncore/unsupported/oipkg/packagelistitem.cpp +++ b/noncore/unsupported/oipkg/packagelistitem.cpp @@ -13,6 +13,17 @@ static QPixmap *pm_install=0; PackageListItem::PackageListItem(QListView* lv, Package *pi, PackageManagerSettings *s) : QCheckListItem(lv,pi->name(),CheckBox) { + init(pi,s); +} + +PackageListItem::PackageListItem(QListViewItem *lvi, Package *pi, PackageManagerSettings *s) + : QCheckListItem(lvi,pi->name(),CheckBox) +{ + init(pi,s); +} + +void PackageListItem::init( Package *pi, PackageManagerSettings *s) +{ package = pi; settings = s; setExpandable( true ); diff --git a/noncore/unsupported/oipkg/packagelistitem.h b/noncore/unsupported/oipkg/packagelistitem.h index 54d9f9e..b128f0d 100644 --- a/noncore/unsupported/oipkg/packagelistitem.h +++ b/noncore/unsupported/oipkg/packagelistitem.h @@ -15,6 +15,7 @@ class PackageListItem : public QCheckListItem { public: + PackageListItem(QListViewItem*, Package*, PackageManagerSettings*); PackageListItem(QListView*, Package*, PackageManagerSettings*); void paintCell( QPainter*, const QColorGroup&, int, int, int ); void paintFocus( QPainter*, const QColorGroup&, const QRect& ); @@ -27,6 +28,7 @@ public: void displayDetails(); private: + void init(Package*, PackageManagerSettings*); QCheckListItem *nameItem; QCheckListItem *destItem; QCheckListItem *linkItem; diff --git a/noncore/unsupported/oipkg/packagelistlocal.cpp b/noncore/unsupported/oipkg/packagelistlocal.cpp new file mode 100644 index 0000000..6d931c8 --- a/dev/null +++ b/noncore/unsupported/oipkg/packagelistlocal.cpp @@ -0,0 +1,66 @@ +#include <qpe/config.h> +#include <qfile.h> +#include <qfileinfo.h> +#include <qtextstream.h> +#include <qstringlist.h> +#include "packagelistlocal.h" + +PackageListLocal::PackageListLocal() + : PackageList() +{ + Config cfg( "oipkg", Config::User ); + cfg.setGroup( "Common" ); + statusDir = cfg.readEntry( "statusDir", "" ); + listsDir = cfg.readEntry( "listsDir", "" ); + if ( statusDir=="" || ! QFileInfo(statusDir+"/status").isFile() ) + { + statusDir="/usr/lib/ipkg/"; + listsDir="/usr/lib/ipkg/lists/"; + cfg.writeEntry( "statusDir", statusDir ); + cfg.writeEntry( "listsDir", listsDir ); + } +} + +PackageListLocal::PackageListLocal(PackageManagerSettings* s) + : PackageList(s) +{ + PackageListLocal(); +} + +PackageListLocal::~PackageListLocal() +{ +} + +void PackageListLocal::parseStatus() +{ + QStringList dests = settings->getDestinationUrls(); + QStringList destnames = settings->getDestinationNames(); + QStringList::Iterator name = destnames.begin(); + for ( QStringList::Iterator dir = dests.begin(); dir != dests.end(); ++dir ) + { + pvDebug( 2,"Status: "+*dir+statusDir+"/status"); + readFileEntries( *dir+statusDir+"/status", *name ); + ++name; + }; +} + +void PackageListLocal::parseList() +{ + QStringList srvs = settings->getActiveServers(); + + for ( QStringList::Iterator it = srvs.begin(); it != srvs.end(); ++it ) + { + pvDebug( 2, "List: "+listsDir+"/"+*it); + readFileEntries( listsDir+"/"+*it ); + } +} + + +void PackageListLocal::update() +{ + pvDebug( 2, "parseStatus"); + parseStatus(); + pvDebug( 2, "parseList"); + parseList(); + pvDebug( 2, "finished parsing"); +} diff --git a/noncore/unsupported/oipkg/packagelistlocal.h b/noncore/unsupported/oipkg/packagelistlocal.h new file mode 100644 index 0000000..887126b --- a/dev/null +++ b/noncore/unsupported/oipkg/packagelistlocal.h @@ -0,0 +1,30 @@ +#ifndef PACKAGELISTLOCAL_H +#define PACKAGELISTLOCAL_H + +#include "packagelist.h" + + +#define HACK +#ifdef HACK + static QString listsDir="/usr/lib/ipkg/"; + static QString statusDir="/usr/lib/ipkg/"; +#endif + +class PackageListLocal : public PackageList { +public: + PackageListLocal(); + PackageListLocal( PackageManagerSettings* ); + virtual ~PackageListLocal(); + +public slots: + void update(); +private: +#ifndef HACK + QString listsDir; + QString statusDir; +#endif + void parseStatus(); + void parseList(); +}; + +#endif diff --git a/noncore/unsupported/oipkg/packagelistremote.cpp b/noncore/unsupported/oipkg/packagelistremote.cpp new file mode 100644 index 0000000..721d4a6 --- a/dev/null +++ b/noncore/unsupported/oipkg/packagelistremote.cpp @@ -0,0 +1,47 @@ + +#include "packagelistremote.h" + +#include <qstring.h> +#include <stdlib.h> +#include <unistd.h> + +PackageListRemote::PackageListRemote(PackageManagerSettings* s) + : PackageList(s) +{ + PackageListRemote(); +} + +PackageListRemote::PackageListRemote() + : PackageList() +{ +} + +PackageListRemote::~PackageListRemote() +{ +} + +void PackageListRemote::query(QString s) +{ + int r=0; + QString cmd = "wget"; + QString redirect = "/tmp/oipkg.query"; + + // use file for output + cmd += " --output-document="+redirect; +//http://ipkgfind.handhelds.org/packages.phtml?format=pda&query=ipkg&searchtype=package§ion= + QString server="http://ipkgfind.handhelds.org/"; + cmd += " \""+server+"/packages.phtml"; + cmd += "?format=pda&searchtype=package§ion="; + cmd += "&query="+s; + cmd += "\""; + + pvDebug(2,"search :"+cmd); + r = system(cmd.latin1()); + readFileEntries( redirect ); + +} + +void PackageListRemote::update() +{ + pvDebug(2,"PackageListRemote::update\ndoing nothing "); +} diff --git a/noncore/unsupported/oipkg/packagelistremote.h b/noncore/unsupported/oipkg/packagelistremote.h new file mode 100644 index 0000000..147da1e --- a/dev/null +++ b/noncore/unsupported/oipkg/packagelistremote.h @@ -0,0 +1,19 @@ +#ifndef PACKAGELISTREMOTE_H +#define PACKAGELISTREMOTE_H + +#include "packagelist.h" +#include "package.h" +#include "pksettings.h" +#include "debug.h" + +class PackageListRemote : public PackageList { +public: + PackageListRemote(); + PackageListRemote( PackageManagerSettings* s); + virtual ~PackageListRemote(); + void query(QString); +public slots: + void update(); +}; + +#endif diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp index 2915ac6..610a0e1 100644 --- a/noncore/unsupported/oipkg/packagelistview.cpp +++ b/noncore/unsupported/oipkg/packagelistview.cpp @@ -1,20 +1,3 @@ -/*************************************************************************** - packagelistview.cpp - description - ------------------- - begin : Sat Apr 27 2002 - copyright : (C) 2002 by tille - email : tille@handhelds.org - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - #include "packagelistview.h" #include <qpopupmenu.h> diff --git a/noncore/unsupported/oipkg/packagelistview.h b/noncore/unsupported/oipkg/packagelistview.h index a3db0d0..d371a34 100644 --- a/noncore/unsupported/oipkg/packagelistview.h +++ b/noncore/unsupported/oipkg/packagelistview.h @@ -48,7 +48,6 @@ public slots: void changePackageDest( int ); void setCurrent( QListViewItem* ); void stopTimer( QListViewItem* ); - /** No descriptions */ void toggleProcess(); }; diff --git a/noncore/unsupported/oipkg/pkfind.ui b/noncore/unsupported/oipkg/pkfind.ui deleted file mode 100644 index 7a24c00..0000000 --- a/noncore/unsupported/oipkg/pkfind.ui +++ b/dev/null @@ -1,51 +0,0 @@ -<!DOCTYPE UI><UI> -<class>Search</class> -<widget> - <class>QDialog</class> - <property stdset="1"> - <name>name</name> - <cstring>Form5</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>196</width> - <height>55</height> - </rect> - </property> - <property stdset="1"> - <name>caption</name> - <string>Search Packages</string> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>11</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel4</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Find:</string> - </property> - </widget> - <widget> - <class>QLineEdit</class> - <property stdset="1"> - <name>name</name> - <cstring>pattern</cstring> - </property> - </widget> - </hbox> -</widget> -</UI> diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp index 6c8dc2a..7e2ef10 100644 --- a/noncore/unsupported/oipkg/pksettings.cpp +++ b/noncore/unsupported/oipkg/pksettings.cpp @@ -134,6 +134,8 @@ void PackageManagerSettings::editDestination(int i) } else { destinationname->setEnabled(TRUE); destinationurl->setEnabled(TRUE); + createLinksButton->setEnabled(TRUE); + removeLinksButton->setEnabled(TRUE); } destinationname->setText( destinations->text(i) ); @@ -528,6 +530,7 @@ QStringList PackageManagerSettings::getDestinationNames() void PackageManagerSettings::linkEnabled( bool b ) { + pvDebug(2,"PackageManagerSettings::linkEnabled "+QString(b?"yes":"no")); activeLinkDestination->setEnabled( b ); } @@ -540,3 +543,22 @@ QComboBox* PackageManagerSettings::getDestCombo() { return new QComboBox(activeDestination); } + +void PackageManagerSettings::createLinksToDest() +{ + pvDebug(2,"creating links..."); +// emit doCreateLinks( destinationurl->text() ); +// ipkg->createLinks( destinationurl ); +} + +void PackageManagerSettings::removeLinksToDest() +{ + pvDebug(2,"removing links..."); +// emit doRemoveLinks( destinationurl->text() ); +// ipkg->removeLinks( destinationurl ); +} + +//void PackageManagerSettings::setIpkg( PmIpkg* i ) +//{ +// ipkg = i; +//} diff --git a/noncore/unsupported/oipkg/pksettings.h b/noncore/unsupported/oipkg/pksettings.h index fbb3b99..1632d4a 100644 --- a/noncore/unsupported/oipkg/pksettings.h +++ b/noncore/unsupported/oipkg/pksettings.h @@ -2,10 +2,12 @@ #define PACKAGEMANAGERSETTINGS_H #include "pksettingsbase.h" +//#include "pmipkg.h" #include <qintdict.h> +#include <qobject.h> -class PackageManagerSettings : private PackageManagerSettingsBase +class PackageManagerSettings : public PackageManagerSettingsBase { // Q_OBJECT public: @@ -22,23 +24,8 @@ public: QStringList getDestinationUrls(); QStringList getDestinationNames(); QString getDestinationUrlByName(QString); - /** No descriptions */ QComboBox* getDestCombo(); - -private: - QIntDict<QString> serverurlDic; - QIntDict<QString> destinationurlDic; - int ipkg_old; - int editedserver; - int editeddestination; - int currentSetting; - int installationSettingsCount; - bool changed; - - bool readIpkgConfig(const QString&); - void writeIpkgConfig(const QString&); - void writeSettings(); - void readSettings(); +// void setIpkg( PmIpkg* ); public slots: void writeInstallationSettings(); @@ -46,7 +33,8 @@ public slots: void writeCurrentInstallationSetting(); void readInstallationSetting(int); void installationSettingSetName(const QString &); - + void removeLinksToDest(); + void createLinksToDest(); void newServer(); void editServer(int); void removeDestination(); @@ -63,6 +51,24 @@ public slots: void removeInstallationSetting(); void renameInstallationSetting(); void activeServerChanged(); +signals: +// void doCreateLinks( QString dest ); +// void doRemoveLinks( QString dest ); + +private: + QIntDict<QString> serverurlDic; + QIntDict<QString> destinationurlDic; + int ipkg_old; + int editedserver; + int editeddestination; + int currentSetting; + int installationSettingsCount; + bool changed; + + bool readIpkgConfig(const QString&); + void writeIpkgConfig(const QString&); + void writeSettings(); + void readSettings(); }; #endif diff --git a/noncore/unsupported/oipkg/pksettingsbase.ui b/noncore/unsupported/oipkg/pksettingsbase.ui index fd6d208..5b83248 100644 --- a/noncore/unsupported/oipkg/pksettingsbase.ui +++ b/noncore/unsupported/oipkg/pksettingsbase.ui @@ -11,7 +11,7 @@ <rect> <x>0</x> <y>0</y> - <width>345</width> + <width>337</width> <height>454</height> </rect> </property> @@ -532,11 +532,11 @@ <grid> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>3</number> + <number>2</number> </property> <widget row="0" column="0" > <class>QLayoutWidget</class> @@ -712,6 +712,121 @@ </widget> </grid> </widget> + <widget row="4" column="0" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout11</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>createLinksButton</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>link to /</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>removeLinksButton</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Remove links</string> + </property> + </widget> + </hbox> + </widget> + <widget row="5" column="0" > + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox1</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string></string> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="0" column="0" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout12</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBoxvolatile</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>volatile</string> + </property> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>removeable</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>removeable</string> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> </grid> </widget> </widget> @@ -736,6 +851,20 @@ <receiver>Form4</receiver> <slot>activeServerChanged()</slot> </connection> + <connection> + <sender>createLinksButton</sender> + <signal>clicked()</signal> + <receiver>Form4</receiver> + <slot>createLinksToDest()</slot> + </connection> + <connection> + <sender>removeLinksButton</sender> + <signal>clicked()</signal> + <receiver>Form4</receiver> + <slot>removeLinksToDest()</slot> + </connection> + <slot access="public">activeServerChanged()</slot> + <slot access="public">createLinksToDest()</slot> <slot access="public">destNameChanged(const QString&)</slot> <slot access="public">destUrlChanged(const QString&)</slot> <slot access="public">editDestination(int)</slot> @@ -746,9 +875,9 @@ <slot access="public">newDestination()</slot> <slot access="public">newInstallationSetting()</slot> <slot access="public">newServer()</slot> - <slot access="public">activeServerChanged()</slot> <slot access="public">removeDestination()</slot> <slot access="public">removeInstallationSetting()</slot> + <slot access="public">removeLinksToDest()</slot> <slot access="public">removeServer()</slot> <slot access="public">renameInstallationSetting()</slot> <slot access="public">serverNameChanged(const QString&)</slot> diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 9f6429a..fe200f5 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -210,34 +210,31 @@ void PmIpkg::processLinkDir( QString file, QString dest ) } } -void PmIpkg::commit( PackageList pl ) +void PmIpkg::loadList( PackageList pl ) { - int sizecount = 0; - to_install.clear(); - to_remove.clear(); - QString rem="<b>"+tr("To remove:")+"</b><br>\n"; - QString inst="<b>"+tr("To install:")+"</b><br>\n"; for( Package *pack = pl.first();pack ; (pack = pl.next()) ) - { - if ( pack && (pack->name() != "") && pack) - { - if ( pack->toInstall() ) - { + { + if ( pack && (pack->name() != "") && pack) + { + if ( pack->toInstall() ) to_install.append( pack ); - sizecount += pack->size().toInt(); - inst += pack->name()+"\t("+tr("on ")+pack->dest()+")<br>"; - } - if ( pack->toRemove() ) - { + if ( pack->toRemove() ) to_remove.append( pack ); - sizecount += 1; - rem += pack->name()+"<br>"; - } - } - } + } + } +} +void PmIpkg::commit( PackageList pl ) +{ + sizecount = 0; + QString rem="<b>"+tr("To remove:")+"</b><br>\n"; + QString inst="<b>"+tr("To install:")+"</b><br>\n"; + loadList(pl); + for (uint i=0; i < to_remove.count(); i++) + sizecount += 1; + for (uint i=0; i < to_install.count(); i++) + sizecount += to_install.at(i)->size().toInt(); startDialog(); - } void PmIpkg::startDialog() @@ -266,7 +263,7 @@ void PmIpkg::startDialog() } QGroupBox *GroupBox1 = new QGroupBox( installDialog, "Ipkg" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3, GroupBox1->sizePolicy().hasHeightForWidth() ) ); + GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3, GroupBox1->sizePolicy().mayShrinkVertically() ) ); GroupBox1->setTitle( tr( "Ipkg options" ) ); GroupBox1->setColumnLayout(0, Qt::Vertical ); GroupBox1->layout()->setSpacing( 0 ); @@ -275,10 +272,10 @@ void PmIpkg::startDialog() GroupBox1Layout->setAlignment( Qt::AlignTop ); GroupBox1Layout->setSpacing( 3 ); GroupBox1Layout->setMargin( 3 ); - _force_depends = new QCheckBox( GroupBox1, "_force_depends" ); _force_depends->setText( tr( "-force-depends" ) ); _force_depends->setAutoResize( TRUE ); + _force_depends->setChecked(true); GroupBox1Layout->addWidget( _force_depends, 0, 0 ); _force_reinstall = new QCheckBox( GroupBox1, "_force_reinstall" ); _force_reinstall->setText( tr( "-force-reinstall" ) ); @@ -319,8 +316,8 @@ void PmIpkg::remove() out("<b>"+tr("Removing")+"<br>"+tr("please wait")+"</b><br><hr>"); QStringList *fileList; - for (Package *it=to_remove.first(); it != 0; it=to_remove.next() ) - { + for (Package *it=to_remove.first(); it != 0; it=to_remove.next() ) + { if ( it->link() )fileList = getList( it->name(), it->dest() ); if ( runIpkg("remove " + it->name()) == 0) { @@ -333,6 +330,7 @@ void PmIpkg::remove() processFileList( fileList, it->dest() ); } it->processed(); + out("<br><hr>"); }else{ out("<b>"+tr("Error while removing")+"</b><hr>"+it->name()); @@ -351,7 +349,7 @@ void PmIpkg::install() for (Package *it=to_install.first(); it != 0; it=to_install.next() ) { - if ( runIpkg("install " + it->getPackageName(), it->dest() ) == 0 ) + if ( runIpkg("install " + it->installName(), it->dest() ) == 0 ) { runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress()); linkOpp = createLink; diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index 0625032..2b89023 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -23,6 +23,7 @@ public: ~PmIpkg(); int linkOpp; + void loadList( PackageList ); void commit( PackageList ); void update(); // PackageList* getPackageList(); @@ -39,6 +40,7 @@ public slots: void removeLinks( const QString &dest ); private: + int sizecount; PackageManagerSettings* settings; RunWindow *runwindow; QDialog *installDialog; diff --git a/noncore/unsupported/oipkg/settings.h b/noncore/unsupported/oipkg/settings.h index e2072f1..3be4334 100644 --- a/noncore/unsupported/oipkg/settings.h +++ b/noncore/unsupported/oipkg/settings.h @@ -61,3 +61,7 @@ private: }; #endif + /** No descriptions */ + void createLinks(); + /** No descriptions */ + void removeLinks(); |