1 /*---------------------------------------------------------------------\
3 | __ __ ____ _____ ____ |
4 | \ \ / /_ _/ ___|_ _|___ \ |
5 | \ V / _` \___ \ | | __) | |
6 | | | (_| |___) || | / __/ |
7 | |_|\__,_|____/ |_| |_____| |
11 \----------------------------------------------------------------------/
13 File: YQPkgLangList.cc
15 Author: Stefan Hundhammer <sh@suse.de>
17 Textdomain "packages-qt"
22 #define y2log_component "qt-pkg"
23 #include <ycp/y2log.h>
28 #include "YQPkgLangList.h"
33 YQPkgLangList::YQPkgLangList( QWidget * parent )
34 : YQPkgObjList( parent )
36 y2debug( "Creating language list" );
40 addColumn( "" ); _statusCol = numCol++;
42 // Translators: Table column heading for language ISO code like "de_DE", "en_US"
43 // Please keep this short to avoid stretching the column too wide!
44 addColumn( _( "Code" ) ); _nameCol = numCol++;
46 // Full (human readable) language / country name like "German (Austria)"
47 addColumn( _( "Language" ) ); _summaryCol = numCol++;
48 setAllColumnsShowFocus( true );
51 connect( this, SIGNAL( currentItemChanged ( QTreeWidgetItem *, QTreeWidgetItem * ) ),
52 this, SLOT ( filter() ) );
57 y2debug( "Creating language list done" );
61 YQPkgLangList::~YQPkgLangList()
68 YQPkgLangList::fillList()
71 y2debug( "Filling language list" );
74 for ( ZyppPoolIterator it = zyppLangBegin();
78 ZyppLang zyppLang = tryCastToZyppLang( (*it)->theObj() );
81 addLangItem( *it, zyppLang );
83 y2error( "Found non-Language selectable" );
86 y2debug( "Language list filled" );
91 YQPkgLangList::filterIfVisible()
99 YQPkgLangList::filter()
105 ZyppLang lang = selection()->zyppLang();
109 string currentLang = lang->name();
112 // Iterate over all selectables in pool
115 for ( ZyppPoolIterator it = zyppPkgBegin();
119 ZyppObj zyppObj = (*it)->theObj();
124 // Iterate over all "freshens" dependencies of this object
127 zypp::CapSet freshens = zyppObj->dep( zypp::Dep::FRESHENS );
129 for ( zypp::CapSet::const_iterator cap_it = freshens.begin();
130 cap_it != freshens.end();
133 if ( (*cap_it).index() == currentLang ) // obj freshens this language
135 ZyppPkg pkg = tryCastToZyppPkg( zyppObj );
139 y2debug( "Found pkg %s for lang %s",
140 pkg->name().c_str(), currentLang.c_str() );
142 emit filterMatch( *it, pkg );
146 y2warning( "Found non-pkg obj %s for lang %s",
147 pkg->name().c_str(), currentLang.c_str() );
156 emit filterFinished();
161 YQPkgLangList::addLangItem( ZyppSel selectable,
166 y2error( "NULL ZyppSel!" );
170 new YQPkgLangListItem( this, selectable, zyppLang );
175 YQPkgLangList::selection() const
178 Q3ListViewItem * item = selectedItem();
183 return dynamic_cast<YQPkgLangListItem *> (item);
194 YQPkgLangListItem::YQPkgLangListItem( YQPkgLangList * langList,
197 : YQPkgObjListItem( langList, selectable, lang )
198 , _langList( langList )
205 YQPkgLangListItem::~YQPkgLangListItem()
212 YQPkgLangListItem::applyChanges()
214 solveResolvableCollections();
220 #include "YQPkgLangList.moc"