CVS commit by mornfall: Fix the crash in PkgNodeView with useExtState () == false, on display. Still needs work to display right controls and start right actions depending on useExtState ().
M +23 -20 pkgnodeview.cpp 1.11 --- kdenonbeta/kdedebian/kapture/libkapture/pkgnodeview.cpp #1.10:1.11 @@ -176,21 +176,23 @@ void PkgNodeViewCommon::setPackage (pkgC /* {{{ */ void PkgNodeViewCommon::refresh () - // FIXME: take current status into account! { if (m_pkg . end ()) return; - PkgCache::ExtState *st = (PkgManager::cache ()) -> extState (m_pkg); // status... - if (st -> changed) { - if (st -> a_wanted) - m_status -> setText ("Will be installed"); - else - m_status -> setText ("Will be removed"); - } else { - if ((PkgManager::cache ()) -> currentlyInstalled (m_pkg)) - m_status -> setText ("Will be left installed"); - else - m_status -> setText ("Will be left uninstalled"); + switch (PkgManager::cache () -> packageState (m_pkg)) { + case PkgCache::PkgInstall: + m_status -> setText ("Will be installed"); break; + case PkgCache::PkgUninstall: + m_status -> setText ("Will be uninstalled"); break; + case PkgCache::PkgKeepI: + m_status -> setText ("Will be left installed"); break; + case PkgCache::PkgKeepU: + m_status -> setText ("Will be left uninstalled"); break; + case PkgCache::PkgBroken: + m_status -> setText ("BROKEN"); break; } + + if ((PkgManager::cache ()) -> useExtState ()) { + PkgCache::ExtState *st = (PkgManager::cache ()) -> extState (m_pkg); m_wanted -> blockSignals (true); m_wanted -> setChecked (st -> u_wanted); @@ -200,4 +202,5 @@ void PkgNodeViewCommon::refresh () m_instPri -> setCurrentItem (p <= 5 ? (p >= 0 ? p : 0) : 5); m_instPri -> blockSignals (false); + } } /* }}} */