1 #include "MeetingRoomCombo.h"
9 MeetingRoomCombo::MeetingRoomCombo( QList<Room*> aRooms, QWidget *aParent ) :
13 qSort( iRooms.begin(), iRooms.end(), Room::caseInsensitiveLessThan );
15 QFont regularTextFont;
16 regularTextFont.setBold( false );
17 regularTextFont.setPointSize( 12 );
19 iRoomCombo = new QComboBox( this );
20 for ( int i = 0; i < iRooms.count(); i++ )
22 iRoomCombo->addItem( iRooms.at( i )->name() );
24 iRoomCombo->setFont( regularTextFont );
25 connect( iRoomCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( setCurrentIndex( int ) ) );
26 connect( iRoomCombo, SIGNAL( currentIndexChanged( const QString & ) ), this, SLOT( setCurrentRoomBy( const QString & ) ) );
28 QHBoxLayout *layout = new QHBoxLayout;
29 layout->addWidget( iRoomCombo );
30 layout->setMargin( 0 );
34 MeetingRoomCombo::~MeetingRoomCombo()
40 int MeetingRoomCombo::count()
42 return iRoomCombo->count();
45 int MeetingRoomCombo::currentIndex()
47 return iRoomCombo->currentIndex();
50 Room* MeetingRoomCombo::currentRoom()
52 return currentIndex() >= 0 ? iRooms.at( currentIndex() ) : 0;
55 void MeetingRoomCombo::setCurrentIndex( int aIndex )
57 if ( 0 <= aIndex && aIndex < count() )
59 iRoomCombo->setCurrentIndex( aIndex );
63 iRoomCombo->setCurrentIndex( -1 );
66 emit currentRoomChanged( currentRoom() );
67 emit currentIndexChanged( currentIndex() );
70 void MeetingRoomCombo::setCurrentRoom( Room *aRoom )
72 setCurrentIndex( findRoom( aRoom ) );
75 void MeetingRoomCombo::setCurrentRoomBy( const QString &aName )
77 setCurrentIndex( findRoomBy( aName ) );
80 int MeetingRoomCombo::findRoom( Room *aRoom )
84 qDebug() << "MeetingRoomCombo::findRoom\t-1";
88 for ( int i = 0; i < iRooms.count(); i++ )
90 if ( aRoom->equals( *( iRooms.at( i ) ) ) )
92 qDebug() << "MeetingRoomCombo::findRoom\t" << i;
96 qDebug() << "MeetingRoomCombo::findRoom\t-1";
100 int MeetingRoomCombo::findRoomBy( const QString &aName )
102 return iRoomCombo->findText( aName );