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.setStyleHint( QFont::Helvetica );
17 regularTextFont.setBold( true );
18 regularTextFont.setPixelSize( 18 );
20 iRoomCombo = new QComboBox( this );
21 for ( int i = 0; i < iRooms.count(); i++ )
23 iRoomCombo->addItem( iRooms.at( i )->name() );
25 iRoomCombo->setFont( regularTextFont );
26 iRoomCombo->setFixedHeight( 46 );
27 connect( iRoomCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( setCurrentIndex( int ) ) );
28 connect( iRoomCombo, SIGNAL( currentIndexChanged( const QString & ) ), this, SLOT( setCurrentRoomBy( const QString & ) ) );
30 QHBoxLayout *layout = new QHBoxLayout;
31 layout->addWidget( iRoomCombo );
32 layout->setMargin( 0 );
36 MeetingRoomCombo::~MeetingRoomCombo()
42 int MeetingRoomCombo::count()
44 return iRoomCombo->count();
47 int MeetingRoomCombo::currentIndex()
49 return iRoomCombo->currentIndex();
52 Room* MeetingRoomCombo::currentRoom()
54 return currentIndex() >= 0 ? iRooms.at( currentIndex() ) : 0;
57 void MeetingRoomCombo::setCurrentIndex( int aIndex )
59 if ( 0 <= aIndex && aIndex < count() )
61 iRoomCombo->setCurrentIndex( aIndex );
65 iRoomCombo->setCurrentIndex( -1 );
68 emit currentRoomChanged( currentRoom() );
69 emit currentIndexChanged( currentIndex() );
72 void MeetingRoomCombo::setCurrentRoom( Room *aRoom )
74 setCurrentIndex( findRoom( aRoom ) );
77 void MeetingRoomCombo::setCurrentRoomBy( const QString &aName )
79 setCurrentIndex( findRoomBy( aName ) );
82 int MeetingRoomCombo::findRoom( Room *aRoom )
86 qDebug() << "MeetingRoomCombo::findRoom\t-1";
90 for ( int i = 0; i < iRooms.count(); i++ )
92 if ( aRoom->equals( *( iRooms.at( i ) ) ) )
94 qDebug() << "MeetingRoomCombo::findRoom\t" << i;
98 qDebug() << "MeetingRoomCombo::findRoom\t-1";
102 int MeetingRoomCombo::findRoomBy( const QString &aName )
104 return iRoomCombo->findText( aName );