30 #include <QStackedWidget>
31 #include <QHBoxLayout>
35 #define YUILogComponent "qt-pkg"
36 #include <yui/YUILog.h>
38 #include "QY2ComboTabWidget.h"
41 #define SPACING 6 // between subwidgets
42 #define MARGIN 4 // around the widget
51 QVBoxLayout *vbox =
new QVBoxLayout(
this);
54 QHBoxLayout *hbox =
new QHBoxLayout();
59 hbox->setSpacing( 0 );
60 hbox->setMargin ( 0 );
62 vbox->addLayout(hbox);
64 this->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) );
66 combo_label =
new QLabel(label);
67 hbox->addWidget(combo_label);
68 Q_CHECK_PTR( combo_label );
70 combo_box =
new QComboBox(
this );
71 Q_CHECK_PTR( combo_box );
72 hbox->addWidget(combo_box);
73 combo_label->setBuddy( combo_box );
74 combo_box->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
75 connect( combo_box, SIGNAL( activated(
int ) ),
78 widget_stack =
new QStackedWidget(
this );
79 Q_CHECK_PTR( widget_stack );
80 vbox->addWidget(widget_stack);
94 pages.insert( combo_box->count(), new_page );
95 combo_box->addItem( page_label );
96 widget_stack->addWidget( new_page );
98 if ( ! widget_stack->currentWidget() )
99 widget_stack->setCurrentWidget( new_page );
106 if ( pages.contains(index) )
108 QWidget * page = pages[ index ];
109 widget_stack->setCurrentWidget( page );
115 qWarning(
"QY2ComboTabWidget: Page #%d not found", index );
124 widget_stack->setCurrentWidget( page );
126 if ( page == pages[ combo_box->currentIndex() ] )
136 QHashIterator<int, QWidget *> it( pages );
138 while ( it.hasNext() )
141 if ( page == it.value() )
143 combo_box->setCurrentIndex( it.key() );
150 qWarning(
"QY2ComboTabWidget: Page not found" );
155 #include "QY2ComboTabWidget.moc"