summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/package.cpp
Side-by-side diff
Diffstat (limited to 'noncore/unsupported/oipkg/package.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/package.cpp58
1 files changed, 57 insertions, 1 deletions
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp
index 9280d89..c947c64 100644
--- a/noncore/unsupported/oipkg/package.cpp
+++ b/noncore/unsupported/oipkg/package.cpp
@@ -26,15 +26,17 @@ void Package::init( PackageManagerSettings *s )
_subsection = "";
_shortDesc = "";
_desc = "";
_name = "";
_toProcess = false;
_useFileName = false;
+ _old = false;
_status = "";
_dest = settings->getDestinationName();
_link = settings->createLinks();
+ _versions=0;
}
Package::Package( QStringList pack, PackageManagerSettings *s )
{
init(s);
parsePackage( pack );
@@ -125,13 +127,40 @@ QString Package::installName()
if (_useFileName) return _fileName;
else return _name;
}
bool Package::installed()
{
- return _status.contains("installed");
+ if (_status.contains("installed")) return true;
+ else
+ if (_versions)
+ {
+ QDictIterator<Package> other( *_versions );
+ while ( other.current() )
+ {
+ if (other.current()->status().contains("installed")
+ && other.current()->version() == version())
+ return true;
+ ++other;
+ }
+ }
+ return false;
+}
+
+bool Package::otherInstalled()
+{
+ if (_versions)
+ {
+ QDictIterator<Package> other( *_versions );
+ while ( other.current() )
+ {
+ if (other.current()->installed()) return true;
+ ++other;
+ }
+ }
+ return false;
}
void Package::setDesc( QString s )
{
_desc = s;
_shortDesc = s.left( s.find("\n") );
@@ -367,6 +396,33 @@ QDict<QString>* Package::getFields()
}
QString Package::status()
{
return _status;
}
+
+bool Package::isOld()
+{
+ if (!_versions) return false;
+ QDictIterator<Package> other( *_versions );
+ while ( other.current() ) {
+ if (other.current()->version() > version() ) return true;
+ ++other;
+ }
+ return false;
+}
+
+bool Package::hasVersions()
+{
+ if (!_versions) return false;
+ else return true;
+}
+
+QDict<Package>* Package::getOtherVersions()
+{
+ return _versions;
+}
+
+void Package::setOtherVersions(QDict<Package> *v)
+{
+ _versions=v;
+}