1 // File : SALOME_ProductsView.cxx
2 // Created : Thu Dec 18 12:01:00 2002
3 // Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
5 // Module : Installation Wizard
6 // Copyright : 2002-2015 CEA
8 #include "SALOME_ProductsView.hxx"
9 #include <qstringlist.h>
12 // ================================================================
14 * ProductsViewItem::ProductsViewItem
17 // ================================================================
18 ProductsViewItem::ProductsViewItem( ProductsView* parent, const QString& text, Type tt )
19 : QCheckListItem( parent, text, tt )
22 // ================================================================
24 * ProductsViewItem::stateChange
25 * Called when users switches item on/off
27 // ================================================================
28 void ProductsViewItem::stateChange( bool on ) {
29 QCheckListItem::stateChange( on );
30 ((ProductsView*)listView())->itemActivated( (QCheckListItem*)this );
33 // ================================================================
35 * ProductsView::ProductsView
38 // ================================================================
39 ProductsView::ProductsView( QWidget* parent, const char* name )
40 : QListView( parent, name )
42 setRootIsDecorated( false );
43 addColumn( tr( "Module" ) );
44 addColumn( tr( "Size" ) );
45 setResizeMode( LastColumn );
46 setSorting( -1, false );
48 // ================================================================
50 * ProductsView::addItem
51 * Adds product item into the list
53 // ================================================================
54 QCheckListItem* ProductsView::addItem( const QString& name,
56 const QString& script )
58 QCheckListItem* item = 0;
59 item = new ProductsViewItem( this, name, QCheckListItem::CheckBox );
60 item->setText( 1, size );
61 item->setText( 2, script );
62 item->moveItem( this->lastItem() );
65 // ================================================================
67 * ProductsView::renameColumn
68 * Sets the given text as a heading of the given column
70 // ================================================================
71 void ProductsView::renameColumn( int column, const QString& label )
73 setColumnText( column, label );
75 // ================================================================
77 * ProductsView::itemActivated
78 * Emits signal when checkbox or radiobutton is switched
80 // ================================================================
81 void ProductsView::itemActivated( QCheckListItem* item ) {
82 emit itemToggled( item );
84 // ================================================================
86 * ProductsView::setItemEnabled
89 // ================================================================
90 void ProductsView::setItemEnabled( QCheckListItem* item, const bool enable )
92 item->setEnabled( enable );
93 QListViewItem* subItem = item->firstChild();
95 subItem->setEnabled( enable );
96 subItem = subItem->nextSibling();
99 // ================================================================
101 * ProductsView::findBinItem
102 * Find bin item which corresponds to the src item
104 // ================================================================
105 QCheckListItem* ProductsView::findBinItem( const QString& srcName )
107 QString binName = srcName.lower().replace( QRegExp("src"), "bin" );
108 QCheckListItem* subItem = (QCheckListItem*)( firstChild() );
110 if ( subItem->text().lower() == binName )
112 subItem = (QCheckListItem*)( subItem->nextSibling() );