[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/sysadmin/shaman
From:       Lukas Appelhans <l.appelhans () gmx ! de>
Date:       2010-04-21 12:48:42
Message-ID: 20100421124842.5C2B8AC89E () svn ! kde ! org
[Download RAW message or body]

SVN commit 1117174 by lappelhans:

Proper Repository/PackageGroup stuff for ProviderPlugins... also add all ABSPackages to the ABS Repo


 M  +2 -2      libshaman/shamancoreinterface.cpp  
 M  +14 -2     libshaman/shamanprovider.cpp  
 M  +7 -2      libshaman/shamanprovider.h  
 M  +2 -0      libshaman/shamanprovider_p.h  
 M  +16 -2     libshaman/shamanproviderpackage.cpp  
 M  +17 -2     libshaman/shamanproviderplugin.cpp  
 M  +2 -0      libshaman/shamanproviderplugin.h  
 M  +0 -10     plugins/abs/AbsPackage.cpp  
 M  +0 -2      plugins/abs/AbsPackage.h  
 M  +6 -1      plugins/abs/AbsPlugin.cpp  
 M  +3 -3      plugins/abs/AbsPlugin.h  


--- trunk/playground/sysadmin/shaman/libshaman/shamancoreinterface.cpp #1117173:1117174
@@ -145,8 +145,8 @@
     }
     providers = newProviderPlugins;
     foreach (Provider *p, providers) {
-        if (!p->allAvailablePackages().isEmpty()) {
-            setPackagesFor(p, p->allAvailablePackages().toList());
+        if (!p->availablePackages().isEmpty()) {
+            setPackagesFor(p, p->availablePackages().toList());
         }
         connect(p, SIGNAL(availablePackagesChanged(Shaman::AbstractPackage::List)),
                 this, SLOT(__k__packagesChanged(Shaman::AbstractPackage::List)));
--- trunk/playground/sysadmin/shaman/libshaman/shamanprovider.cpp #1117173:1117174
@@ -41,9 +41,21 @@
     return d->packages;
 }
 
-QSet< AbstractPackage* > Provider::allAvailablePackages() const
+Repository::List Provider::repositories() const
 {
     Q_D(const Provider);
+    return d->repos;
+}
+
+PackageGroup::List Provider::packageGroups() const
+{
+    Q_D(const Provider);
+    return d->groups;
+}
+
+QSet< AbstractPackage* > Provider::availablePackages() const
+{
+    Q_D(const Provider);
     QSet< AbstractPackage* > retset;
     retset.unite(d->plugin->d_func()->searchCache);
     retset.unite(d->packages.toSet());
@@ -54,7 +66,7 @@
 {
     AbstractPackage::List retlist;
     // Let's find out
-    foreach (AbstractPackage * const package, allAvailablePackages()) {
+    foreach (AbstractPackage * const package, availablePackages()) {
         if (package->action() == AbstractPackage::Install ||
             package->action() == AbstractPackage::Uninstall ||
             package->action() == AbstractPackage::Upgrade) {
--- trunk/playground/sysadmin/shaman/libshaman/shamanprovider.h #1117173:1117174
@@ -49,10 +49,15 @@
         void reload();
 
         AbstractPackage::List packages() const;
-        QSet< AbstractPackage* > allAvailablePackages() const;
+        QSet< AbstractPackage* > availablePackages() const;
+        Repository::List repositories() const;
+        PackageGroup::List packageGroups() const;
 
     Q_SIGNALS:
-        void availablePackagesChanged(const Shaman::AbstractPackage::List &packages);
+        void availablePackagesChanged(Shaman::AbstractPackage::List packages);
+        void packagesChanged(Shaman::AbstractPackage::List packages);
+        void repositoriesChanged(Shaman::Repository::List repos);
+        void packageGroupsChanged(Shaman::PackageGroup::List packageGroups);
         void additionalTargetsRetrieved(const Shaman::AbstractPackage::List &additionalProvider);
         void stateChanged(Shaman::Backend::State state);
         //void errorTriggered(Shaman::Provider::Error error, const QString &details);
--- trunk/playground/sysadmin/shaman/libshaman/shamanprovider_p.h #1117173:1117174
@@ -28,6 +28,8 @@
         Backend::State state;
         Provider::Capabilities capabilities;
         AbstractPackage::List packages;
+        Repository::List repos;
+        PackageGroup::List groups;
 };
 
 }
--- trunk/playground/sysadmin/shaman/libshaman/shamanproviderpackage.cpp #1117173:1117174
@@ -43,12 +43,26 @@
 
 QList< PackageGroup* > ProviderPackage::packageGroups()
 {
-    return QList< PackageGroup* >();
+    PackageGroup::List list;
+    foreach (PackageGroup * group, provider()->packageGroups())
+    {
+        if (group->contains(this)) {
+            list.append(group);
+        }
+    }
+    return list;
 }
 
 QList< Repository* > ProviderPackage::repositories()
 {
-    return QList< Repository* >();
+    Repository::List list;
+    foreach (Repository * group, provider()->repositories())
+    {
+        if (group->contains(this)) {
+            list.append(group);
+        }
+    }
+    return list;
 }
 
 }
--- trunk/playground/sysadmin/shaman/libshaman/shamanproviderplugin.cpp #1117173:1117174
@@ -64,7 +64,7 @@
     if (d->provider->capabilities() & Provider::RetrieveAdditionalPackagesOnSearchCapability) {
         // Then we need to populate the cache as well
         d->searchCache = d->searchCache.unite(result.toSet());
-        emit d->provider->availablePackagesChanged(d->provider->allAvailablePackages().toList());
+        emit d->provider->availablePackagesChanged(d->provider->availablePackages().toList());
     }
     Shaman::Base::instance()->core()->d_func()->queryCompleted(this, search, result);
     setState(Backend::Idling);
@@ -86,9 +86,24 @@
 {
     Q_D(ProviderPlugin);
     d->provider->d_func()->packages = packages;
-    emit d->provider->availablePackagesChanged(d->provider->allAvailablePackages().toList());
+    emit d->provider->packagesChanged(packages);
+    emit d->provider->availablePackagesChanged(d->provider->availablePackages().toList());
 }
 
+void ProviderPlugin::setRepositories(const Shaman::Repository::List& repos)
+{
+    Q_D(ProviderPlugin);
+    d->provider->d_func()->repos = repos;
+    emit d->provider->repositoriesChanged(repos);
 }
 
+void ProviderPlugin::setPackageGroups(const Shaman::PackageGroup::List& groups)
+{
+    Q_D(ProviderPlugin);
+    d->provider->d_func()->groups = groups;
+    emit d->provider->packageGroupsChanged(groups);
+}
+
+}
+
 #include "shamanproviderplugin.moc"
--- trunk/playground/sysadmin/shaman/libshaman/shamanproviderplugin.h #1117173:1117174
@@ -55,6 +55,8 @@
         void setSearchResult(const QUuid &searchUuid, const Shaman::AbstractPackage::List &result);
         void setAdditionalTargetsForQueue(const Shaman::AbstractPackage::List &packages);
         void setPackages(const Shaman::AbstractPackage::List &packages);
+        void setRepositories(const Shaman::Repository::List &repos);
+        void setPackageGroups(const Shaman::PackageGroup::List &groups);
 
         void setCapabilities(Shaman::Provider::Capabilities capabilities);
 
--- trunk/playground/sysadmin/shaman/plugins/abs/AbsPackage.cpp #1117173:1117174
@@ -21,16 +21,6 @@
 
 }
 
-QList< Shaman::PackageGroup* > AbsPackage::packageGroups()
-{
-    return QList< Shaman::PackageGroup* >();
-}
-
-QList< Shaman::Repository* > AbsPackage::repositories()
-{
-    return QList< Shaman::Repository* >();
-}
-
 void AbsPackage::cacheValue(Shaman::AbstractPackage::CachedValue value)
 {
 
--- trunk/playground/sysadmin/shaman/plugins/abs/AbsPackage.h #1117173:1117174
@@ -20,8 +20,6 @@
         AbsPackage(const QString& name, Shaman::ProviderPlugin* provider);
         virtual ~AbsPackage();
 
-        virtual QList< Shaman::PackageGroup* > packageGroups();
-        virtual QList< Shaman::Repository* > repositories();
         virtual void cacheValue(Shaman::AbstractPackage::CachedValue value);
 
 };
--- trunk/playground/sysadmin/shaman/plugins/abs/AbsPlugin.cpp #1117173:1117174
@@ -10,6 +10,7 @@
 #include "AbsPlugin.h"
 
 #include <shamanmacros.h>
+#include <shamanrepository.h>
 
 #include <aqpm/AbsBackend.h>
 #include "AbsPackage.h"
@@ -20,6 +21,7 @@
 AbsPlugin::AbsPlugin(QObject *parent, const QVariantList &)
   : ProviderPlugin(parent)
 {
+    repo = new Shaman::Repository("ABS", KUrl(), this);
 }
 
 AbsPlugin::~AbsPlugin()
@@ -37,11 +39,14 @@
     Shaman::AbstractPackage::List oldPackages = provider()->packages();
     Shaman::AbstractPackage::List newPackages;
     foreach (const QString &package, Aqpm::Abs::Backend::instance()->allPackages()) {
-        newPackages << new AbsPackage(package, this);
+        AbsPackage *pkg = new AbsPackage(package, this);
+        newPackages << pkg;
+        repo->append(pkg);
     }
     // Now setting packages
     kDebug() << "Setting Packages of ABS";
     setPackages(newPackages);
+    setRepositories(Shaman::Repository::List() << repo);
     qDeleteAll(oldPackages);
     setState(Shaman::Backend::Idling);
 }
--- trunk/playground/sysadmin/shaman/plugins/abs/AbsPlugin.h #1117173:1117174
@@ -15,7 +15,8 @@
 #include <QVariantList>
 
 namespace Shaman {
-class Query;
+    class Query;
+    class Repository;
 }
 
 class AbsPlugin : public Shaman::ProviderPlugin
@@ -34,8 +35,7 @@
         virtual void search(Shaman::Query *query);
 
     private:
-        class Private;
-        Private *d;
+        Shaman::Repository * repo;
 };
 
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic