41 #define YUILogComponent "ncurses-pkg"
44 #include "NCPkgStatusStrategy.h"
50 #include <zypp/ui/Selectable.h>
51 #include <zypp/ResObject.h>
62 NCPkgStatusStrategy::NCPkgStatusStrategy()
69 NCPkgStatusStrategy::~NCPkgStatusStrategy()
84 return slbPtr->status();
88 yuiError() <<
"Selectable pointer not valid" << endl;
105 yuiError() <<
"Invalid package object" << endl;
109 ok = slbPtr->setStatus( newstatus );
111 yuiMilestone() <<
"Set status of: " << slbPtr->name() <<
" to: "
112 << newstatus <<
" returns: " << (ok?
"true":
"false") << endl;
126 ZyppStatus & newStat )
132 ZyppStatus retStat = S_NoInst;
134 bool installed = !slbPtr->installedEmpty();
151 if ( oldStatus == S_NoInst
152 || oldStatus == S_AutoInstall )
157 else if ( oldStatus == S_Del
158 || oldStatus == S_AutoDel)
160 retStat = S_KeepInstalled;
162 else if ( oldStatus == S_AutoUpdate )
172 if ( oldStatus == S_KeepInstalled
173 || oldStatus == S_Del
174 || oldStatus == S_AutoDel )
176 if ( slbPtr->hasCandidateObj() )
189 if ( oldStatus == S_Install
190 || oldStatus == S_AutoInstall )
194 else if ( oldStatus == S_Update
195 || oldStatus == S_AutoUpdate )
197 retStat = S_KeepInstalled;
209 retStat = S_Protected;
213 yuiDebug() <<
"Key not valid" << endl;
232 ZyppStatus & newStat )
240 ZyppStatus newStatus = oldStatus;
241 ZyppPattern patPtr = tryCastToZyppPattern (objPtr);
247 newStatus = S_KeepInstalled;
250 newStatus =S_NoInst ;
255 case S_KeepInstalled:
257 newStatus = S_Install;
259 else if ( slbPtr->hasCandidateObj() )
261 newStatus = S_Update;
269 if ( slbPtr->hasCandidateObj() || patPtr )
271 newStatus = S_Install;
275 yuiWarning() <<
"No candidate object for " << slbPtr->theObj()->name().c_str() << endl;
276 newStatus = S_NoInst;
284 newStatus = S_KeepInstalled;
287 newStatus = S_KeepInstalled;
290 newStatus = S_NoInst;
293 newStatus = S_KeepInstalled;
310 zypp::Resolver_Ptr resolver = zypp::getZYpp()->resolver();
311 resolver->resolvePool();
323 PackageStatStrategy::PackageStatStrategy()
338 PatchStatStrategy::PatchStatStrategy()
353 ZyppStatus & newStat )
359 ZyppStatus retStat = S_NoInst;
361 bool installed = !slbPtr->installedEmpty();
377 if ( oldStatus == S_NoInst
378 || oldStatus == S_AutoInstall )
382 else if ( oldStatus == S_Del
383 || oldStatus == S_AutoDel)
385 retStat = S_KeepInstalled;
394 if ( oldStatus == S_KeepInstalled
395 || oldStatus == S_Del
396 || oldStatus == S_AutoDel )
398 if ( slbPtr->hasCandidateObj() )
409 yuiDebug() <<
"Key not valid" << endl;
419 #if EXTRA_PATCH_STRATEGY
429 ZyppStatus & newStat )
437 ZyppStatus newStatus = oldStatus;
443 newStatus =S_NoInst ;
448 newStatus = S_KeepInstalled;
450 case S_KeepInstalled:
451 if ( slbPtr->hasCandidateObj() )
453 newStatus = S_Update;
457 newStatus = S_Install ;
460 newStatus = S_NoInst;
463 newStatus = S_KeepInstalled;
466 newStatus = oldStatus;
488 yuiError() <<
"Invalid patch object" << endl;
492 ok = slbPtr->setStatus( newstatus );
493 yuiMilestone() <<
"Set status of: " << slbPtr->name() <<
" to: "
494 << newstatus <<
" returns: " << (ok?
"true":
"false") << endl;
509 SelectionStatStrategy::SelectionStatStrategy()
525 if ( !slbPtr || !objPtr )
527 yuiError() <<
"Invalid selection" << endl;
531 ok = slbPtr->setStatus( newstatus );
532 yuiMilestone() <<
"Set status of: " << slbPtr->name() <<
" to: "
533 << newstatus <<
" returns: " << (ok?
"true":
"false") << endl;
548 DependencyStatStrategy::DependencyStatStrategy()
560 AvailableStatStrategy::AvailableStatStrategy()
577 if ( !slbPtr || !objPtr )
582 ZyppObj newCandidate = objPtr;
584 if ( newCandidate != slbPtr->candidateObj() )
586 yuiMilestone() <<
"CANDIDATE changed" << endl;
589 ZyppStatus status = slbPtr->status();
591 if ( slbPtr->installedObj() &&
592 slbPtr->installedObj()->edition() == newCandidate->edition() )
596 status = S_KeepInstalled;
602 case S_KeepInstalled:
622 ok = slbPtr->setCandidate( newCandidate );
623 yuiMilestone() <<
"Set user candidate returns: " << (ok?
"true":
"false") << endl;
626 ok = slbPtr->setStatus( status );
627 yuiMilestone() <<
"Set status of: " << slbPtr->name() <<
" to: "
628 << status <<
" returns: " << (ok?
"true":
"false") << endl;
642 UpdateStatStrategy::UpdateStatStrategy()
655 PatchPkgStatStrategy::PatchPkgStatStrategy()
661 ZyppSel slbPtr, ZyppObj objPtr )