CVS commit by mornfall: Fix dependency view. Also make Pkg2DepGrouper use specific version, not just candidate one (well, if it is applied on PkgCElem, it will still use candidate version). Makes dependency view respect the version combo in pkgcelemview.
M +18 -13 libcapture/depgroupers.cpp 1.15 M +1 -1 libcapture/depgroupers.h 1.10 M +2 -2 libkapture/pkgcelemview.cpp 1.5 --- kdenonbeta/kdedebian/kapture/libcapture/depgroupers.cpp #1.14:1.15 @@ -38,8 +38,8 @@ GROUPER_DESTR (Pkg2DepGrouper) {}; // -------------------------------------------------------------------------- GROUPER_CONSTR (Pkg2DepGrouper) - : Grouper (f, a), m_nextInst (0), m_pkg (0) + : Grouper (f, a), m_nextInst (0), m_ver (0) { - m_pkg = ParamNode::value (Param::get (a, "package")); - cerr << "Pkg2DepGrouper::Pkg2DepGrouper package = " << m_pkg << endl; + m_ver = verCElem (ParamCElem::value (Param::get (a, "package"))); + cerr << "Pkg2DepGrouper::Pkg2DepGrouper package = " << m_ver << endl; } /* }}} */ @@ -50,19 +50,24 @@ void Pkg2DepGrouper::addNode (TreeNode * PkgCElem *pe = 0; DepCElem *de = 0; + VerCElem *ve = 0; if (! m_nextInst) m_nextInst = m_next -> instantiate (); bool o = 0; - if (n) { + if (n) { // find the version to operate on; bit hairy... m_nextInst -> addNode (n, r); + ve = verCElem (**n); + if (! ve) { pe = pkgCElem (**n); - } else if (m_pkg) { - pe = pkgCElem (**m_pkg); - if (n) - n -> killChildren (); + if (pe) + ve = cElem (PkgManager::cache () -> GetCandidateVer (*pe)); } - if (n || pe) { + } else if (m_ver) { + ve = m_ver; + /* if (n) // XXX: from stashing times; probably worthless + n -> killChildren (); */ + } // end finding the version + if (ve) { TreeNode *d = 0; - de = cElem (PkgManager::cache () -> GetCandidateVer (*pe) . - DependsList ()); + de = ve -> DependsList (); for (; ! de -> end (); ++ (* de)) { if (o) { --- kdenonbeta/kdedebian/kapture/libcapture/depgroupers.h #1.9:1.10 @@ -29,5 +29,5 @@ namespace capture { // Pkg2DepGrouper - package -> set of depends converter // ---------------------------------------------------------------------- - GROUPER_DEF (Pkg2DepGrouper, Grouper, Grouper *m_nextInst; TreeNode *m_pkg;); + GROUPER_DEF (Pkg2DepGrouper, Grouper, Grouper *m_nextInst; VerCElemSPtr m_ver;); // DepTGrouper - dependency type grouper --- kdenonbeta/kdedebian/kapture/libkapture/pkgcelemview.cpp #1.4:1.5 @@ -99,5 +99,5 @@ bool PkgCElemView::showElem (capture::CE /* }}} */ /* {{{ */ -void PkgCElemView::setVersion (VerCElemSPtr V) +void PkgCElemView::setVersion (VerCElemPtr V) { pkgCache::VerFileIterator Vf; @@ -112,5 +112,5 @@ void PkgCElemView::setVersion (VerCElemS // Feeder *feed = new PkgDepFeeder (V); Param::Map a; - Param::set (a, "package", ParamCElem::create (m_pkg)); + Param::set (a, "package", ParamCElem::create (V)); GrouperChain *c = m_depList -> grouper (); kdDebug () << "chain: " << c << endl;