forgotten Import Schedule Dialog files
[toast/confclerk.git] / src / gui / importscheduledialog.cpp
1 #include "importscheduledialog.h"
2
3 #include <schedulexmlparser.h>
4 #include <sqlengine.h>
5
6 #include <QDir>
7 #include <QFile>
8 #include <QFileDialog>
9 #include <QDebug>
10
11 ImportScheduleDialog::ImportScheduleDialog(SqlEngine *aSqlEngine, QWidget *aParent)
12     : QDialog(aParent)
13     , mSqlEngine(aSqlEngine)
14 {
15     setupUi(this);
16
17     mXmlParser = new ScheduleXmlParser(this);
18     connect(mXmlParser, SIGNAL(progressStatus(int)), this, SLOT(showParsingProgress(int)));
19     connect(import, SIGNAL(clicked()), SLOT(importSchedule()));
20     connect(search, SIGNAL(clicked()), SLOT(searchSchedule()));
21     progressBar->hide();
22     import->setEnabled(false);
23 }
24
25 ImportScheduleDialog::~ImportScheduleDialog()
26 {
27     if(mXmlParser)
28     {
29         delete mXmlParser;
30         mXmlParser = NULL;
31     }
32 }
33
34 void ImportScheduleDialog::showParsingProgress(int progress)
35 {
36     progressBar->setValue(progress);
37 }
38
39 void ImportScheduleDialog::searchSchedule()
40 {
41     mScheduleFileName = QFileDialog::getOpenFileName(this, tr("Select Conference Schedule"), QDir::homePath(), tr("Schedule Files (*.xml)"));
42     fileName->setText(mScheduleFileName);
43     if(QFile::exists(mScheduleFileName))
44         import->setEnabled(true);
45     else
46     {
47         import->setEnabled(false);
48         progressBar->hide();
49     }
50 }
51
52 void ImportScheduleDialog::importSchedule()
53 {
54     QFile file(mScheduleFileName);
55     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
56     {
57         qDebug() << "can't open " << file.fileName();
58         return;
59     }
60
61     QByteArray data = file.readAll();
62     if(mSqlEngine)
63     {
64         progressBar->show();
65         mXmlParser->parseData(data,mSqlEngine);
66     }
67 }
68