[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-08-14 13:46:43
Message-ID: 20100814134643.504FBAC84E () svn ! kde ! org
[Download RAW message or body]

SVN commit 1163590 by lappelhans:

Fix the grouping of repos in the akabei plugin and some search related 
stuff in the proxymodel


 M  +62 -5     libshaman/backends/akabei/AkabeiBackend.cpp  
 M  +2 -0      libshaman/backends/akabei/AkabeiBackend.h  
 M  +1 -1      libshaman/backends/akabei/AkabeiPackage.cpp  
 M  +18 -3     plugins/packagesview/PackagesSortFilterProxyModel.cpp  


--- trunk/playground/sysadmin/shaman/libshaman/backends/akabei/AkabeiBackend.cpp \
#1163589:1163590 @@ -114,17 +114,60 @@
 
 bool AkabeiBackend::cancelQueueProcessing()
 {
-
+    return false;
 }
 
 void AkabeiBackend::processQueue(const Shaman::AbstractPackage::List& packages, \
const Shaman::ProcessQueueOption::List &options)  {
- // Do nothing
+    AkabeiClient::Queue *queue = AkabeiClient::Backend::instance()->queue();
+    
+    /*
+        void phaseChanged(AkabeiClient::TransactionHandler::Phase phase);
+        void packageProgressChanged(Akabei::Package * pkg, int percent);
+        void downloadSpeedChanged(Akabei::Package * pkg, int speed);
+        void newTransactionMessage(const QString &message);
+        void errorsOccurred(QList<Akabei::Error*>);
+        void finished();*/ //TODO: Move the connects to the first time we will \
process the queue< +        
+    connect(AkabeiClient::Backend::instance()->transactionHandler(), \
SIGNAL(newTransactionMessage(QString)), SLOT(addTransactionMessage(QString))); +    \
connect(AkabeiClient::Backend::instance()->transactionHandler(), \
SIGNAL(phaseChanged(AkabeiClient::TransactionHandler::Phase)), \
SLOT(phaseChanged(AkabeiClient::TransactionHandler::Phase))); +
+    AkabeiClient::Backend::instance()->transactionHandler()->process(queue);
 }
 
+void AkabeiBackend::phaseChanged(AkabeiClient::TransactionHandler::Phase phase)
+{
+    switch (phase) {
+            //Validating,
+        case AkabeiClient::TransactionHandler::RunningPreHooks:
+            setTransactionState(Shaman::TransactionInterface::RunningPreHooks);
+            break;
+        case AkabeiClient::TransactionHandler::Downloading:
+            setTransactionState(Shaman::TransactionInterface::Downloading);
+            break;
+        case AkabeiClient::TransactionHandler::Processing:
+            setTransactionState(Shaman::TransactionInterface::Processing);
+            break;
+        case AkabeiClient::TransactionHandler::RunningScriptlets:
+            setTransactionState(Shaman::TransactionInterface::Processing);
+            break;
+        case AkabeiClient::TransactionHandler::RunningPostHooks:
+            setTransactionState(Shaman::TransactionInterface::RunningPostHooks);//FIXME \
maybe this has to be Processing? +            break;
+        case AkabeiClient::TransactionHandler::Cleaning:
+            setTransactionState(Shaman::TransactionInterface::Cleaning);
+            break;
+        case AkabeiClient::TransactionHandler::Finished:
+            setTransactionState(Shaman::TransactionInterface::NoTransaction);
+            break;
+        default:
+            break;
+    }
+}
+
 bool AkabeiBackend::cancelRepositoriesUpdate()
 {
-
+    return false;
 }
 
 void AkabeiBackend::updateRepositories()
@@ -192,8 +235,9 @@
     PERFORMANCE_MONITOR_START("Akabei Reload");
     Shaman::Repository::List repos;
     
-    foreach (AkabeiClient::DatabaseHandler * db, \
AkabeiClient::Backend::instance()->databases()) +    foreach \
(AkabeiClient::DatabaseHandler * db, AkabeiClient::Backend::instance()->databases()) \
                {
         repos.append(new Shaman::Repository(db->name(), db->mirror(), this));
+    }
     
     repos.append(new Shaman::Repository(i18n("Local"), KUrl(), this));
 
@@ -263,6 +307,7 @@
 
 void AkabeiBackend::markAdditionalTargetsForQueue(const \
Shaman::ProcessQueueOption::List &options)  {
+    //TODO: Maybe also already validate the queue + transactions?
  // Do nothing
 }
 
@@ -328,8 +373,20 @@
 
 Shaman::Repository * AkabeiBackend::repositoryFromDatabase(Akabei::Database * db)
 {
-    QString name = db->name();
+    AkabeiClient::DatabaseHandler *dbHandler = 0;
+    foreach (AkabeiClient::DatabaseHandler * h, \
AkabeiClient::Backend::instance()->databases()) { +        if (db == h->database()) {
+            //kDebug() << "Found repo" << h->name();
+            dbHandler = h;
+            break;
+        }
+    }
+    QString name;
+    if (dbHandler)
+        name = dbHandler->name();
+    //kDebug() << name;
     foreach (Shaman::Repository * repo, backend()->repositories()) {
+        //kDebug() << repo->name();
         if (name == repo->name() || (db == \
Akabei::Backend::instance()->localDatabase() && repo->name() == i18n("Local")))  \
return repo;  }
--- trunk/playground/sysadmin/shaman/libshaman/backends/akabei/AkabeiBackend.h \
#1163589:1163590 @@ -16,6 +16,7 @@
 #include <shamanbackendpackage.h>
 #include <akabeibackend.h>
 #include <akabeidatabasehandler.h>
+#include <akabeiclienttransactionhandler.h>
 
 namespace Akabei {
     class Package;
@@ -56,6 +57,7 @@
         void packageQueryComplete(const QUuid &id, const QList<Akabei::Package*> \
                &result);
         void groupQueryComplete(const QUuid &id, const QList<Akabei::Group*> \
                &result);
         void databaseStatusChanged(AkabeiClient::DatabaseHandler::Status status);
+        void phaseChanged(AkabeiClient::TransactionHandler::Phase phase);
         
     private:
         bool m_init;
--- trunk/playground/sysadmin/shaman/libshaman/backends/akabei/AkabeiPackage.cpp \
#1163589:1163590 @@ -47,7 +47,7 @@
     if (repo)
         repo->append(this);
     
-    kDebug() << pkg->groups().count();
+    //kDebug() << pkg->groups().count();
     
     foreach (Shaman::PackageGroup * group, \
m_backend->groupsFromAkabeiGroups(pkg->groups()))  group->append(this);
--- trunk/playground/sysadmin/shaman/plugins/packagesview/PackagesSortFilterProxyModel.cpp \
#1163589:1163590 @@ -95,19 +95,34 @@
 bool PackagesSortFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex \
&sourceParent) const  {
     //Our "main"-method
-    AbstractPackage *package = \
static_cast<PackagesModel*>(sourceModel())->packageFromModelIndex(sourceModel()->index(sourceRow, \
1, sourceParent)); +    AbstractPackage *package = \
static_cast<PackagesModel*>(sourceModel())->packageFromModelIndex(sourceModel()->index(sourceRow, \
0, sourceParent));  //We have a package as internal pointer
     if (!package)
         return false;
 
-    bool result = (!m_group || m_group->contains(package)) && //Look if it's in the \
                group
-                  (!m_repo || m_repo->contains(package)) && //Look if it's in the \
repository +    bool subitem = false;
+    if (!sourceParent.isValid() && sourceModel()->hasChildren(sourceParent)) {
+        const QModelIndex &index = sourceModel()->index(sourceRow, 0, sourceParent);
+        int i = 0;
+        while (index.child(i, 0).isValid()) {
+            if ((m_repo && \
m_repo->contains(static_cast<PackagesModel*>(sourceModel())->packageFromModelIndex(index.child(i, \
0))))  +               || (m_group && \
m_group->contains(static_cast<PackagesModel*>(sourceModel())->packageFromModelIndex(index.child(i, \
0))))) { +                subitem = true;
+                break;
+            }
+            i++;
+        }
+    }
+
+    bool result = (!m_group || m_group->contains(package) || subitem) && //Look if \
it's in the group +                  (!m_repo || m_repo->contains(package) || \
subitem) && //Look if it's in the repository  ((m_state == \
                PackageStateModel::AllPackages) ||
                   (package->state() == AbstractPackage::Installed && m_state == \
                PackageStateModel::InstalledPackages) ||
                   (package->state() == AbstractPackage::NotInstalled && m_state == \
                PackageStateModel::NotInstalledPackages) ||
                   (package->state() == AbstractPackage::Upgradeable && m_state == \
                PackageStateModel::UpgradeablePackages) ||
                   (package->action() != AbstractPackage::NoAction && m_state == \
PackageStateModel::QueuedPackages));  
+
     if ((m_searchCapabilities & BackendCapabilities::BasicSearchFromViewCapability \
                && m_searchType == SearchModel::Basic) ||
                (m_searchCapabilities & \
BackendCapabilities::ExtendedSearchFromViewCapability && m_searchType == \
SearchModel::Extended)) {  return result && (m_searchText.isEmpty() ||


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

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