Author: gs Date: Tue Apr 15 16:58:51 2008 New Revision: 46682 URL: http://svn.opensuse.org/viewcvs/yast?rev=46682&view=rev Log: YOU layout added; methods to handle patches enabled - but not yet tested Modified: trunk/ncurses-pkg/src/NCPackageSelector.cc trunk/ncurses-pkg/src/NCPackageSelector.h trunk/ncurses-pkg/src/NCPackageSelectorStart.cc trunk/ncurses-pkg/src/NCPkgFilterContainer.cc trunk/ncurses-pkg/src/NCPkgFilterRPMGroups.cc trunk/ncurses-pkg/src/NCPkgMenuView.cc trunk/ncurses-pkg/src/NCPkgMenuView.h trunk/ncurses-pkg/src/NCPkgPackageDetails.cc trunk/ncurses-pkg/src/NCPkgPackageDetails.h trunk/ncurses-pkg/src/NCPkgTable.cc trunk/ncurses-pkg/src/NCPkgTable.h Modified: trunk/ncurses-pkg/src/NCPackageSelector.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPackageSelector... ============================================================================== --- trunk/ncurses-pkg/src/NCPackageSelector.cc (original) +++ trunk/ncurses-pkg/src/NCPackageSelector.cc Tue Apr 15 16:58:51 2008 @@ -95,13 +95,9 @@ , extrasMenu( 0 ) , helpMenu( 0 ) , filterMain( 0 ) + , actionMenu( 0 ) , filterMenu( 0 ) , updatelistItem( 0 ) - , actionMenu( 0 ) - , infoMenu( 0 ) - , patchdescrItem( 0 ) - , patchpkgsItem( 0 ) - , pkgversionsItem( 0 ) , packageLabel( 0 ) , diskspaceLabel( 0 ) , infoText( 0 ) @@ -733,15 +729,164 @@ return displayPatch; } +/////////////////////////////////////////////////////////////////// +// +// deleteReplacePoint +// +// Gets ( and returns ) the current size of the widget at the replace +// point and deletes it. +// +wrect NCPackageSelector::deleteReplacePoint() +{ + // delete current child of the ReplacePoint + YWidget * replaceChild = replacePoint->firstChild(); + wrect oldSize; + + if ( replaceChild ) + { + oldSize = dynamic_cast<NCWidget *>(replaceChild)->wGetSize(); + + delete replaceChild; + // reset all info widgets + infoText = 0; // NCPkgPackageDetails ( NCRichText ) + versionsList = 0; // NCPkgTable - type: T_Availables + patchPkgs = 0; // NCPkgTable - type: T_PatchPkgs + patchPkgsVersions = 0; // NCPkgTable - type: T_Availables + } + + return oldSize; +} + +/////////////////////////////////////////////////////////////////// +// +// showInformation +// +// Creates an NCPkgPackageDetails (a RichtText widget) which is +// used to show the required information (called from NCPkgMenuView) +// +// +void NCPackageSelector::showInformation() +{ + wrect oldSize = deleteReplacePoint(); + + // show the rich text widget + infoText = new NCPkgPackageDetails( replacePoint, " ", this); + + if ( infoText ) + { + infoText->setSize( oldSize.Sze.W, oldSize.Sze.H ); + infoText->Redraw(); + } +} + +/////////////////////////////////////////////////////////////////// +// +// showVersionsList +// +// Creates an NCPkgTable (type T_Availables) which is used to show +// the list of package versions (called from NCPkgMenuView) +// +// +void NCPackageSelector::showVersionsList() +{ + wrect oldSize = deleteReplacePoint(); + NCPkgTable * packageList = PackageList(); + + // show a package table with all available package versions + YTableHeader * tableHeader = new YTableHeader(); + versionsList = new NCPkgTable( replacePoint, tableHeader ); + // YDialog::currentDialog()->setInitialSize(); -> doesn't work + // call versionsList->setSize() and versionsList->Redraw() instead + + if ( versionsList && packageList ) + { + + // set the connection to the NCPackageSelector !!!! + versionsList->setPackager( this ); + // set status strategy + NCPkgStatusStrategy * strategy = new AvailableStatStrategy(); + versionsList->setTableType( NCPkgTable::T_Availables, strategy ); + versionsList->fillHeader( ); + versionsList->setSize( oldSize.Sze.W, oldSize.Sze.H ); + + versionsList->fillAvailableList( packageList->getSelPointer( packageList->getCurrentItem() ) ); + versionsList->Redraw(); + + packageList->setKeyboardFocus(); + } +} + +/////////////////////////////////////////////////////////////////// +// +// showPatchPackages +// +// Creates an NCPkgTable (type T_PatchPkgs) which is used to show +// the list of all packages belonging to a patch (called from NCPkgMenuView) +// +// +void NCPackageSelector::showPatchPackages() +{ + wrect oldSize = deleteReplacePoint(); + NCPkgTable * packageList = PackageList(); + + // show a package table with packages belonging to a patch + YTableHeader * tableHeader = new YTableHeader(); + patchPkgs = new NCPkgTable( replacePoint, tableHeader ); + if ( patchPkgs && packageList ) + { + // set the connection to the NCPackageSelector !!!! + patchPkgs->setPackager( this ); + // set status strategy - don't set extra strategy, use 'normal' package strategy + NCPkgStatusStrategy * strategy = new PackageStatStrategy(); + patchPkgs->setTableType( NCPkgTable::T_PatchPkgs, strategy ); + patchPkgs->fillHeader( ); + patchPkgs->setSize( oldSize.Sze.W, oldSize.Sze.H ); + + fillPatchPackages( patchPkgs, packageList->getDataPointer( packageList->getCurrentItem() ) ); + patchPkgs->Redraw(); + + packageList->setKeyboardFocus(); + } +} /////////////////////////////////////////////////////////////////// // -// InformationHandler +// showPatchPkgsVersions // -// Sets the member variable visibleInfo. If required, -// replaces the currently active package information widget -// ( e.g. by the list of available packages ). +// Creates an NCPkgTable (type T_Availables) which is used to show +// a list of all versions of all packages belonging to a patch +// (called from NCPkgMenuView) +// +// +void NCPackageSelector::showPatchPkgVersions() +{ + wrect oldSize = deleteReplacePoint(); + NCPkgTable * packageList = PackageList(); + + // show a package table with versions of the packages beloning to a patch + YTableHeader * tableHeader = new YTableHeader(); + patchPkgsVersions = new NCPkgTable( replacePoint, tableHeader ); + + if ( patchPkgsVersions && packageList ) + { + // set the connection to the NCPackageSelector !!!! + patchPkgsVersions->setPackager( this ); + // set status strategy and table type + NCPkgStatusStrategy * strategy = new AvailableStatStrategy(); + patchPkgsVersions->setTableType( NCPkgTable::T_Availables, strategy ); + patchPkgsVersions->fillHeader( ); + patchPkgsVersions->setSize( oldSize.Sze.W, oldSize.Sze.H ); + + fillPatchPackages( patchPkgsVersions, packageList->getDataPointer( packageList->getCurrentItem() ), true ); + patchPkgsVersions->Redraw(); + + packageList->setKeyboardFocus(); + } +} + +// +// UNUSED // void NCPackageSelector::replaceInfoText( bool b ) { @@ -1360,80 +1505,6 @@ return ok; } - -/////////////////////////////////////////////////////////////////// -// -// showPatchInformation -// -// Shows the patch information -// -bool NCPackageSelector::showPatchInformation ( ZyppObj objPtr, ZyppSel selectable ) -{ - ZyppPatch patchPtr = tryCastToZyppPatch( objPtr ); - - if ( !patchPtr || !selectable ) - { - yuiError() << "Patch not valid" << endl; - return false; - } - - // if ( visibleInfo->compare( NCPkgStrings::PatchDescr() ) == YO_EQUAL ) - if ( visibleInfo == patchdescrItem ) - { - string descr; - - descr += NCPkgStrings::Patch(); - descr += selectable->name(); - descr += " "; - // the patch size is not available - // descr += NCPkgStrings::Size(); - // descr += patchPtr->size().asString( 8 ); - descr += "<b>"; - descr += NCPkgStrings::PatchKind(); - descr += ": </b>"; - descr += patchPtr->category(); - descr += " "; - descr += NCPkgStrings::Version(); - descr += patchPtr->edition().asString(); - descr += "<br>"; - - if ( selectable->hasInstalledObj() - && selectable->installedPoolItem().isBroken() ) - { - descr += _( "----- this patch is broken !!! -----" ); - descr += "<br>"; - } - // get and format the patch description - string value = patchPtr->description(); - descr += createDescrText( value ); - - // show the description - if ( infoText ) - { - infoText->setValue( descr ); - } - } - // else if ( visibleInfo->compare( NCPkgStrings::PatchPackages() ) == YO_EQUAL ) - else if ( visibleInfo == patchpkgsItem ) - { - if ( patchPkgs ) - { - fillPatchPackages ( patchPkgs, objPtr); - } - } - // else if ( visibleInfo->compare( NCPkgStrings::PatchPackagesVersions() ) == YO_EQUAL ) - else if ( visibleInfo == pkgversionsItem ) - { - if ( patchPkgsVersions ) - { - fillPatchPackages ( patchPkgsVersions, objPtr, true); - } - } - - return true; -} - - /////////////////////////////////////////////////////////////////// // // showDependencies @@ -1695,9 +1766,72 @@ // // Create layout for Online Update // -void NCPackageSelector::createYouLayout( YWidget * selector, NCPkgTable::NCPkgTableType type ) +void NCPackageSelector::createYouLayout( YWidget * selector ) { - // TODO + // the vertical split is the (only) child of the dialog + YLayoutBox * split = YUI::widgetFactory()->createVBox( selector ); + + YLayoutBox * hSplit = YUI::widgetFactory()->createHBox( split ); + + YAlignment * left1 = YUI::widgetFactory()->createLeft( hSplit ); + actionMenu = new NCPkgMenuAction( left1, NCPkgStrings::Actions(), this ); + + YAlignment * left2 = YUI::widgetFactory()->createLeft( hSplit ); + viewMenu = new NCPkgMenuView( left2, NCPkgStrings::View(), this); + + YAlignment * left3 = YUI::widgetFactory()->createLeft( hSplit ); + extrasMenu = new NCPkgMenuExtras( left3, NCPkgStrings::Extras(), this); + + // add the package table + YTableHeader * tableHeader = new YTableHeader(); + + pkgList = new NCPkgTable( split, tableHeader ); + YUI_CHECK_NEW( pkgList ); + + // set table type 'T_Patches' + NCPkgStatusStrategy * strategy; + strategy = new PatchStatStrategy(); + pkgList->setTableType( NCPkgTable::T_Patches, strategy ); + + // set the pointer to the packager object + pkgList->setPackager( this ); + + // HBox for Filter and Disk Space (both in additional HBoxes ) + YLayoutBox * hSplit2 = YUI::widgetFactory()->createHBox( split ); + + YLayoutBox * hSplit3 = YUI::widgetFactory()->createHBox( hSplit2 ); + // label text - keep it short + new NCLabel( hSplit3, _( "Filter: " ) ); + packageLabel = YUI::widgetFactory()->createLabel ( hSplit3, "....................................." ); + + new NCSpacing( hSplit2, YD_HORIZ, true, 0.5 ); + + YLayoutBox * hSplit4 = YUI::widgetFactory()->createHBox( hSplit2 ); + // label text - keep it short (use abbreviation if necessary) + new NCLabel( hSplit4, _( "Total Download Size: " ) ); + diskspaceLabel = YUI::widgetFactory()->createLabel ( hSplit4, " " ); + + YLayoutBox * vSplit = YUI::widgetFactory()->createVBox( split ); + replacePoint = YUI::widgetFactory()->createReplacePoint( vSplit ); + + infoText = new NCPkgPackageDetails( replacePoint, " ", this ); + YUI_CHECK_NEW( infoText ); + + YLayoutBox * hSplit5 = YUI::widgetFactory()->createHBox( vSplit ); + + helpMenu = new NCPkgMenuHelp (hSplit5, _("&Help")); + YUI_CHECK_NEW( helpMenu ); + + // add the Cancel button + cancelButton = new NCPushButton( hSplit5, _( "&Cancel" ) ); + YUI_CHECK_NEW( cancelButton ); + cancelButton->setFunctionKey( 9 ); + + // add the OK button + okButton = new NCPushButton( hSplit5, _( "&Accept" ) ); + YUI_CHECK_NEW( okButton ); + okButton->setFunctionKey( 10 ); + } // @@ -1783,6 +1917,7 @@ YAlignment *ll = YUI::widgetFactory()->createLeft( bottom_bar ); helpMenu = new NCPkgMenuHelp (ll, _("&Help")); + YUI_CHECK_NEW( helpMenu ); YAlignment *r = YUI::widgetFactory()->createRight( bottom_bar ); YLayoutBox * hSplit = YUI::widgetFactory()->createHBox( r ); Modified: trunk/ncurses-pkg/src/NCPackageSelector.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPackageSelector... ============================================================================== --- trunk/ncurses-pkg/src/NCPackageSelector.h (original) +++ trunk/ncurses-pkg/src/NCPackageSelector.h Tue Apr 15 16:58:51 2008 @@ -127,23 +127,14 @@ NCPkgMenuView *viewMenu; NCPkgMenuExtras *extrasMenu; NCPkgMenuHelp *helpMenu; + NCPkgFilterMain *filterMain; NCPkgMenuAction *actionMenu; - NCPkgFilterMain *filterMain; // filter menu and items NCMenuButton * filterMenu; YMenuItem * updatelistItem; - // information menu and items - NCMenuButton * infoMenu; - - // information menu and items YOU - YMenuItem * patchdescrItem; - YMenuItem * patchpkgsItem; - YMenuItem * pkgversionsItem; - - - // labels + // labels YLabel * packageLabel; YLabel * diskspaceLabel; @@ -217,10 +208,9 @@ /** * Create layout for the Online Update * @param parent Parent is PackageSelectorStart - * @param type The package table type * @return void */ - void createYouLayout( YWidget * parent, NCPkgTable::NCPkgTableType type ); + void createYouLayout( YWidget * parent ); // returns the package table widget NCPkgTable * PackageList(); @@ -234,6 +224,9 @@ NCPkgTable *VersionsList() { return versionsList; } void setVersionsList ( NCPkgTable *table ) { versionsList = table; } + NCPkgTable * PatchPkgs() { return patchPkgs; } + NCPkgTable * PatchPkgsVersions() { return patchPkgsVersions; } + YReplacePoint *ReplacePoint() { return replacePoint; } NCRichText *FilterDescription() { return filter_desc; } NCPkgSearchSettings *SearchSettings() { return searchSet; } @@ -294,13 +287,39 @@ */ bool handleEvent( const NCursesEvent& event ); - /** - * Handler function for the "Information" menu - * @param event The Ncurses event - * @return bool - */ + // UNUSED void replaceInfoText ( bool b ); + /** + * Creates an NCPkgTable widget and shows all versions + * of all packages belonging to a patch + * @return void + */ + void showPatchPkgVersions(); + + /** + * Creates an NCPkgTable widget and shows all packages + * belonging to a patch + * @return void + */ + void showPatchPackages(); + + /** + * Creates an NCPkgTable widget and shows all verions + * a the selected package + * @return void + */ + void showVersionsList(); + + /** + * Creates an NCRichText widget for package (patch) + * information + * @return void + */ + void showInformation(); + + wrect deleteReplacePoint(); + void replaceFilter ( FilterMode mode); void replaceFilterDescr ( bool b ); /** @@ -349,15 +368,6 @@ */ void showSelectionDependencies ( ); - - /** - * Gets the required patch info from you patch manager and shows it - * @param pkgPtr the data pointer - * @return bool - */ - bool showPatchInformation ( ZyppObj pkgPtr, ZyppSel slbPtr ); - - /** * Updates the status in list of packages */ Modified: trunk/ncurses-pkg/src/NCPackageSelectorStart.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPackageSelector... ============================================================================== --- trunk/ncurses-pkg/src/NCPackageSelectorStart.cc (original) +++ trunk/ncurses-pkg/src/NCPackageSelectorStart.cc Tue Apr 15 16:58:51 2008 @@ -75,10 +75,11 @@ if ( packager ) { + yuiMilestone() << "YouMode: " << (youMode?"true":"false") << endl; if ( !youMode ) packager->createPkgLayout( this, type ); else - packager->createYouLayout( this, type ); + packager->createYouLayout( this ); } yuiDebug() << endl; @@ -135,7 +136,7 @@ // fill package list with packages belonging to default RPM group packager->fillDefaultList(); - // always do an initial dependency solving + // always do an initial dependency solving packager->showPackageDependencies( true ); if ( youMode ) Modified: trunk/ncurses-pkg/src/NCPkgFilterContainer.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgFilterContai... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgFilterContainer.cc (original) +++ trunk/ncurses-pkg/src/NCPkgFilterContainer.cc Tue Apr 15 16:58:51 2008 @@ -140,6 +140,7 @@ std::vector<ZyppSel> sorted; sorted.reserve (wanted.size ()); + yuiMilestone() << "Showing " << wanted.size () << " packages" << endl; // find the objects for the names ZyppPoolIterator b = zyppPkgBegin(), @@ -193,36 +194,35 @@ ZyppObj objPtr = getDataPointer( index ); if ( objPtr ) { - yuiMilestone() << "Current selection: " << getCurrentLine() << endl; - // show the package list std::setstd::string packages; ZyppPattern patPtr = tryCastToZyppPattern (objPtr); //ZyppLang langPtr = tryCastToZyppLang (objPtr); if (patPtr) { - zypp::ui::PatternContents patternContents( patPtr ); - packager->FilterDescription()->setText ( showDescription( objPtr ) ); - packages = patternContents.install_packages(); + yuiMilestone() << "Show packages belonging to selected pattern: " << getCurrentLine() << endl; + zypp::ui::PatternContents patternContents( patPtr ); + packager->FilterDescription()->setText ( showDescription( objPtr ) ); + packages = patternContents.install_packages(); } - #if 0 //FIXME + #if 0 //FIXME else if (langPtr) { - string currentLang = langPtr->name(); + string currentLang = langPtr->name(); - for ( ZyppPoolIterator it = zyppPkgBegin(); it != zyppPkgEnd(); ++it ) + for ( ZyppPoolIterator it = zyppPkgBegin(); it != zyppPkgEnd(); ++it ) { ZyppObj zyppObj = (*it)->theObj(); if ( zyppObj ) { - //find all 'freshens' dependencies of this object - zypp::CapSet freshens = zyppObj->dep( zypp::Dep::FRESHENS ); + //find all 'freshens' dependencies of this object + zypp::CapSet freshens = zyppObj->dep( zypp::Dep::FRESHENS ); - for ( zypp::CapSet::const_iterator cap_it = freshens.begin(); - cap_it != freshens.end(); - ++cap_it ) + for ( zypp::CapSet::const_iterator cap_it = freshens.begin(); + cap_it != freshens.end(); + ++cap_it ) { if ( (*cap_it).index() == currentLang ) // obj freshens this language { @@ -231,9 +231,9 @@ if ( pkg ) { NCDBG << "Found pkg " << pkg->name().c_str() << "for lang " - << currentLang.c_str() << endl; + << currentLang.c_str() << endl; - packages.insert( pkg->name() ); + packages.insert( pkg->name() ); } } } @@ -241,9 +241,9 @@ } } - #endif - showContainerContent( packages ); - } +#endif + showContainerContent( packages ); + } } Modified: trunk/ncurses-pkg/src/NCPkgFilterRPMGroups.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgFilterRPMGro... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgFilterRPMGroups.cc (original) +++ trunk/ncurses-pkg/src/NCPkgFilterRPMGroups.cc Tue Apr 15 16:58:51 2008 @@ -191,7 +191,7 @@ } string group_str = _rpmGroupsTree->rpmGroup (rpmGroup); - yuiError() << group_str << endl; + yuiDebug() << group_str << endl; // is the requested rpm group a prefix of this package's group? if ( pkg->group ().find (group_str) == 0 ) { Modified: trunk/ncurses-pkg/src/NCPkgMenuView.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgMenuView.cc?... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgMenuView.cc (original) +++ trunk/ncurses-pkg/src/NCPkgMenuView.cc Tue Apr 15 16:58:51 2008 @@ -38,22 +38,38 @@ void NCPkgMenuView::createLayout() { - description = new YMenuItem( _("Package Description") ); - items.push_back( description ); + if ( !pkg->isYouMode() ) + { + description = new YMenuItem( _("Package Description") ); + items.push_back( description ); + + technical = new YMenuItem( _("Technical data") ); + items.push_back( technical ); - technical = new YMenuItem( _("Technical data") ); - items.push_back( technical ); + versions = new YMenuItem( _("Package Versions") ); + items.push_back( versions ); - versions = new YMenuItem( _("Package Versions") ); - items.push_back( versions ); + files = new YMenuItem( _("File List") ); + items.push_back( files ); - files = new YMenuItem( _("File List") ); - items.push_back( files ); + deps = new YMenuItem( _("Dependencies") ); + items.push_back( deps ); - deps = new YMenuItem( _("Dependencies") ); - items.push_back( deps ); + addItems( items ); + } + else + { + patchDescription = new YMenuItem( _( "&Long Description" ) ); + items.push_back( patchDescription ); - addItems( items ); + patchPackages = new YMenuItem( _( "&Package List" )); + items.push_back( patchPackages ); + + patchPkgVersions = new YMenuItem( _("&Versions") ); + items.push_back( patchPkgVersions ); + + addItems( items ); + } } @@ -70,10 +86,69 @@ if ( !pkgPtr || !slbPtr) { - yuiError() << "*cobe*-d up" << endl; - return false; + yuiError() << "package list empty - no package pointer" << endl; + return true; + } + + // Call the appropriate method from NCPackageSelector for + // the selected menu entry. + // Set the information type of the package list (NCPkgTable) + // acccordingly to to able to show the required information while + // scrolling the list (NCPkgTable::updateList()) + + if ( event.selection == versions ) + { + pkg->showVersionsList(); + pkgList->setVisibleInfo (NCPkgTable::I_Versions); + } + else if ( event.selection == patchPackages ) + { + pkg->showPatchPackages(); + pkgList->setVisibleInfo (NCPkgTable::I_PatchPkgs); + } + else if ( event.selection == patchPkgVersions ) + { + pkg->showPatchPkgVersions(); + pkgList->setVisibleInfo (NCPkgTable::I_PatchPkgsVersions); + } + else + { + pkg->showInformation(); + + if ( !pkg->InfoText() ) + return false; + + if (event.selection == description) + { + pkg->InfoText()->longDescription( pkgPtr ); + pkgList->setVisibleInfo (NCPkgTable::I_Descr); + } + else if (event.selection == technical ) + { + pkg->InfoText()->technicalData( pkgPtr, slbPtr ); + pkgList->setVisibleInfo (NCPkgTable::I_Technical); + } + else if (event.selection == files ) + { + pkg->InfoText()->fileList( slbPtr ); + pkgList->setVisibleInfo (NCPkgTable::I_Files); + } + else if (event.selection == deps ) + { + pkg->InfoText()->dependencyList( pkgPtr, slbPtr ); + pkgList->setVisibleInfo (NCPkgTable::I_Deps); + } + else if ( event.selection == patchDescription ) + { + pkg->InfoText()->patchDescription( pkgPtr, slbPtr ); + pkgList->setVisibleInfo (NCPkgTable::I_PatchDescr); + } } + // + // UNUSED + // +#if 0 if (event.selection == versions) { if ( !pkg->VersionsList() ) @@ -110,5 +185,7 @@ pkgList->setVisibleInfo (NCPkgTable::I_Deps); } } +#endif + return true; } Modified: trunk/ncurses-pkg/src/NCPkgMenuView.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgMenuView.h?r... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgMenuView.h (original) +++ trunk/ncurses-pkg/src/NCPkgMenuView.h Tue Apr 15 16:58:51 2008 @@ -46,6 +46,11 @@ YMenuItem *files; YMenuItem *deps; + // Online Update + YMenuItem * patchDescription; + YMenuItem * patchPackages; + YMenuItem * patchPkgVersions; + NCPkgMenuView (YWidget *parent, string label, NCPackageSelector *pkger); virtual ~NCPkgMenuView(); Modified: trunk/ncurses-pkg/src/NCPkgPackageDetails.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgPackageDetai... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgPackageDetails.cc (original) +++ trunk/ncurses-pkg/src/NCPkgPackageDetails.cc Tue Apr 15 16:58:51 2008 @@ -94,7 +94,7 @@ string text = ""; //text += commonHeader( pkgPtr ); - //text += pkgPtr->description(); + text += pkgPtr->description(); // show the description setValue( text ); @@ -231,3 +231,46 @@ } +bool NCPkgPackageDetails::patchDescription( ZyppObj objPtr, ZyppSel selectable ) +{ + ZyppPatch patchPtr = tryCastToZyppPatch( objPtr ); + + if ( !patchPtr || !selectable ) + { + yuiError() << "Patch not valid" << endl; + return false; + } + + string descr; + + descr += NCPkgStrings::Patch(); + descr += selectable->name(); + descr += " "; + // the patch size is not available + // descr += NCPkgStrings::Size(); + // descr += patchPtr->size().asString( 8 ); + descr += "<b>"; + descr += NCPkgStrings::PatchKind(); + descr += ": </b>"; + descr += patchPtr->category(); + descr += " "; + descr += NCPkgStrings::Version(); + descr += patchPtr->edition().asString(); + descr += "<br>"; + + if ( selectable->hasInstalledObj() + && selectable->installedPoolItem().isBroken() ) + { + descr += _( "----- this patch is broken !!! -----" ); + descr += "<br>"; + } + // get and format the patch description + string value = patchPtr->description(); + //descr += createDescrText( value ); + descr += value; + + // show the description + setValue( descr ); + + return true; +} Modified: trunk/ncurses-pkg/src/NCPkgPackageDetails.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgPackageDetai... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgPackageDetails.h (original) +++ trunk/ncurses-pkg/src/NCPkgPackageDetails.h Tue Apr 15 16:58:51 2008 @@ -48,5 +48,6 @@ void dependencyList( ZyppObj objPtr, ZyppSel slbPtr ); + bool patchDescription( ZyppObj objPtr, ZyppSel selectable ); }; #endif Modified: trunk/ncurses-pkg/src/NCPkgTable.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgTable.cc?rev... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgTable.cc (original) +++ trunk/ncurses-pkg/src/NCPkgTable.cc Tue Apr 15 16:58:51 2008 @@ -758,7 +758,9 @@ break; case T_Patches: // show the patch info - packager->showPatchInformation( objPtr, slbPtr ); + if (objPtr && slbPtr ) + updateInfo( objPtr, slbPtr, VisibleInfo() ); + //packager->showPatchInformation( objPtr, slbPtr ); break; default: break; @@ -1162,6 +1164,12 @@ case I_Versions: packager->VersionsList()->fillAvailableList( slbPtr ); break; + case I_PatchDescr: + packager->InfoText()->patchDescription( pkgPtr, slbPtr ); + case I_PatchPkgs: + packager->fillPatchPackages( packager->PatchPkgs(), pkgPtr ); + case I_PatchPkgsVersions: + packager->fillPatchPackages( packager->PatchPkgsVersions(), pkgPtr, true ); default: break; } Modified: trunk/ncurses-pkg/src/NCPkgTable.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgTable.h?rev=... ============================================================================== --- trunk/ncurses-pkg/src/NCPkgTable.h (original) +++ trunk/ncurses-pkg/src/NCPkgTable.h Tue Apr 15 16:58:51 2008 @@ -115,6 +115,9 @@ I_Versions, I_Files, I_Deps, + I_PatchDescr, + I_PatchPkgs, + I_PatchPkgsVersions }; private: -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org