![](https://seccdn.libravatar.org/avatar/09d48268ad1ffb8c8e17fbc3b36e1480.jpg?s=120&d=mm&r=g)
Author: coolo Date: Fri Feb 15 16:47:12 2008 New Revision: 44539 URL: http://svn.opensuse.org/viewcvs/yast?rev=44539&view=rev Log: don't crash, but that's about what I can test atm Modified: trunk/qt-pkg/src/YQPkgLangList.cc trunk/qt-pkg/src/YQPkgLangList.h trunk/qt-pkg/src/YQPkgObjList.cc trunk/qt-pkg/src/YQPkgObjList.h Modified: trunk/qt-pkg/src/YQPkgLangList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgLangList.cc?rev=44539&r1=44538&r2=44539&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgLangList.cc (original) +++ trunk/qt-pkg/src/YQPkgLangList.cc Fri Feb 15 16:47:12 2008 @@ -71,6 +71,10 @@ yuiDebug() << "Filling language list" << endl; zypp::LocaleSet locales = zypp::getZYpp()->pool().getAvailableLocales(); +#warning FIXME: had to hardcode examples for now + locales.insert( zypp::Locale( "de_DE" ) ); + locales.insert( zypp::Locale( "de" ) ); + for ( zypp::LocaleSet::const_iterator it = locales.begin(); it != locales.end(); ++it ) @@ -134,9 +138,10 @@ YQPkgLangListItem::YQPkgLangListItem( YQPkgLangList * langList, const zypp::Locale &lang ) - : YQPkgObjListItem( langList, 0 ) + : YQPkgObjListItem( langList ) , _zyppLang( lang ) { + init(); } @@ -153,7 +158,44 @@ solveResolvableCollections(); } +void +YQPkgLangListItem::init() +{ + // DO NOT CALL PARENT CLASS + _debugIsBroken = false; + _debugIsSatisfied = false; + _candidateIsNewer = false; + _installedIsNewer = false; + + if ( nameCol() >= 0 ) setText( nameCol(), _zyppLang.code() ); + if ( summaryCol() >= 0 ) setText( summaryCol(), _zyppLang.name() ); + + setStatusIcon(); +} + +ZyppStatus YQPkgLangListItem::status() const +{ + if ( zypp::getZYpp()->pool().isRequestedLocale( _zyppLang ) ) + return S_Install; + else + return S_NoInst; +} + +bool YQPkgLangListItem::bySelection() const +{ + return zypp::getZYpp()->pool().isRequestedLocale( _zyppLang ); +} +void YQPkgLangListItem::cycleStatus() +{ + if ( zypp::getZYpp()->pool().isRequestedLocale( _zyppLang ) ) + { + zypp::getZYpp()->pool().eraseRequestedLocale( _zyppLang ); + } else { + zypp::getZYpp()->pool().addRequestedLocale( _zyppLang ); + } + setStatusIcon(); +} #include "YQPkgLangList.moc" Modified: trunk/qt-pkg/src/YQPkgLangList.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgLangList.h?rev=44539&r1=44538&r2=44539&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgLangList.h (original) +++ trunk/qt-pkg/src/YQPkgLangList.h Fri Feb 15 16:47:12 2008 @@ -128,11 +128,28 @@ **/ zypp::Locale zyppLang() const { return _zyppLang; } + /// overloaded + virtual void init(); // Columns int statusCol() const { return _langList->statusCol(); } + /** + * Returns the (binary RPM) package status + **/ + virtual ZyppStatus status() const; + + /** + * Returns 'true' if this selectable's status is set by a selection + * (rather than by the user or by the dependency solver). + **/ + virtual bool bySelection() const; + + /** + * Cycle the package status to the next valid value. + **/ + virtual void cycleStatus(); protected: Modified: trunk/qt-pkg/src/YQPkgObjList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgObjList.cc?rev=44539&r1=44538&r2=44539&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgObjList.cc (original) +++ trunk/qt-pkg/src/YQPkgObjList.cc Fri Feb 15 16:47:12 2008 @@ -889,6 +889,17 @@ } +YQPkgObjListItem::YQPkgObjListItem( YQPkgObjList * pkgObjList ) + : QY2ListViewItem( pkgObjList ) + , _pkgObjList( pkgObjList ) + , _selectable( 0 ) + , _zyppObj( 0 ) + , _editable( true ) + , _excluded( false ) +{ +} + + YQPkgObjListItem::~YQPkgObjListItem() { // NOP @@ -1078,7 +1089,7 @@ if ( isBroken() ) { setIcon( brokenIconCol(), YQIconPool::warningSign() ); - + yuiWarning() << "Broken object: " << _selectable->theObj()->name() << " - " << _selectable->theObj()->summary() << endl; Modified: trunk/qt-pkg/src/YQPkgObjList.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt-pkg/src/YQPkgObjList.h?rev=44539&r1=44538&r2=44539&view=diff ============================================================================== --- trunk/qt-pkg/src/YQPkgObjList.h (original) +++ trunk/qt-pkg/src/YQPkgObjList.h Fri Feb 15 16:47:12 2008 @@ -221,7 +221,7 @@ * Write statistics about excluded items to the log, if there are any. **/ void logExcludeStatistics(); - + // Direct access to some states for menu actions @@ -344,7 +344,7 @@ bool _debug; typedef list<ExcludeRule *> ExcludeRuleList; - + ExcludeRuleList _excludeRules; ExcludedItems * _excludedItems; @@ -392,6 +392,13 @@ ZyppSel selectable, ZyppObj zyppObj = 0 ); + /** + * Constructor for root items: Creates a YQPkgObjList item that does not + * correspond to a ZYPP selectable. You need to overload _AND RUN_ init + * yourself then. + **/ + YQPkgObjListItem( YQPkgObjList * pkgObjList ); + protected: /** * Constructor for non-root items. @@ -433,13 +440,13 @@ /** * Returns the (binary RPM) package status **/ - ZyppStatus status() const; + virtual ZyppStatus status() const; /** * Returns 'true' if this selectable's status is set by a selection * (rather than by the user or by the dependency solver). **/ - bool bySelection() const; + virtual bool bySelection() const; /** * Set the (binary RPM) package status. @@ -585,7 +592,8 @@ protected: /** - * Initialize internal data and set fields accordingly. + * Initialize internal data and set fields accordingly. Only works for items + * presenting selectables - see YQPkgObjListItem **/ void init(); @@ -659,7 +667,7 @@ const QRegExp & regexp, int column = 0 ); - + // Intentionally omitting virtual destructor: // No allocated objects, no other virtual methods, // no need to have a vtable for each instance of this class. @@ -704,7 +712,7 @@ YQPkgObjList * parent() const { return _parent; } /** - * Check a list item against this exclude rule. + * Check a list item against this exclude rule. * Returns 'true' if the item matches this exclude rule, * i.e. if it should be excluded. **/ -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org