-rw-r--r-- | noncore/unsupported/oipkg/listviewitemoipkg.cpp | 38 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/listviewitemoipkg.h | 33 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.h | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/oipkg.pro | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 98 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/package.h | 22 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 34 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.h | 20 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistdoclnk.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistitem.cpp | 95 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistitem.h | 32 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistlocal.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistview.cpp | 91 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistview.h | 13 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 10 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.h | 8 |
16 files changed, 309 insertions, 192 deletions
diff --git a/noncore/unsupported/oipkg/listviewitemoipkg.cpp b/noncore/unsupported/oipkg/listviewitemoipkg.cpp new file mode 100644 index 0000000..30b5a5e --- a/dev/null +++ b/noncore/unsupported/oipkg/listviewitemoipkg.cpp @@ -0,0 +1,38 @@ +#include "listviewitemoipkg.h" +#include "packagelistview.h" + +#include <qlistview.h> + +ListViewItemOipkg::ListViewItemOipkg(QListView *parent, QString name, QCheckListItem::Type qct, Type type) + : QCheckListItem(parent,name,qct) +{ + _type = type; +} +ListViewItemOipkg::ListViewItemOipkg(QListView *parent, QString name, Type type) + : QCheckListItem(parent,name,CheckBox) +{ + _type = type; +} + +ListViewItemOipkg::ListViewItemOipkg(ListViewItemOipkg *parent, QString name, Type type) + : QCheckListItem(parent,name,CheckBox) +{ + _type = type; +} + +ListViewItemOipkg::ListViewItemOipkg(PackageListView *parent, QString name, Type type) + : QCheckListItem(parent,name,Controller) +{ + _type = type; +} + +ListViewItemOipkg::ListViewItemOipkg(ListViewItemOipkg *parent, Type type, QString name) + : QCheckListItem(parent,name,Controller) +{ + _type = type; +} + +ListViewItemOipkg::~ListViewItemOipkg() +{ +// delete _popupMenu; +} diff --git a/noncore/unsupported/oipkg/listviewitemoipkg.h b/noncore/unsupported/oipkg/listviewitemoipkg.h new file mode 100644 index 0000000..4f7d2d7 --- a/dev/null +++ b/noncore/unsupported/oipkg/listviewitemoipkg.h @@ -0,0 +1,33 @@ +#ifndef LISTVIEWITEMOIPKG_H +#define LISTVIEWITEMOIPKG_H + +#include <qpopupmenu.h> +#include <qstring.h> +#include <qlistview.h> +#include <qcheckbox.h> + +class PackageListItem; +class PackageListView; + +class ListViewItemOipkg : public QObject, public QCheckListItem +{ +Q_OBJECT +public: + enum Type {Package, Feed, Attribute}; + + ListViewItemOipkg(QListView *parent, QString name, QCheckListItem::Type qct, Type type); ListViewItemOipkg(QListView *parent, QString name, Type type); + ListViewItemOipkg(ListViewItemOipkg *parent, QString name, Type type); + ListViewItemOipkg(PackageListView *parent, QString name, Type type); + ListViewItemOipkg(ListViewItemOipkg *parent, Type type, QString name); + ~ListViewItemOipkg(); + + int getType() {return _type;}; + virtual QPopupMenu* getPopupMenu() {return 0;}; +protected slots: + virtual void menuAction(int ) {}; +protected: + int _type; + static QPopupMenu* _popupMenu; +}; + +#endif diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h index 354c585..f32352b 100644 --- a/noncore/unsupported/oipkg/mainwindow.h +++ b/noncore/unsupported/oipkg/mainwindow.h @@ -18,6 +18,7 @@ #include <qtimer.h> #include <qpopupmenu.h> +#include "package.h" #include "packagelist.h" #include "packagelistremote.h" #include "packagelistlocal.h" diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro index 986cbcd..230df2c 100644 --- a/noncore/unsupported/oipkg/oipkg.pro +++ b/noncore/unsupported/oipkg/oipkg.pro @@ -8,6 +8,7 @@ HEADERS = mainwindow.h \ packagelistdoclnk.h \ installdialog.h \ utils.h \ + listviewitemoipkg.h \ packagelistitem.h \ packagelistremote.h \ packagelist.h \ @@ -20,6 +21,7 @@ SOURCES = main.cpp \ packagelistdoclnk.cpp \ packagelistview.cpp \ installdialog.cpp \ + listviewitemoipkg.cpp \ packagelistremote.cpp \ packagelistlocal.cpp \ pksettings.cpp \ diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 3effb73..e020601 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -18,24 +18,23 @@ #include "debug.h" -Package::Package( QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QObject *parent, const char *name ) : QObject(parent,name) { } -Package::~Package() +OipkgPackage::~OipkgPackage() { } -Package::Package( PackageManagerSettings *s, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( PackageManagerSettings *s, QObject *parent, const char *name ) : QObject(parent,name) { - Package(parent,name); init(s); } -void Package::init( PackageManagerSettings *s ) +void OipkgPackage::init( PackageManagerSettings *s ) { settings = s; _size = ""; @@ -54,14 +53,14 @@ void Package::init( PackageManagerSettings *s ) _version=""; } -Package::Package( QStringList pack, PackageManagerSettings *s , QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QStringList pack, PackageManagerSettings *s , QObject *parent, const char *name ) : QObject(parent,name) { init(s); parsePackage( pack ); } -Package::Package( QString n, PackageManagerSettings *s, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QString n, PackageManagerSettings *s, QObject *parent, const char *name ) : QObject(parent,name) { init(s); @@ -76,7 +75,7 @@ Package::Package( QString n, PackageManagerSettings *s, QObject *parent, const c } } -Package::Package( Package *pi, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( OipkgPackage *pi, QObject *parent, const char *name ) : QObject(parent,name) { init(pi->settings); @@ -84,7 +83,7 @@ Package::Package( Package *pi, QObject *parent, const char *name ) } -void Package::setValue( QString n, QString t ) +void OipkgPackage::setValue( QString n, QString t ) { if ( n == "Package" ) { @@ -137,20 +136,20 @@ void Package::setValue( QString n, QString t ) } } -QString Package::name() +QString OipkgPackage::name() { if (_displayName.isEmpty() ) return _name; else return _displayName; } -QString Package::installName() +QString OipkgPackage::installName() { if (_useFileName) return _fileName; else return _name; } -QString Package::packageName() +QString OipkgPackage::packageName() { QString pn = installName(); pn = pn.right(pn.length()-pn.findRev("/")); @@ -158,7 +157,7 @@ QString Package::packageName() return pn; } -bool Package::installed() +bool OipkgPackage::installed() { if (_status.contains("installed")) { @@ -172,7 +171,7 @@ bool Package::installed() else if (_versions) { - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->status().contains("installed") @@ -184,11 +183,11 @@ bool Package::installed() return false; } -bool Package::otherInstalled() +bool OipkgPackage::otherInstalled() { if (_versions) { - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->installed()) return true; @@ -198,34 +197,34 @@ bool Package::otherInstalled() return false; } -void Package::setDesc( QString s ) +void OipkgPackage::setDesc( QString s ) { _desc = s; _shortDesc = s.left( s.find("\n") ); } -QString Package::desc() +QString OipkgPackage::desc() { return _desc; } -QString Package::shortDesc() +QString OipkgPackage::shortDesc() { return _shortDesc; } -QString Package::size() +QString OipkgPackage::size() { return _size; } -QString Package::version() +QString OipkgPackage::version() { return _version; } -QString Package::sizeUnits() +QString OipkgPackage::sizeUnits() { int i = _size.toInt(); int c = 0; @@ -241,31 +240,30 @@ QString Package::sizeUnits() return ret; } -bool Package::toProcess() +bool OipkgPackage::toProcess() { return _toProcess; } -bool Package::toRemove() +bool OipkgPackage::toRemove() { if ( _toProcess && installed() ) return true; else return false; } -bool Package::toInstall() +bool OipkgPackage::toInstall() { if ( _toProcess && !installed() ) return true; else return false; } -void Package::toggleProcess() +void OipkgPackage::toggleProcess() { _toProcess = ! _toProcess; } - -void Package::copyValues( Package* pack ) +void OipkgPackage::copyValues( OipkgPackage* pack ) { if (_size.isEmpty() && !pack->_size.isEmpty()) _size = QString( pack->_size ); if (_section.isEmpty() && !pack->_section.isEmpty()) _section = QString( pack->_section ); @@ -281,12 +279,12 @@ void Package::copyValues( Package* pack ) if (!installed() && _status.isEmpty() && !pack->_status.isEmpty()) _status = QString( pack->_status ); } -QString Package::section() +QString OipkgPackage::section() { return _section; } -void Package::setSection( QString s) +void OipkgPackage::setSection( QString s) { int i = s.find("/"); if ( i > 0 ) @@ -299,12 +297,12 @@ void Package::setSection( QString s) } } -QString Package::subSection() +QString OipkgPackage::subSection() { return _subsection; } -void Package::parsePackage( QStringList pack ) +void OipkgPackage::parsePackage( QStringList pack ) { if ( pack.isEmpty() ) return; int count = pack.count(); @@ -323,7 +321,7 @@ void Package::parsePackage( QStringList pack ) return; } -QString Package::details() +QString OipkgPackage::details() { QString status; Process ipkg_status(QStringList() << "ipkg" << "info" << name() ); @@ -362,7 +360,7 @@ QString Package::details() return description; } -void Package::processed() +void OipkgPackage::processed() { _toProcess = false; //hack, but we're not writing status anyway... @@ -370,36 +368,36 @@ void Package::processed() else _status = "installed"; } -QString Package::dest() +QString OipkgPackage::dest() { if ( installed()||(!installed() && _toProcess) ) return _dest!=""?_dest:settings->getDestinationName(); else return ""; } -void Package::setDest( QString d ) +void OipkgPackage::setDest( QString d ) { if ( d == "remote") _useFileName = true; else _dest = d; } -void Package::setOn() +void OipkgPackage::setOn() { _toProcess = true; } -bool Package::link() +bool OipkgPackage::link() { if ( _dest == "root" || (!installed() && !_toProcess) ) return false; return _link; } -void Package::setLink(bool b) +void OipkgPackage::setLink(bool b) { _link = b; } -void Package::parseIpkgFile( QString file) +void OipkgPackage::parseIpkgFile( QString file) { // 20020830 // a quick hack to make oipkg understand the new ipk format @@ -425,36 +423,36 @@ void Package::parseIpkgFile( QString file) } -//QString Package::getPackageName() +//QString OipkgPackage::getPackageName() //{ // if ( _packageName.isEmpty() ) return _name; // else return _packageName; //} -void Package::instalFromFile(bool iff) +void OipkgPackage::instalFromFile(bool iff) { _useFileName = iff; } -void Package::setName(QString n) +void OipkgPackage::setName(QString n) { _displayName = n; } -QDict<QString>* Package::getFields() +QDict<QString>* OipkgPackage::getFields() { return &_values; } -QString Package::status() +QString OipkgPackage::status() { return _status; } -bool Package::isOld() +bool OipkgPackage::isOld() { if (!_versions) return false; - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->version() > version() ) return true; ++other; @@ -462,18 +460,18 @@ bool Package::isOld() return false; } -bool Package::hasVersions() +bool OipkgPackage::hasVersions() { if (!_versions) return false; else return true; } -QDict<Package>* Package::getOtherVersions() +QDict<OipkgPackage>* OipkgPackage::getOtherVersions() { return _versions; } -void Package::setOtherVersions(QDict<Package> *v) +void OipkgPackage::setOtherVersions(QDict<OipkgPackage> *v) { _versions=v; } diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h index c147420..2334c31 100644 --- a/noncore/unsupported/oipkg/package.h +++ b/noncore/unsupported/oipkg/package.h @@ -19,19 +19,19 @@ #include "pksettings.h" -class Package : public QObject +class OipkgPackage : public QObject { Q_OBJECT public: - 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 ); + OipkgPackage(QObject *parent=0, const char *name=0); + OipkgPackage(PackageManagerSettings *s, QObject *parent=0, const char *name=0); + ~OipkgPackage(); + OipkgPackage( QStringList, PackageManagerSettings *s, QObject *parent=0, const char *name=0 ); + OipkgPackage( QString, PackageManagerSettings *s, QObject *parent=0, const char *name=0 ); + OipkgPackage( OipkgPackage*s, QObject *parent=0, const char *name=0 ); void setValue( QString, QString ); - void copyValues( Package* ); + void copyValues( OipkgPackage* ); QString name(); QString installName(); @@ -66,8 +66,8 @@ class Package : public QObject QDict<QString>* getFields(); QString status(); - QDict<Package>* getOtherVersions(); - void setOtherVersions(QDict<Package>*); + QDict<OipkgPackage>* getOtherVersions(); + void setOtherVersions(QDict<OipkgPackage>*); public slots: void toggleProcess(); @@ -90,7 +90,7 @@ private: QString _version; QString _dest; QDict<QString> _values; - QDict<Package> *_versions; + QDict<OipkgPackage> *_versions; bool _useFileName; void parsePackage( QStringList ); void init(PackageManagerSettings *); diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp index edb9cc5..5f79ec1 100644 --- a/noncore/unsupported/oipkg/packagelist.cpp +++ b/noncore/unsupported/oipkg/packagelist.cpp @@ -16,14 +16,14 @@ #include "debug.h" -static QDict<Package> *packageListAll; +static QDict<OipkgPackage> *packageListAll; static int packageListAllRefCount = 0; PackageList::PackageList(QObject *parent, const char *name) : QObject(parent,name), packageIter( packageList ) { empty=true; - if (!packageListAll) packageListAll = new QDict<Package>(); + if (!packageListAll) packageListAll = new QDict<OipkgPackage>(); packageListAllRefCount++; sections << "All"; subSections.insert("All", new QStringList() ); @@ -46,10 +46,10 @@ PackageList::~PackageList() } /** Inserts a package into the list */ -void PackageList::insertPackage( Package* pack ) +void PackageList::insertPackage( OipkgPackage* pack ) { if (!pack) return; - Package* p = packageListAll->find( pack->name() ); + OipkgPackage* p = packageListAll->find( pack->name() ); if ( p ) { if ( (p->version() == pack->version()) @@ -60,11 +60,11 @@ void PackageList::insertPackage( Package* pack ) delete pack; pack = p; } else { - QDict<Package> *packver = p->getOtherVersions(); + QDict<OipkgPackage> *packver = p->getOtherVersions(); // p->setName( pack->name()+"["+p->version()+"]" ); if (!packver) { - packver = new QDict<Package>(); + packver = new QDict<OipkgPackage>(); packver->insert( pack->name(), p ); p->setOtherVersions( packver ); } @@ -87,9 +87,9 @@ void PackageList::insertPackage( Package* pack ) void PackageList::filterPackages( QString f ) { packageList.clear(); - QDictIterator<Package> filterIter( origPackageList ); + QDictIterator<OipkgPackage> filterIter( origPackageList ); filterIter.toFirst(); - Package *pack= filterIter.current() ; + OipkgPackage *pack= filterIter.current() ; while ( pack ) { if ( @@ -105,18 +105,18 @@ void PackageList::filterPackages( QString f ) } } -Package* PackageList::find( QString n ) +OipkgPackage* PackageList::find( QString n ) { return packageList.find( n ); } -Package* PackageList::first() +OipkgPackage* PackageList::first() { packageIter.toFirst(); return packageIter.current(); } -Package* PackageList::next() +OipkgPackage* PackageList::next() { ++packageIter; return packageIter.current(); @@ -147,7 +147,7 @@ void PackageList::setSubSection( QString ssec ) aktSubSection = ssec; } -void PackageList::updateSections( Package* pack ) +void PackageList::updateSections( OipkgPackage* pack ) { QString s = pack->section(); if ( s.isEmpty() || s == "") return; @@ -182,7 +182,7 @@ void PackageList::readFileEntries( QString filename, QString dest ) //end of package if ( ! packEntry.isEmpty() ) { - Package *p = new Package( packEntry, settings ); + OipkgPackage *p = new OipkgPackage( packEntry, settings ); if ( p ) { p->setDest( dest ); @@ -197,7 +197,7 @@ void PackageList::readFileEntries( QString filename, QString dest ) //there might be no nl at the end of the package file if ( ! packEntry.isEmpty() ) { - Package *p = new Package( packEntry, settings ); + OipkgPackage *p = new OipkgPackage( packEntry, settings ); if ( p ) { p->setDest( dest ); @@ -214,7 +214,7 @@ void PackageList::setSettings( PackageManagerSettings *s ) settings = s; } -Package* PackageList::getByName( QString n ) +OipkgPackage* PackageList::getByName( QString n ) { return origPackageList[n]; } @@ -228,9 +228,9 @@ void PackageList::clear() void PackageList::allPackages() { packageList.clear(); - QDictIterator<Package> filterIter( origPackageList ); + QDictIterator<OipkgPackage> filterIter( origPackageList ); filterIter.toFirst(); - Package *pack= filterIter.current() ; + OipkgPackage *pack= filterIter.current() ; while ( pack ) { packageList.insert( pack->name(), pack ); diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h index 0c13688..88a8793 100644 --- a/noncore/unsupported/oipkg/packagelist.h +++ b/noncore/unsupported/oipkg/packagelist.h @@ -24,20 +24,20 @@ public: 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(); + void insertPackage( OipkgPackage* ); + OipkgPackage* find( QString ); + OipkgPackage* next(); + OipkgPackage* first(); QStringList getSections(); QStringList getSubSections(); void setSettings( PackageManagerSettings* ); void filterPackages( QString ); - Package* getByName( QString ); + OipkgPackage* getByName( QString ); void clear(); void allPackages(); - QDict<Package> *versions; + QDict<OipkgPackage> *versions; public slots: void setSection(QString); @@ -49,9 +49,9 @@ protected: int packageCount; PackageManagerSettings *settings; - QDict<Package> packageList; - QDict<Package> origPackageList; - QDictIterator<Package> packageIter; + QDict<OipkgPackage> packageList; + QDict<OipkgPackage> origPackageList; + QDictIterator<OipkgPackage> packageIter; bool empty; QString aktSection; @@ -61,7 +61,7 @@ protected: QDict<bool> sectionsDict; - void updateSections( Package* ); + void updateSections( OipkgPackage* ); void readFileEntries( QString file, QString dest="" ); }; diff --git a/noncore/unsupported/oipkg/packagelistdoclnk.cpp b/noncore/unsupported/oipkg/packagelistdoclnk.cpp index 76e91ff..a7a6f70 100644 --- a/noncore/unsupported/oipkg/packagelistdoclnk.cpp +++ b/noncore/unsupported/oipkg/packagelistdoclnk.cpp @@ -48,6 +48,6 @@ void PackageListDocLnk::update() QList<DocLnk> packlist = doclnkset->children(); for (DocLnk *pack =packlist.first(); pack != 0; pack=packlist.next() ) { - insertPackage( new Package(pack->file(), settings ) ); + insertPackage( new OipkgPackage(pack->file(), settings ) ); } } diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp index 03bf477..4380393 100644 --- a/noncore/unsupported/oipkg/packagelistitem.cpp +++ b/noncore/unsupported/oipkg/packagelistitem.cpp @@ -11,6 +11,8 @@ #include <qpe/resource.h> #include <qobject.h> +#include <qpopupmenu.h> +#include <qaction.h> #include "debug.h" @@ -23,36 +25,49 @@ static QPixmap *pm_install=0; static QPixmap *pm_uninstalled_old_installed_new=0; static QPixmap *pm_uninstalled_installed_old=0; -PackageListItem::PackageListItem(QListView* lv, Package *pi, PackageManagerSettings *s) - : QCheckListItem(lv,pi->name(),CheckBox) +PackageListItem::PackageListItem(ListViewItemOipkg *parent, QString name, Type ittype) + : ListViewItemOipkg(parent,name,ittype) +{ + +} + +PackageListItem::PackageListItem(QListView* lv, OipkgPackage *pi, PackageManagerSettings *s) + : ListViewItemOipkg(lv,pi->name(),ListViewItemOipkg::Package) { init(pi,s); } -PackageListItem::PackageListItem(QListViewItem *lvi, Package *pi, PackageManagerSettings *s) - : QCheckListItem(lvi,pi->name(),CheckBox) +PackageListItem::PackageListItem(ListViewItemOipkg *lvi, OipkgPackage *pi, PackageManagerSettings *s) + : ListViewItemOipkg(lvi,pi->name(),ListViewItemOipkg::Package) { init(pi,s); } +PackageListItem::~PackageListItem() +{ + delete popupMenu; + delete destsMenu; +} -void PackageListItem::init( Package *pi, PackageManagerSettings *s) +void PackageListItem::init( OipkgPackage *pi, PackageManagerSettings *s) { + popupMenu = new QPopupMenu( 0 ); + destsMenu = new QPopupMenu( 0 ); package = pi; settings = s; setExpandable( true ); - QCheckListItem *item; - nameItem = new QCheckListItem( this, "" ); - 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, "" ); - statusItem = new QCheckListItem( this, "" ); - QCheckListItem *otherItem = new QCheckListItem( this, QObject::tr("other") ); - item = new QCheckListItem( otherItem, QObject::tr("Install Name: ")+pi->installName() ); + ListViewItemOipkg *item; + nameItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute,"name" ); + item = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("Description: ")+pi->desc() ); + item = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("Size: ")+pi->size() ); + destItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "dest" ); + linkItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "link" ); + statusItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "status" ); + ListViewItemOipkg *otherItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("other") ); + item = new ListViewItemOipkg( otherItem, ListViewItemOipkg::Attribute, QObject::tr("Install Name: ")+pi->installName() ); QDict<QString> *fields = pi->getFields(); QDictIterator<QString> it( *fields ); while ( it.current() ) { - item = new QCheckListItem( otherItem, QString(it.currentKey()+": "+*it.current()) ); + item = new ListViewItemOipkg( otherItem, ListViewItemOipkg::Attribute, QString(it.currentKey()+": "+*it.current()) ); ++it; } displayDetails(); @@ -172,3 +187,53 @@ void PackageListItem::displayDetails() statusItem->setText( 0, QObject::tr("Status: ")+package->status() ); repaint(); } + +QPopupMenu* PackageListItem::getPopupMenu() +{ + popupMenu->clear(); + destsMenu->clear(); + + QAction *popupAction; + qDebug("PackageListItem::showPopup "); + + if (!package->installed()){ + popupMenu->insertItem( QObject::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, popupMenu, 0 ); + popupAction->addTo( destsMenu ); + if ( dests[i] == ad && getPackage()->toInstall() ) + { + popupAction->setToggleAction( true ); + popupAction->setOn(true); + } + } + connect( destsMenu, SIGNAL( activated( int ) ), + this, SLOT( menuAction( int ) ) ); + popupMenu->popup( QCursor::pos() ); + }else{ + popupMenu->insertItem( QObject::tr("Remove")); + connect( popupMenu, SIGNAL( activated( int ) ), + this, SLOT( menuAction( int ) ) ); + popupMenu->popup( QCursor::pos() ); + } + return popupMenu; +} + +void PackageListItem::menuAction( int i ) +{ + if (package->installed()){ + package->setDest( destsMenu->text(i) ); + package->setLink( settings->createLinks() ); + } + package->setOn(); + displayDetails(); +} + +//void PackageListItem::toggleProcess() +//{ +// package->toggleProcess() ; +// displayDetails(); +//}
\ No newline at end of file diff --git a/noncore/unsupported/oipkg/packagelistitem.h b/noncore/unsupported/oipkg/packagelistitem.h index dba44f7..ca0cf17 100644 --- a/noncore/unsupported/oipkg/packagelistitem.h +++ b/noncore/unsupported/oipkg/packagelistitem.h @@ -10,40 +10,54 @@ #ifndef PK_LISTITEM_H #define PK_LISTITEM_H -#include "package.h" #include <qstring.h> -#include <qlistview.h> +//#include <qlistview.h> #include <qpainter.h> #include <qpixmap.h> #include <qdict.h> +#include "listviewitemoipkg.h" +#include "package.h" #include "pksettings.h" -class PackageListItem -: public QCheckListItem +class QPopupMenu; + +class PackageListItem : public ListViewItemOipkg { public: - PackageListItem(QListViewItem*, Package*, PackageManagerSettings*); - PackageListItem(QListView*, Package*, PackageManagerSettings*); + PackageListItem(ListViewItemOipkg *parent, QString name, Type ittype); + PackageListItem( + ListViewItemOipkg *parent, + OipkgPackage *pack, + PackageManagerSettings *s); + PackageListItem(QListView*, OipkgPackage*, PackageManagerSettings*); + ~PackageListItem(); void paintCell( QPainter*, const QColorGroup&, int, int, int ); void paintFocus( QPainter*, const QColorGroup&, const QRect& ); QPixmap statePixmap() const; QString key( int, bool ) const; - Package* getPackage() { return package; } ; + OipkgPackage* getPackage() { return package; } ; QString getName() { return package->name(); } ; bool isInstalled(){ return package->installed(); }; virtual void setOn ( bool ); void displayDetails(); private: - void init(Package*, PackageManagerSettings*); + QPopupMenu *popupMenu; + QPopupMenu *destsMenu; + void init(OipkgPackage*, PackageManagerSettings*); + virtual QPopupMenu* getPopupMenu(); + static QPopupMenu *_destsMenu; QCheckListItem *nameItem; QCheckListItem *destItem; QCheckListItem *linkItem; QCheckListItem *statusItem; PackageManagerSettings *settings; - Package *package; + OipkgPackage *package; +protected slots: + // void toggleProcess(); + virtual void menuAction( int ); }; diff --git a/noncore/unsupported/oipkg/packagelistlocal.cpp b/noncore/unsupported/oipkg/packagelistlocal.cpp index b8a19253..2fe75bc 100644 --- a/noncore/unsupported/oipkg/packagelistlocal.cpp +++ b/noncore/unsupported/oipkg/packagelistlocal.cpp @@ -69,7 +69,7 @@ void PackageListLocal::update() { pvDebug( 2, "parseStatus"); parseStatus(); - pvDebug( 2, "parseList"); + pvDebug( 2, "parseList "+listsDir); parseList(); pvDebug( 2, "finished parsing"); } diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp index 0d6fa80..3c7435d 100644 --- a/noncore/unsupported/oipkg/packagelistview.cpp +++ b/noncore/unsupported/oipkg/packagelistview.cpp @@ -12,6 +12,7 @@ #include <qpopupmenu.h> #include <qaction.h> +#include "listviewitemoipkg.h" #include "packagelistitem.h" #include "pksettings.h" @@ -19,8 +20,6 @@ PackageListView::PackageListView(QWidget *p, const char* n, PackageManagerSettin : QListView(p,n) { settings = s; - popupMenu = new QPopupMenu( this ); - destsMenu = new QPopupMenu( popupMenu ); popupTimer = new QTimer( this ); setSelectionMode(QListView::NoSelection); addColumn( tr("Package") ); @@ -41,58 +40,38 @@ PackageListView::PackageListView(QWidget *p, const char* n, PackageManagerSettin void PackageListView::setCurrent( QListViewItem* p ) { - if ( !p ) return; - activePackageListItem = (PackageListItem*)p; - activePackage = activePackageListItem->getPackage(); - if (!activePackage) - { -// QDictIterator<QCheckListItem> it( rootItems ); -// while ( it.current() ) + qDebug("PackageListView::setCurrent "); + activeItem = (ListViewItemOipkg*)p; + + if ( activeItem != 0 ) popupTimer->start( 750, true ); + +// if ( activeItem->getType() != ListViewItemOipkg::Package ){ +// qDebug("PackageListView::setCurrent !p "); +// activePackage = 0; +// activePackageListItem = 0; +// qDebug("PackageListView::setCurrent returning "); +// return; +// }; +// activePackageListItem = (PackageListItem*)p; +// activePackage = activePackageListItem->getPackage(); +// if (activePackage == 0 ) // { -// if ( it.current()==p ) -// pvDebug(2,"current item"); -// ++it; +// qDebug("PackageListView::setCurrent if (!activePackage)"); +// return; // } - return; - } - popupTimer->start( 750, true ); + + qDebug("PackageListView::setCurrent popupTimer->start"); } void PackageListView::showPopup() { - popupMenu->clear(); - destsMenu->clear(); - - QAction *popupAction; - if ( !activePackage->installed() ) - { - 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 ); - if ( dests[i] == ad && activePackage->toInstall() ) - { - popupAction->setToggleAction( true ); - popupAction->setOn(true); - }; - } - connect( destsMenu, SIGNAL( activated( int ) ), - this, SLOT( changePackageDest( int ) ) ); - }else{ - popupAction = new QAction( tr("Remove"),QString::null, 0, this, 0 ); - popupAction->addTo( popupMenu ); - connect( popupAction, SIGNAL( activated() ), - this , SLOT( toggleProcess() ) ); - popupAction = new QAction( tr("Reinstall"),QString::null, 0, this, 0 ); - popupAction->addTo( popupMenu ); - popupAction->setEnabled( false ); - } - popupMenu->popup( QCursor::pos() ); + qDebug("PackageListView::showPopup"); + QPopupMenu *popup = activeItem->getPopupMenu(); + if (popup == 0) return; + popup->popup( QCursor::pos() ); + qDebug("PackageListView::showPopup"); } void PackageListView::stopTimer( QListViewItem* ) @@ -101,27 +80,13 @@ void PackageListView::stopTimer( QListViewItem* ) } -void PackageListView::changePackageDest( int i ) -{ - activePackage->setDest( destsMenu->text(i) ); - activePackage->setOn(); - activePackage->setLink( settings->createLinks() ); - activePackageListItem->displayDetails(); -} - -void PackageListView::toggleProcess() -{ - activePackage->toggleProcess() ; - activePackageListItem->displayDetails(); -} - void PackageListView::display() { QDictIterator<PackageList> list( PackageLists ); PackageList *packlist; - Package *pack; + OipkgPackage *pack; PackageListItem *item; - QCheckListItem *rootItem; + ListViewItemOipkg *rootItem; QListViewItem* it; QListViewItem* itdel; while ( list.current() ) { @@ -148,6 +113,6 @@ void PackageListView::display() void PackageListView::addList( QString n, PackageList* pl) { PackageLists.insert(n, pl); - QCheckListItem *item = new QCheckListItem(this,n); + ListViewItemOipkg *item = new ListViewItemOipkg(this,n,ListViewItemOipkg::Feed); rootItems.insert(n, item); } diff --git a/noncore/unsupported/oipkg/packagelistview.h b/noncore/unsupported/oipkg/packagelistview.h index 3c09ba8..17dcb95 100644 --- a/noncore/unsupported/oipkg/packagelistview.h +++ b/noncore/unsupported/oipkg/packagelistview.h @@ -18,12 +18,14 @@ #include <qtimer.h> #include <qwidget.h> #include <qpopupmenu.h> +#include "listviewitemoipkg.h" #include "packagelist.h" #include "debug.h" class PackageListItem; -class Package; +class OipkgPackage; class PackageManagerSettings; +//class ListViewItemOipkg; class PackageListView : public QListView { @@ -36,18 +38,17 @@ public: QTimer *popupTimer; private: QDict<PackageList> PackageLists; - QDict<QCheckListItem> rootItems; + QDict<ListViewItemOipkg> rootItems; PackageManagerSettings *settings; - Package *activePackage; - PackageListItem *activePackageListItem; +// OipkgPackage *activePackage; +// PackageListItem *activePackageListItem; + ListViewItemOipkg *activeItem; QPopupMenu *popupMenu; QPopupMenu *destsMenu; public slots: void showPopup(); - void changePackageDest( int ); void setCurrent( QListViewItem* ); void stopTimer( QListViewItem* ); - void toggleProcess(); void display(); }; diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 2ed313c..cfaadbf 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -114,7 +114,7 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) return ret; } -void PmIpkg::makeLinks(Package *pack) +void PmIpkg::makeLinks(OipkgPackage *pack) { pvDebug( 2, "PmIpkg::makeLinks "+ pack->name()); QString pn = pack->name(); @@ -232,7 +232,7 @@ void PmIpkg::processLinkDir( QString file, QString dest ) void PmIpkg::loadList( PackageList *pl ) { - for( Package *pack = pl->first();pack ; (pack = pl->next()) ) + for( OipkgPackage *pack = pl->first();pack ; (pack = pl->next()) ) { if ( pack && (pack->name() != "") && pack) { @@ -291,7 +291,7 @@ void PmIpkg::remove() out(tr("Removing")+"\n"+tr("please wait")+"\n\n"); - QStringList *fileList; + QStringList *fileList = new QStringList; for (uint i=0; i < to_remove.count(); i++) { if ( to_remove.at(i)->link() ) fileList = getList( to_remove.at(i)->name(), to_remove.at(i)->dest() ); @@ -414,7 +414,7 @@ void PmIpkg::installFile(const QString &fileName, const QString &dest) to_install.clear(); to_remove.clear(); pvDebug( 2,"PmIpkg::installFile "+ fileName); - Package *p = new Package(fileName,settings); + OipkgPackage *p = new OipkgPackage(fileName,settings); if ( dest!="") p->setDest( dest ); to_install.append( p ); commit(); @@ -427,7 +427,7 @@ void PmIpkg::removeFile(const QString &fileName, const QString &dest) to_install.clear(); to_remove.clear(); pvDebug( 2,"PmIpkg::removeFile "+ fileName); - Package *p = new Package(fileName,settings); + OipkgPackage *p = new OipkgPackage(fileName,settings); if ( dest!="") p->setDest( dest ); to_remove.append( p ); commit(); diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index 2f4d6ae..cb0759a 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -23,7 +23,7 @@ #define createLink 0 #define removeLink 1 -class Package; +class OipkgPackage; class PmIpkg : public QObject { Q_OBJECT @@ -53,9 +53,9 @@ private: PackageManagerSettings* settings; RunWindow *runwindow; InstallDialog *installDialog; - QList<Package> to_remove; - QList<Package> to_install; - void makeLinks(Package*); + QList<OipkgPackage> to_remove; + QList<OipkgPackage> to_install; + void makeLinks(OipkgPackage*); void linkPackage( QString, QString ); void processLinkDir( QString , QString ); bool runIpkg(const QString& args, const QString& dest="" ); |