#include "mainwindow.h" #include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this); // 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->setAnimated(true); treeView->setModel(new EventModel()); 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(treeView->model())->reload(); treeView->reset(); } void MainWindow::showParsingProgress(int aStatus) { QString msg = QString("Parsing completed: %1\%").arg(aStatus); statusBar()->showMessage(msg,1000); }