connect(tabWidget, SIGNAL(infoIconClicked()), SLOT(aboutApp()));
- if(Conference::getAll().count())
+ selectConference->setDuplicatesEnabled(false);
+ int confCount = Conference::getAll().count();
+ if(confCount)
{
initTabs();
fillAndShowConferenceHeader();
setWindowTitle(Conference::getById(confId).title());
+
+ if(confCount==1) // don't have to show 'selectConference' widget, if there is only one conference in the DB
+ selectConferenceWidget->hide();
+ else
+ {
+ // have to fill comboBox with available conferences
+ QList<Conference> confs = Conference::getAll();
+ QListIterator<Conference> i(confs);
+ while(i.hasNext())
+ {
+ Conference conf = i.next();
+ selectConference->addItem(conf.title(),conf.id());
+ }
+ int idx = selectConference->findText(Conference::getById(Conference::activeConference()).title());
+ selectConference->setCurrentIndex(idx);
+ }
+ connect(selectConference, SIGNAL(currentIndexChanged(int)), SLOT(conferenceChanged(int)));
}
else
{
conferenceHeader->hide();
+ selectConferenceWidget->hide();
// go to the 'conferenceTab', so the user can import the schedule
tabWidget->setCurrentIndex(6); // 6 - conference tab
}
{
Q_UNUSED(aConfId);
- QList<Conference> confs = Conference::getAll();
- if(confs.count())
+ Conference conf = Conference::getById(aConfId);
+ if( selectConference->findText(conf.title()) < 0 ) // item doesn't exist
{
- initTabs();
- fillAndShowConferenceHeader();
- setWindowTitle(Conference::getById(Conference::activeConference()).title());
+ disconnect(selectConference, SIGNAL(currentIndexChanged(int)), this, SLOT(conferenceChanged(int)));
+ selectConference->addItem(conf.title(),conf.id());
+ connect(selectConference, SIGNAL(currentIndexChanged(int)), SLOT(conferenceChanged(int)));
+ }
+ int confCount = Conference::getAll().count();
+ if(confCount)
+ {
+ int idx = selectConference->findText(conf.title());
+ selectConference->setCurrentIndex(idx);
+
+ if(confCount>1)
+ selectConferenceWidget->show();
+
+ conferenceChanged(idx);
}
}
nowTabContainer->updateTreeView(QDate::currentDate());
}
+void MainWindow::conferenceChanged(int aIndex)
+{
+ Conference::getById(Conference::activeConference()).update("active",0);
+ Conference::getById(selectConference->itemData(aIndex).toInt()).update("active",1);
+
+ initTabs();
+ fillAndShowConferenceHeader();
+ setWindowTitle(Conference::getById(Conference::activeConference()).title());
+}
+
</layout>
</widget>
</item>
+ <item>
+ <widget class="QWidget" native="1" name="selectConferenceWidget" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <widget class="QLabel" name="selectConferenceLabel" >
+ <property name="text" >
+ <string>Select conference: </string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QComboBox" name="selectConference" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
<item>
<widget class="ImportScheduleWidget" native="1" name="importScheduleWidget" >
<property name="sizePolicy" >
if(!aIndex.isValid())
return handled;
+ int confId = Conference::activeConference();
QRect rect = visualRect(aIndex); // visual QRect of selected/clicked item in the list
Delegate *delegate = static_cast<Delegate*>(itemDelegate(aIndex));
switch(delegate->whichControlClicked(aIndex,aPoint))
case Delegate::FavouriteControlOff:
{
// handle Favourite Control clicked
- Event event = Event::getById(aIndex.data().toInt(),1);
+ Event event = Event::getById(aIndex.data().toInt(),confId);
QList<Event> conflicts = Event::conflictEvents(event.id(),Conference::activeConference());
if(event.isFavourite())
case Delegate::AlarmControlOff:
{
// handle Alarm Control clicked
- Event event = Event::getById(aIndex.data().toInt(),1);
+ Event event = Event::getById(aIndex.data().toInt(),confId);
if(event.hasAlarm())
{
event.setHasAlarm(false); // update DB
#ifdef MAEMO
// add alarm to the 'alarmd'
Alarm alarm;
- int cookie = alarm.addAlarm(event.id(),QDateTime::currentDateTime().addSecs(10));
+ //int cookie = alarm.addAlarm(event.id(),QDateTime::currentDateTime().addSecs(10)); // testing
+ int cookie = alarm.addAlarm(event.id(),event.start().addSecs(-15*60)); // 15 minutes before real start
qDebug() << "cookie: " << cookie;
#endif /* MAEMO */
}