From e2c612c9325a8241c8c421b759f4e3d443c80223 Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Tue, 25 Sep 2012 20:50:11 +0000 Subject: [PATCH] Reloading a conference works now. --- src/gui/conferenceeditor.cpp | 17 ++++++----------- src/gui/conferenceeditor.h | 2 +- src/gui/mainwindow.cpp | 4 ++-- src/mvc/conferencemodel.cpp | 5 ++--- src/mvc/conferencemodel.h | 2 +- src/sql/schedulexmlparser.cpp | 4 ++-- src/sql/schedulexmlparser.h | 2 +- src/sql/sqlengine.cpp | 2 +- 8 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/gui/conferenceeditor.cpp b/src/gui/conferenceeditor.cpp index 5de436b..bfc736a 100644 --- a/src/gui/conferenceeditor.cpp +++ b/src/gui/conferenceeditor.cpp @@ -178,8 +178,7 @@ void ConferenceEditor::showParsingProgress(int progress) QApplication::processEvents(); } -void ConferenceEditor::importFinished(const QString& title) -{ +void ConferenceEditor::importFinished(int conferenceId) { addBtn->show(); // removeItem should be shown later, but it takes some time, // and not looks good @@ -190,14 +189,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()); } diff --git a/src/gui/conferenceeditor.h b/src/gui/conferenceeditor.h index 33454c1..9b602b4 100644 --- a/src/gui/conferenceeditor.h +++ b/src/gui/conferenceeditor.h @@ -55,7 +55,7 @@ signals: void wantCurrent(const QModelIndex&, QItemSelectionModel::SelectionFlags); public slots: void importStarted(); - void importFinished(const QString& title); + void importFinished(int conferenceId); void conferenceRemoved(); void showParsingProgress(int); private slots: diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 9a17036..a0b7cec 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -132,7 +132,7 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent): QMainWindow(aParent) { connect(mNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), SLOT(networkQueryFinished(QNetworkReply*))); connect(mXmlParser, SIGNAL(parsingScheduleBegin()), conferenceModel, SLOT(newConferenceBegin())); - connect(mXmlParser, SIGNAL(parsingScheduleEnd(const QString&)), conferenceModel, SLOT(newConferenceEnd(const QString&))); + connect(mXmlParser, SIGNAL(parsingScheduleEnd(int)), conferenceModel, SLOT(newConferenceEnd(int))); } void MainWindow::on_aboutAction_triggered() @@ -340,7 +340,7 @@ void MainWindow::on_conferencesAction_triggered() connect(mXmlParser, SIGNAL(parsingScheduleBegin()), &dialog, SLOT(importStarted())); connect(mXmlParser, SIGNAL(progressStatus(int)), &dialog, SLOT(showParsingProgress(int))); - connect(mXmlParser, SIGNAL(parsingScheduleEnd(const QString&)), &dialog, SLOT(importFinished(const QString&))); + connect(mXmlParser, SIGNAL(parsingScheduleEnd(int)), &dialog, SLOT(importFinished(int))); connect(this, SIGNAL(conferenceRemoved()), &dialog, SLOT(conferenceRemoved())); diff --git a/src/mvc/conferencemodel.cpp b/src/mvc/conferencemodel.cpp index 16d76a5..94f6f4b 100644 --- a/src/mvc/conferencemodel.cpp +++ b/src/mvc/conferencemodel.cpp @@ -77,9 +77,8 @@ void ConferenceModel::newConferenceBegin() { } -void ConferenceModel::newConferenceEnd(const QString& title) -{ - Q_UNUSED(title); +void ConferenceModel::newConferenceEnd(int conferenceId) { + Q_UNUSED(conferenceId); reinit(); } diff --git a/src/mvc/conferencemodel.h b/src/mvc/conferencemodel.h index cd1c4fd..6737ce6 100644 --- a/src/mvc/conferencemodel.h +++ b/src/mvc/conferencemodel.h @@ -46,7 +46,7 @@ public: QModelIndex indexFromId(int id) const; public slots: void newConferenceBegin(); - void newConferenceEnd(const QString& title); + void newConferenceEnd(int conferenceId); void conferenceRemoved(); private: // reinitialize list from database diff --git a/src/sql/schedulexmlparser.cpp b/src/sql/schedulexmlparser.cpp index e4a40f6..4256290 100644 --- a/src/sql/schedulexmlparser.cpp +++ b/src/sql/schedulexmlparser.cpp @@ -54,7 +54,7 @@ void ScheduleXmlParser::parseData(const QByteArray &aData, const QString& url, i { emit(parsingScheduleBegin()); QHash conference; - conference["id"] = conferenceId; // conference ID is assigned automatically if 0 + conference["id"] = QVariant(conferenceId).toString(); // conference ID is assigned automatically if 0 conference["title"] = conferenceElement.firstChildElement("title").text(); conference["subtitle"] = conferenceElement.firstChildElement("subtitle").text(); conference["venue"] = conferenceElement.firstChildElement("venue").text(); @@ -153,7 +153,7 @@ void ScheduleXmlParser::parseData(const QByteArray &aData, const QString& url, i } // schedule element sqlEngine->commitTransaction(); if (!conference_title.isNull()) { - emit parsingScheduleEnd(conference_title); + emit parsingScheduleEnd(conferenceId); } else { error_message("Could not parse schedule"); } diff --git a/src/sql/schedulexmlparser.h b/src/sql/schedulexmlparser.h index c23c43e..b219ec2 100644 --- a/src/sql/schedulexmlparser.h +++ b/src/sql/schedulexmlparser.h @@ -37,7 +37,7 @@ class ScheduleXmlParser : public QObject signals: void progressStatus(int aStatus); void parsingScheduleBegin(); - void parsingScheduleEnd(const QString& title); + void parsingScheduleEnd(int conferenceId); }; #endif /* SCHEDULEXMLPARSER_H_ */ diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp index 878cfb8..f9e58c4 100644 --- a/src/sql/sqlengine.cpp +++ b/src/sql/sqlengine.cpp @@ -162,7 +162,7 @@ void SqlEngine::addConferenceToDB(QHash &aConference, int confe query.bindValue(":id", conferenceId); query.exec(); emitSqlQueryError(query); - aConference["id"] = conferenceId; + aConference["id"] = QVariant(conferenceId).toString(); } } -- 2.39.5