#include <QTreeView>
#include <QDirModel>
+#include <sqlengine.h>
+#include <schedulexmlparser.h>
+
#include <eventmodel.h>
#include <delegate.h>
+
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
- // open database connection
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("fosdem-test.sqlite");
- db.open();
-
setupUi(this);
- //TODO Palo: continue
+
+ // create "SQLITE" DB instance/connection
+ // opens DB connection (needed for EventModel)
+ mSqlEngine = new SqlEngine(this);
+ mSqlEngine->initialize();
+
+ mXmlParser = new ScheduleXmlParser(this);
+ connect(mXmlParser, SIGNAL(progressStatus(int)), this, SLOT(showParsingProgress(int)));
+ statusBar()->showMessage(tr("Ready"));
+
+ connect(actionImportSchedule, SIGNAL(triggered()), SLOT(importSchedule()));
+
treeView->setHeaderHidden(true);
treeView->setRootIsDecorated(false);
treeView->setIndentation(0);
treeView->setItemDelegate(new Delegate(treeView));
}
+MainWindow::~MainWindow()
+{
+ if(mSqlEngine)
+ {
+ delete mSqlEngine;
+ mSqlEngine = NULL;
+ }
+ if(mXmlParser)
+ {
+ delete mXmlParser;
+ mXmlParser = NULL;
+ }
+}
+
+void MainWindow::importSchedule()
+{
+ QFile file("../schedule.en.xml");
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ qDebug() << "can't open " << file.fileName();
+ return;
+ }
+
+ QByteArray data = file.readAll();
+ mXmlParser->parseData(data,mSqlEngine);
+ static_cast<EventModel*>(treeView->model())->reload();
+ treeView->reset();
+}
+
+void MainWindow::showParsingProgress(int aStatus)
+{
+ QString msg = QString("Parsing completed: %1\%").arg(aStatus);
+ statusBar()->showMessage(msg,1000);
+}
+