Diffstat (limited to 'noncore/unsupported/oipkg/package.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 54 |
1 files changed, 44 insertions, 10 deletions
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 @@ -1,88 +1,95 @@ #include "package.h" #include <qpe/process.h> #include <qpe/stringutil.h> #include "debug.h" Package::~Package() { } -Package::Package() +Package::Package( PackageManagerSettings *s ) { + init(s); +} + +void Package::init( PackageManagerSettings *s ) +{ + settings = s; _size = ""; _section = ""; _subsection = ""; _shortDesc = ""; _desc = ""; _name = ""; _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; } Package::Package( Package *pi ) { - Package(); + init(pi->settings); copyValues( pi ); _toProcess = false; } void Package::setValue( QString n, QString t ) { if ( n == "Status" && installed() ) return; if ( n == "Package" ) { _name = QString( t ); } if ( n == "Installed-Size" ) { _size = t; } if ( n == "Priority") { } if ( n == "Section") { setSection( t ); } if ( n == "Maintainer") { } if ( n == "Architecture") { } if ( n == "Version") { } if ( n == "Pre-Depends") { } if ( n == "Depends") { }else if ( n == "Filename") { }else if ( n == "Size") { @@ -127,137 +134,164 @@ QString Package::desc() return _desc; } QString Package::shortDesc() { return _shortDesc; } QString Package::size() { return _size; } bool Package::toProcess() { return _toProcess; } bool Package::toRemove() { if ( _toProcess && installed() ) return true; else return false; } bool Package::toInstall() { if ( _toProcess && !installed() ) return true; else return false; } void Package::toggleProcess() { _toProcess = ! _toProcess; } void Package::copyValues( Package* pack ) { if (_size.isEmpty() && !pack->_size.isEmpty()) _size = QString( pack->_size ); if (_section.isEmpty() && !pack->_section.isEmpty()) _section = QString( pack->_section ); if (_subsection.isEmpty()&& !pack->_subsection.isEmpty()) _subsection = QString( pack->_subsection ); if (_shortDesc.isEmpty() && !pack->_shortDesc.isEmpty()) _shortDesc = QString( pack->_shortDesc ); if (_desc.isEmpty() && !pack->_desc.isEmpty()) _desc = QString( pack->_desc ); if (_name.isEmpty() && !pack->_name.isEmpty()) _name = QString( pack->_name ); if (!installed() && _status.isEmpty() && !pack->_status.isEmpty()) _status = QString( pack->_status ); } -QString Package::getSection() +QString Package::section() { return _section; } void Package::setSection( QString s) { int i = s.find("/"); if ( i > 0 ) { _section = s.left(i); _subsection = s.mid(i+1); }else{ _section = s; _subsection = ""; } } -QString Package::getSubSection() +QString Package::subSection() { return _subsection; } void Package::parsePackage( QStringList pack ) { if ( pack.isEmpty() ) return; int count = pack.count(); for( int i = 0; i < count; i++ ) { QString line = pack[i]; int sep = line.find( QRegExp(":[\t ]+") ); if ( sep >= 0 ) { QString tag = line.left(sep); QString value = line.mid(sep+2).simplifyWhiteSpace(); setValue( tag, value ); }else{ } } return; } QString Package::details() { QString status; Process ipkg_status(QStringList() << "ipkg" << "info" << name() ); QString description; if ( ipkg_status.exec("",status) ) { QStringList lines = QStringList::split('\n',status,TRUE); for (QStringList::Iterator it = lines.begin(); it!=lines.end(); ++it) { QString line = *it; if ( line == " ." ) { description.append("<p>"); } else if ( line[0] == ' ' || line[0] == '\t' ) { // continuation description.append(" "); description.append(Qtopia::escapeString(line)); } else { int sep = line.find(QRegExp(":[\t ]+")); if ( sep >= 0 ) { QString tag = line.left(sep); description.append("<br>"); description.append("<b>"); description.append(Qtopia::escapeString(tag)); description.append(":</b> "); description.append(Qtopia::escapeString(line.mid(sep+2))); } else { description.append(" "); description.append(Qtopia::escapeString(line)); } } } } return description; } -/** 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; +} |