- added more docu
authorStefan Schubert <schubi@suse.de>
Thu, 15 May 2008 13:43:51 +0000 (13:43 +0000)
committerStefan Schubert <schubi@suse.de>
Thu, 15 May 2008 13:43:51 +0000 (13:43 +0000)
- reset solutions in resolveQueue

zypp/Resolver.h
zypp/solver/detail/Resolver.cc

index 51114df..3421af1 100644 (file)
@@ -88,6 +88,12 @@ namespace zypp
      * need user interaction) and "false" if there were problems.  In
      * the latter case, use problems() and later applySolutions()
      * below.
+     * The solution could be that the solver remove/add some entries
+     * in the task queue. So make a new call of resolveQueue after you
+     * have applied any solution AND check the parameter "queue" if
+     * there has been any changes by the solver and adapt these changes
+     * to e.g. the selectables.
+     * 
      **/
     bool resolveQueue (solver::detail::SolverQueueItemList & queue);      
 
index 5da3907..cc59968 100644 (file)
@@ -328,6 +328,11 @@ Resolver::resolveQueue(solver::detail::SolverQueueItemList & queue)
            queue.push_back(*iter);
        }
     }
+
+    // The application has to take care to write these solutions back to e.g. selectables in order
+    // give the user a chance for changing these decisions again.
+    _removed_queue_items.clear();
+    _added_queue_items.clear();
     
     return _satResolver->resolveQueue(queue, _addWeak);
 }