From a957cfaf36dae70378f43993adff10eb2ae7560e Mon Sep 17 00:00:00 2001 From: pavelpa Date: Thu, 21 Jan 2010 15:29:21 +0000 Subject: [PATCH] forgotten Import Schedule Dialog files --- src/gui/importscheduledialog.cpp | 68 +++++++++++++++++++ src/gui/importscheduledialog.h | 27 ++++++++ src/gui/importscheduledialog.ui | 113 +++++++++++++++++++++++++++++++ 3 files changed, 208 insertions(+) create mode 100644 src/gui/importscheduledialog.cpp create mode 100644 src/gui/importscheduledialog.h create mode 100644 src/gui/importscheduledialog.ui diff --git a/src/gui/importscheduledialog.cpp b/src/gui/importscheduledialog.cpp new file mode 100644 index 0000000..c42d18d --- /dev/null +++ b/src/gui/importscheduledialog.cpp @@ -0,0 +1,68 @@ +#include "importscheduledialog.h" + +#include +#include + +#include +#include +#include +#include + +ImportScheduleDialog::ImportScheduleDialog(SqlEngine *aSqlEngine, QWidget *aParent) + : QDialog(aParent) + , mSqlEngine(aSqlEngine) +{ + setupUi(this); + + mXmlParser = new ScheduleXmlParser(this); + connect(mXmlParser, SIGNAL(progressStatus(int)), this, SLOT(showParsingProgress(int))); + connect(import, SIGNAL(clicked()), SLOT(importSchedule())); + connect(search, SIGNAL(clicked()), SLOT(searchSchedule())); + progressBar->hide(); + import->setEnabled(false); +} + +ImportScheduleDialog::~ImportScheduleDialog() +{ + if(mXmlParser) + { + delete mXmlParser; + mXmlParser = NULL; + } +} + +void ImportScheduleDialog::showParsingProgress(int progress) +{ + progressBar->setValue(progress); +} + +void ImportScheduleDialog::searchSchedule() +{ + mScheduleFileName = QFileDialog::getOpenFileName(this, tr("Select Conference Schedule"), QDir::homePath(), tr("Schedule Files (*.xml)")); + fileName->setText(mScheduleFileName); + if(QFile::exists(mScheduleFileName)) + import->setEnabled(true); + else + { + import->setEnabled(false); + progressBar->hide(); + } +} + +void ImportScheduleDialog::importSchedule() +{ + QFile file(mScheduleFileName); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + qDebug() << "can't open " << file.fileName(); + return; + } + + QByteArray data = file.readAll(); + if(mSqlEngine) + { + progressBar->show(); + mXmlParser->parseData(data,mSqlEngine); + } +} + diff --git a/src/gui/importscheduledialog.h b/src/gui/importscheduledialog.h new file mode 100644 index 0000000..7fef281 --- /dev/null +++ b/src/gui/importscheduledialog.h @@ -0,0 +1,27 @@ +#ifndef IMPORTSCHEDULEDIALOG_H +#define IMPORTSCHEDULEDIALOG_H + +#include +#include "ui_importscheduledialog.h" + +class ScheduleXmlParser; +class SqlEngine; + +class ImportScheduleDialog : public QDialog, Ui::ImportScheduleDialog +{ + Q_OBJECT + public: + ImportScheduleDialog(SqlEngine *aSqlEngine, QWidget *aParent = NULL); + ~ImportScheduleDialog(); + private slots: + void searchSchedule(); + void importSchedule(); + void showParsingProgress(int progress); + private: + ScheduleXmlParser *mXmlParser; + SqlEngine *mSqlEngine; // uses it + QString mScheduleFileName; +}; + +#endif /* IMPORTSCHEDULEDIALOG_H */ + diff --git a/src/gui/importscheduledialog.ui b/src/gui/importscheduledialog.ui new file mode 100644 index 0000000..d7771a5 --- /dev/null +++ b/src/gui/importscheduledialog.ui @@ -0,0 +1,113 @@ + + ImportScheduleDialog + + + + 0 + 0 + 408 + 118 + + + + Import schedule + + + + + + + + + + Select conference schedule file + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Search + + + + + + + + + 0 + + + false + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Import + + + + + + + Cancel + + + + + + + + + + + + + cancel + clicked() + ImportScheduleDialog + close() + + + 515 + 124 + + + 283 + 80 + + + + + -- 2.39.5