Author: dmacvicar Date: Mon Aug 11 18:31:22 2008 New Revision: 49956 URL: http://svn.opensuse.org/viewcvs/yast?rev=49956&view=rev Log: - Fixed bnc#394657 : package selector crashes when selecting languages with keyboard Modified: trunk/qt-pkg/package/yast2-qt-pkg.changes trunk/qt-pkg/src/YQPkgLangList.cc trunk/qt-pkg/src/YQPkgLangList.h trunk/qt-pkg/src/YQPkgObjList.cc Modified: trunk/qt-pkg/package/yast2-qt-pkg.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/package/yast2-qt-pkg.changes?rev=49956&r1=49955&r2=49956&view=diff ============================================================================== --- trunk/qt-pkg/package/yast2-qt-pkg.changes (original) +++ trunk/qt-pkg/package/yast2-qt-pkg.changes Mon Aug 11 18:31:22 2008 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Mon Aug 11 18:23:19 CEST 2008 - dmacvicar@suse.de + +- Fixed bnc#394657 : package selector crashes when + selecting languages with keyboard + +------------------------------------------------------------------- Tue Jul 29 08:38:41 CEST 2008 - tgoettlicher@suse.de - Fixed bnc #389174: changing packages with keyboard is broken Modified: trunk/qt-pkg/src/YQPkgLangList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgLangList.cc?rev=49956&r1=49955&r2=49956&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgLangList.cc (original) +++ trunk/qt-pkg/src/YQPkgLangList.cc Mon Aug 11 18:31:22 2008 @@ -226,6 +226,43 @@ return S_NoInst; } +void +YQPkgLangListItem::setStatus( ZyppStatus newStatus, bool sendSignals ) +{ + ZyppStatus oldStatus = status(); + + switch ( newStatus ) + { + case S_Install: + if ( ! zypp::getZYpp()->pool().isRequestedLocale( _zyppLang ) ) + { + zypp::getZYpp()->pool().addRequestedLocale( _zyppLang ); + } + break; + case S_NoInst: + if ( zypp::getZYpp()->pool().isRequestedLocale( _zyppLang ) ) + { + zypp::getZYpp()->pool().eraseRequestedLocale( _zyppLang ); + } + break; + default: + return; + } + + if ( oldStatus != newStatus ) + { + applyChanges(); + + if ( sendSignals ) + { + _pkgObjList->updateItemStates(); + _pkgObjList->sendUpdatePackages(); + } + } + + setStatusIcon(); + _pkgObjList->sendStatusChanged(); +} bool YQPkgLangListItem::bySelection() const Modified: trunk/qt-pkg/src/YQPkgLangList.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgLangList.h?rev=49956&r1=49955&r2=49956&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgLangList.h (original) +++ trunk/qt-pkg/src/YQPkgLangList.h Mon Aug 11 18:31:22 2008 @@ -141,9 +141,11 @@ int statusCol() const { return _langList->statusCol(); } /** - * Returns the (binary RPM) package status + * override this two as we don't have a real selectable and + * the status depends on the language **/ virtual ZyppStatus status() const; + virtual void setStatus( ZyppStatus newStatus, bool sendSignals = true ); /** * Returns 'true' if this selectable's status is set by a selection Modified: trunk/qt-pkg/src/YQPkgObjList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgObjList.cc?rev=49956&r1=49955&r2=49956&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgObjList.cc (original) +++ trunk/qt-pkg/src/YQPkgObjList.cc Mon Aug 11 18:31:22 2008 @@ -1264,6 +1264,10 @@ void YQPkgObjListItem::showNotifyTexts( ZyppStatus status ) { + // just return if no selectable + if ( ! selectable() ) + return; + string text; switch ( status ) @@ -1301,6 +1305,12 @@ bool YQPkgObjListItem::showLicenseAgreement( ZyppSel sel ) { + // if we have a subclass with no selectable + // confirming the license should be just always + // true + if ( ! sel ) + return true; + string licenseText; switch ( sel->status() ) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org