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

List:       kde-commits
Subject:    playground/sysadmin/shaman/libshaman/backends/apt
From:       Dario Freddi <drf () kde ! org>
Date:       2010-01-14 17:04:16
Message-ID: 1263488656.514774.32705.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1074736 by dafre:

Make the APT backend work with the new API changes

Signed-off-by: Dario Freddi <drf@kde.org>

 M  +19 -0     AptBackend.cpp  
 M  +3 -2      AptBackend.h  


--- trunk/playground/sysadmin/shaman/libshaman/backends/apt/AptBackend.cpp \
#1074735:1074736 @@ -25,6 +25,7 @@
 
 
 #include "shamantransactioninterface.h"
+#include <QTimer>
 
 using namespace KAuth;
 
@@ -78,6 +79,24 @@
     setState(Shaman::Backend::Idling);
 }
 
+bool AptBackend::aboutToChangeState(Shaman::Backend::State oldstate, \
Shaman::Backend::State newstate) +{
+    if (((oldstate == Shaman::Backend::Initializing && newstate == \
Shaman::Backend::Idling) || +         (oldstate == Shaman::Backend::OnTransaction && \
newstate == Shaman::Backend::Idling)) && +        backend()->operationMode() == \
Shaman::Base::CachedMode) { +        // Time to reload, guys.
+        QTimer::singleShot(0, this, SLOT(reload()));
+        // If we're initializing, just don't reject the state transition
+        if (oldstate != Shaman::Backend::Initializing) {
+            // Otherwise do.
+            return false;
+        }
+    }
+
+    // Else we're fine with defaults
+    return Shaman::BackendInterface::aboutToChangeState(oldstate, newstate);
+}
+
 bool AptBackend::cancelQueueProcessing()
 {
     setState(Shaman::Backend::Idling);
--- trunk/playground/sysadmin/shaman/libshaman/backends/apt/AptBackend.h \
#1074735:1074736 @@ -41,17 +41,18 @@
 
     public:
         bool cancelQueueProcessing();
+        virtual bool aboutToChangeState(Shaman::Backend::State oldstate, \
                Shaman::Backend::State newstate);
         //virtual void processQueue(const Shaman::BackendPackage::List &packages, \
const Shaman::ProcessQueueOption::List &options);  bool cancelRepositoriesUpdate();
         void updateRepositories();
-        void reload();
         void markAdditionalTargetsForQueue(const Shaman::ProcessQueueOption::List \
                &options);
         void processQueue(const Shaman::AbstractPackage::List &packages, const \
                Shaman::ProcessQueueOption::List &options);
         DebPackage *findPackageByVersion(const pkgCache::VerIterator &version);
-        
+
     protected slots:
         void slotOperationReply(ActionReply reply);
         void reloadingSources();
+        void reload();
         
     private:
         pkgSourceList *mList;


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

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