]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/conferenceeditor.cpp
Show conference offset in conference dialog and prepare display offset.
[toast/confclerk.git] / src / gui / conferenceeditor.cpp
index 2c038e6413aab848a2d7b58c3c28283dc50e509d..bd682a5675fb08f680bd83f9dd26860a8596cd97 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2010 Ixonos Plc.
+ * Copyright (C) 2011-2017 Philipp Spitzer, gregor herrmann, Stefan Stahl
  *
  * This file is part of ConfClerk.
  *
@@ -20,7 +21,6 @@
 
 #include "conferencemodel.h"
 #include "urlinputdialog.h"
-#include "mapwindow.h"
 #include "errormessage.h"
 
 #include <QInputDialog>
@@ -49,7 +49,6 @@ ConferenceEditor::ConferenceEditor(ConferenceModel* model, QWidget* parent)
     connect(removeBtn, SIGNAL(clicked()), SLOT(removeClicked()));
     connect(changeUrl, SIGNAL(clicked()), SLOT(changeUrlClicked()));
     connect(refreshBtn, SIGNAL(clicked()), SLOT(refreshClicked()));
-    connect(showMapButton, SIGNAL(clicked()), SLOT(conferenceMapClicked()));
     connect(buttonBox, SIGNAL(rejected()), SLOT(close()));
 
     // it's OK to emit selection signals here
@@ -90,19 +89,16 @@ void ConferenceEditor::itemSelected(const QModelIndex& current, const QModelInde
 
         conferenceTitle->setText(conf.title());
         conferenceSubtitle->setText(conf.subtitle());
-        conferenceWhere->setText(conf.city() + ", " + conf.venue());
+        conferenceWhere->setText(conf.city() + (!conf.venue().isEmpty() ? ", " + conf.venue() : ""));
         conferenceWhen->setText(
-                conf.start().toString("dd-MM-yyyy")
-                + ", " +
-                conf.end().toString("dd-MM-yyyy"));
-
-        QString map = conf.map();
-        if (map.isEmpty()) {
-            showMapButton->hide();
+                conf.start().toString("yyyy-MM-dd")
+                + " - " +
+                conf.end().toString("yyyy-MM-dd"));
+        if (conf.hasUtcOffset()) {
+            conferenceUtcOffset->setText(QString::number(conf.utcOffset()) + " min");
         } else {
-            showMapButton->show();
+            conferenceUtcOffset->setText("N/A");
         }
-
         conferenceInfo->setCurrentIndex(0);
         removeBtn->show();
     }
@@ -112,8 +108,8 @@ void ConferenceEditor::addClicked()
 {
     UrlInputDialog url_input(this);
     switch (url_input.exec()) {
-    case UrlInputDialog::HaveUrl: emit haveConferenceUrl(url_input.url()); break;
-    case UrlInputDialog::HaveFile: emit haveConferenceFile(url_input.url()); break;
+    case UrlInputDialog::HaveUrl: emit haveConferenceUrl(url_input.url(), 0); break;
+    case UrlInputDialog::HaveFile: emit haveConferenceFile(url_input.url(), 0); break;
     case UrlInputDialog::Cancel: return;
     }
 }
@@ -139,13 +135,11 @@ void ConferenceEditor::removeClicked()
 
 void ConferenceEditor::changeUrlClicked()
 {
-    if (selected_id < 0) {
-        return;
-    }
-    const Conference& selected = Conference::getById(selected_id);
+    if (selected_id < 0) return;
+    const Conference& selectedConf = Conference::getById(selected_id);
 
     bool ok;
-    QString url = QInputDialog::getText(this, "URL Input", "Enter schedule URL", QLineEdit::Normal, selected.url(), &ok);
+    QString url = QInputDialog::getText(this, "URL Input", "Enter schedule URL", QLineEdit::Normal, selectedConf.url(), &ok);
 
     if (ok) {
         emit changeUrlRequested(selected_id, url);
@@ -154,27 +148,21 @@ void ConferenceEditor::changeUrlClicked()
 
 void ConferenceEditor::refreshClicked()
 {
-    if (selected_id < 0) {
-        return;
-    }
-    const Conference& selected = Conference::getById(selected_id);
-
-    QString url = selected.url();
+    if (selected_id <= 0) return;
+    const Conference& selectedConf = Conference::getById(selected_id);
+    QString url = selectedConf.url();
 
-    if (!url.isEmpty()) {
-        emit haveConferenceUrl(url);
-    } else {
+    if (url.isEmpty()) {
         static const QString format("Schedule URL for %1 is not set. Enter the schedule URL:");
         bool ok;
-        QString url = QInputDialog::getText(this, "URL Input", format.arg(selected.title()), QLineEdit::Normal, QString(), &ok);
-
-        if (ok) {
-            // first save it, to remain if fetch fails
-            emit changeUrlRequested(selected_id, url);
-            // then fetch
-            emit haveConferenceUrl(url);
-        }
+        url = QInputDialog::getText(this, "URL Input", format.arg(selectedConf.title()), QLineEdit::Normal, QString(), &ok);
+        if (!ok) return;
+        // first save it, to remain if fetch fails
+        emit changeUrlRequested(selected_id, url);
     }
+    // fetch
+    importStarted(); // just to show the progress bar
+    emit haveConferenceUrl(url, selected_id);
 }
 
 void ConferenceEditor::importStarted()
@@ -195,9 +183,7 @@ void ConferenceEditor::showParsingProgress(int progress)
     QApplication::processEvents();
 }
 
-void ConferenceEditor::importFinished(const QString& title)
-{
-    qDebug() << __PRETTY_FUNCTION__ << title;
+void ConferenceEditor::importFinished(int conferenceId) {
     addBtn->show();
     // removeItem should be shown later, but it takes some time,
     // and not looks good
@@ -208,29 +194,10 @@ void ConferenceEditor::importFinished(const QString& title)
 
     QApplication::processEvents();
 
-    int num = model->rowCount();
-    for (int i = 0; i < num; i++) {
-        QModelIndex item = model->index(i, 0);
-        if (model->data(item) == title) {
-            emit wantCurrent(item, QItemSelectionModel::SelectCurrent);
-            return;
-        }
-    }
-    itemSelected(QModelIndex(), QModelIndex());
+    QModelIndex item = model->indexFromId(conferenceId);
+    if (item.isValid())
+        emit wantCurrent(item, QItemSelectionModel::SelectCurrent);
+    else
+        itemSelected(QModelIndex(), QModelIndex());
 }
 
-void ConferenceEditor::conferenceMapClicked()
-{
-    Conference conf = Conference::getById(selected_id);
-    QString mapPath = conf.map();
-    if(mapPath.isEmpty() or !QFile::exists(mapPath)) {
-        error_message("Map is not available");
-        return;
-    }
-
-    QString roomName;
-
-    QPixmap map(mapPath);
-    MapWindow window(map,roomName,this);
-    window.exec();
-}