]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/mainwindow.cpp
Conference map
[toast/confclerk.git] / src / gui / mainwindow.cpp
index a1dfe56206234a219c5a721b94cd0b3755c2fbbf..ec6fc0e88262013017e00ae5da5066049ffc1f10 100644 (file)
@@ -121,6 +121,8 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent)
     connect(nowTreeView, SIGNAL(requestForWarning(const QModelIndex &)), SLOT(displayWarning(const QModelIndex &)));
     // event search button clicked
     connect(searchButton, SIGNAL(clicked()), SLOT(searchClicked()));
+    // event conference map button clicked
+    connect(showMapButton, SIGNAL(clicked()), SLOT(conferenceMapClicked()));
     //
     connect(tabWidget, SIGNAL(currentChanged(int)), SLOT(tabHasChanged(int)));
 
@@ -177,9 +179,17 @@ void MainWindow::importSchedule()
 {
     ImportScheduleDialog dialog(mSqlEngine,this);
     dialog.exec();
-    
-    if(Conference::getAll().count())
+
+    QList<Conference> confs = Conference::getAll();
+    if(!confs.count()) // no conference(s) in the DB
     {
+        AppSettings::setConfId(0); // no conference in the DB
+    }
+    else
+    {
+        if(AppSettings::confId() == 0)
+            AppSettings::setConfId(confs[0].id());
+
         // 'dayNavigator' emits signal 'dateChanged' after setting valid START:END dates
         QDate aStartDate = Conference::getById(AppSettings::confId()).start();
         QDate aEndDate = Conference::getById(AppSettings::confId()).end();
@@ -283,6 +293,20 @@ void MainWindow::searchClicked()
     updateSearchView( Conference::getById(AppSettings::confId()).start() );
 }
 
+void MainWindow::conferenceMapClicked()
+{
+
+    QString mapPath = QString(":/maps/campus.png");
+    if(!QFile::exists(mapPath))
+        mapPath = QString(":/maps/rooms/not-available.png");
+
+    QString roomName;
+
+    QPixmap map(mapPath);
+    MapWindow window(map,roomName,this);
+    window.exec();
+}
+
 void MainWindow::displayWarning(const QModelIndex &aIndex)
 {
     Q_UNUSED(aIndex);