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
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 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:
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()
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()));
{
}
-void ConferenceModel::newConferenceEnd(const QString& title)
-{
- Q_UNUSED(title);
+void ConferenceModel::newConferenceEnd(int conferenceId) {
+ Q_UNUSED(conferenceId);
reinit();
}
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
{
emit(parsingScheduleBegin());
QHash<QString,QString> 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();
} // schedule element
sqlEngine->commitTransaction();
if (!conference_title.isNull()) {
- emit parsingScheduleEnd(conference_title);
+ emit parsingScheduleEnd(conferenceId);
} else {
error_message("Could not parse schedule");
}
signals:
void progressStatus(int aStatus);
void parsingScheduleBegin();
- void parsingScheduleEnd(const QString& title);
+ void parsingScheduleEnd(int conferenceId);
};
#endif /* SCHEDULEXMLPARSER_H_ */
query.bindValue(":id", conferenceId);
query.exec();
emitSqlQueryError(query);
- aConference["id"] = conferenceId;
+ aConference["id"] = QVariant(conferenceId).toString();
}
}