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" );
39 addColumn( "" ); _statusCol = numCol++;
41 // Translators: Table column heading for language ISO code like "de_DE", "en_US"
42 // Please keep this short to avoid stretching the column too wide!
43 addColumn( _( "Code" ) ); _nameCol = numCol++;
45 // Full (human readable) language / country name like "German (Austria)"
46 addColumn( _( "Language" ) ); _summaryCol = numCol++;
47 setAllColumnsShowFocus( true );
49 connect( this, SIGNAL( selectionChanged ( Q3ListViewItem * ) ),
50 this, SLOT ( filter() ) );
55 y2debug( "Creating language list done" );
59 YQPkgLangList::~YQPkgLangList()
66 YQPkgLangList::fillList()
69 y2debug( "Filling language list" );
72 for ( ZyppPoolIterator it = zyppLangBegin();
76 ZyppLang zyppLang = tryCastToZyppLang( (*it)->theObj() );
79 addLangItem( *it, zyppLang );
81 y2error( "Found non-Language selectable" );
84 y2debug( "Language list filled" );
89 YQPkgLangList::filterIfVisible()
97 YQPkgLangList::filter()
103 ZyppLang lang = selection()->zyppLang();
107 string currentLang = lang->name();
110 // Iterate over all selectables in pool
113 for ( ZyppPoolIterator it = zyppPkgBegin();
117 ZyppObj zyppObj = (*it)->theObj();
122 // Iterate over all "freshens" dependencies of this object
125 zypp::CapSet freshens = zyppObj->dep( zypp::Dep::FRESHENS );
127 for ( zypp::CapSet::const_iterator cap_it = freshens.begin();
128 cap_it != freshens.end();
131 if ( (*cap_it).index() == currentLang ) // obj freshens this language
133 ZyppPkg pkg = tryCastToZyppPkg( zyppObj );
137 y2debug( "Found pkg %s for lang %s",
138 pkg->name().c_str(), currentLang.c_str() );
140 emit filterMatch( *it, pkg );
144 y2warning( "Found non-pkg obj %s for lang %s",
145 pkg->name().c_str(), currentLang.c_str() );
154 emit filterFinished();
159 YQPkgLangList::addLangItem( ZyppSel selectable,
164 y2error( "NULL ZyppSel!" );
168 new YQPkgLangListItem( this, selectable, zyppLang );
173 YQPkgLangList::selection() const
175 Q3ListViewItem * item = selectedItem();
180 return dynamic_cast<YQPkgLangListItem *> (item);
188 YQPkgLangListItem::YQPkgLangListItem( YQPkgLangList * langList,
191 : YQPkgObjListItem( langList, selectable, lang )
192 , _langList( langList )
199 YQPkgLangListItem::~YQPkgLangListItem()
206 YQPkgLangListItem::applyChanges()
208 solveResolvableCollections();
214 #include "YQPkgLangList.moc"