QApplication a(argc, argv);
QApplication::setWindowIcon(QIcon(":/icons/fosdem.png"));
- SqlEngine::initialize(); // creates DB connection
+ SqlEngine::initialize(); // creates "SQLITE" DB connection
QWidget *window;
#ifdef MAEMO
#include "importschedulewidget.h"
#include <schedulexmlparser.h>
-#include <sqlengine.h>
#include <QDir>
#include <QFile>
ImportScheduleWidget::ImportScheduleWidget(QWidget *aParent)
: QWidget(aParent)
- , mSqlEngine(NULL)
{
setupUi(this);
}
}
-void ImportScheduleWidget::setSqlEngine(SqlEngine *aSqlEngine)
-{
- Q_ASSERT(aSqlEngine != NULL);
-
- mSqlEngine = aSqlEngine;
-}
-
void ImportScheduleWidget::parsingSchedule(const QString &aTitle)
{
importScheduleLabel->setText("Importing: " + aTitle);
void ImportScheduleWidget::browseSchedule()
{
- Q_ASSERT(mSqlEngine != NULL);
-
QString scheduleFileName = QFileDialog::getOpenFileName(this, tr("Select Conference Schedule"), QDir::homePath(), tr("Schedule Files (*.xml)"));
if(QFile::exists(scheduleFileName))
{
QByteArray data = file.readAll();
browse->hide();
progressBar->show();
- int confId = mXmlParser->parseData(data,mSqlEngine);
+ int confId = mXmlParser->parseData(data);
progressBar->hide();
browse->show();
#include "ui_importschedulewidget.h"
class ScheduleXmlParser;
-class SqlEngine;
class ImportScheduleWidget : public QWidget, Ui::ImportScheduleWidget
{
Q_OBJECT
public:
- ImportScheduleWidget(QWidget *aParent = NULL); // don't forget to use setSqlEngine()
+ ImportScheduleWidget(QWidget *aParent = NULL);
~ImportScheduleWidget();
- void setSqlEngine(SqlEngine *aSqlEngine);
private slots:
void browseSchedule();
void parsingSchedule(const QString &aTitle);
void scheduleImported(int confId);
private:
ScheduleXmlParser *mXmlParser;
- SqlEngine *mSqlEngine; // uses it
};
#endif /* IMPORTSCHEDULEWIDGET_H */
{
setupUi(this);
- // create "SQLITE" DB instance/connection
- // opens DB connection (needed for EventModel)
- mSqlEngine = new SqlEngine(this);
- //mSqlEngine->initialize();
- importScheduleWidget->setSqlEngine(mSqlEngine);
-
// Sanity check for existence of any Conference in the DB
// it AppSettings::confId() is 0, but there are any Conference(s) in the DB
// set the confId in the AppSettings for the ID of the first conference in the DB
}
}
-MainWindow::~MainWindow()
-{
- if(mSqlEngine)
- {
- delete mSqlEngine;
- mSqlEngine = NULL;
- }
-}
-
void MainWindow::scheduleImported(int aConfId)
{
Q_UNUSED(aConfId);
QString keyword = searchEdit->text().replace( QString("%"), QString("\\%") );
qDebug() << "\nKeyword to search: " << keyword;
- mSqlEngine->searchEvent( AppSettings::confId(), columns, keyword );
+ SqlEngine::searchEvent( AppSettings::confId(), columns, keyword );
QDate aStartDate = Conference::getById(AppSettings::confId()).start();
QDate aEndDate = Conference::getById(AppSettings::confId()).end();
#include <ui_mainwindow.h>
-class SqlEngine;
-
class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
// aEventId is used to inform widget to automatically open
// Event dialog for given Event ID
MainWindow(int aEventId = 0, QWidget *aParent = NULL);
- ~MainWindow();
+ ~MainWindow() {}
private slots:
void scheduleImported(int aConfId);
void aboutApp();
void searchAgainClicked();
void conferenceMapClicked();
void eventHasChanged(int aEventId);
-private:
- SqlEngine *mSqlEngine;
};
#endif // MAINWINDOW_H
{
}
-int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
+int ScheduleXmlParser::parseData(const QByteArray &aData)
{
- Q_ASSERT(NULL != aDBEngine);
-
QDomDocument document;
document.setContent (aData, false);
conference["days"] = conferenceElement.firstChildElement("days").text(); // int
conference["day_change"] = conferenceElement.firstChildElement("day_change").text(); // time
conference["timeslot_duration"] = conferenceElement.firstChildElement("timeslot_duration").text(); // time
- aDBEngine->addConferenceToDB(conference);
+ SqlEngine::addConferenceToDB(conference);
confId = conference["id"].toInt();
emit(parsingSchedule(conference["title"]));
}
room["event_id"] = eventElement.attribute("id");
room["conference_id"] = QString::number(confId,10);
room["picture"] = "NOT DEFINED YET"; // TODO: implement some mapping to assign correct picture to specified room_name
- aDBEngine->addRoomToDB(room);
+ SqlEngine::addRoomToDB(room);
// process event's nodes
QHash<QString,QString> event;
event["language"] = eventElement.firstChildElement("language").text(); // language eg. "English"
event["abstract"] = eventElement.firstChildElement("abstract").text(); // string
event["description"] = eventElement.firstChildElement("description").text(); // string
- aDBEngine->addEventToDB(event);
+ SqlEngine::addEventToDB(event);
// process persons' nodes
QList<QString> persons;
QDomElement personsElement = eventElement.firstChildElement("persons");
person["event_id"] = eventElement.attribute("id");
person["conference_id"] = QString::number(confId, 10);
//qDebug() << "adding Person: " << person["name"];
- aDBEngine->addPersonToDB(person);
+ SqlEngine::addPersonToDB(person);
}
// process links' nodes
QDomElement linksElement = eventElement.firstChildElement("links");
link["url"] = linkList.at(i).toElement().attribute("href");
link["event_id"] = eventElement.attribute("id");
link["conference_id"] = QString::number(confId, 10);
- aDBEngine->addLinkToDB(link);
+ SqlEngine::addLinkToDB(link);
}
// emit signal to inform the user about the current status (how many events are parsed so far - expressed in %)
int status = currentEvent * 100 / totalEventsCount;
\r
#include <QObject>\r
\r
-class SqlEngine;\r
-\r
class ScheduleXmlParser : public QObject\r
{\r
Q_OBJECT\r
ScheduleXmlParser (QObject *aParent = NULL);\r
\r
public slots:\r
- int parseData(const QByteArray &aData, SqlEngine *aDBEngine); // returns 'confId' of parsed conference schedule\r
+ int parseData(const QByteArray &aData); // returns 'confId' of parsed conference schedule\r
\r
signals:\r
void progressStatus(int aStatus);\r
SqlEngine(QObject *aParent = NULL);
~SqlEngine();
static void initialize();
- void addConferenceToDB(QHash<QString,QString> &aConference);
- void addEventToDB(QHash<QString,QString> &aEvent);
- void addPersonToDB(QHash<QString,QString> &aPerson);
- void addLinkToDB(QHash<QString,QString> &aLink);
- void addRoomToDB(QHash<QString,QString> &aRoom);
+ static void addConferenceToDB(QHash<QString,QString> &aConference);
+ static void addEventToDB(QHash<QString,QString> &aEvent);
+ static void addPersonToDB(QHash<QString,QString> &aPerson);
+ static void addLinkToDB(QHash<QString,QString> &aLink);
+ static void addRoomToDB(QHash<QString,QString> &aRoom);
// search Events for ....
- int searchEvent(int conferenceId, const QHash<QString,QString> &columns, const QString &keyword);
+ static int searchEvent(int conferenceId, const QHash<QString,QString> &columns, const QString &keyword);
private:
static QString login(const QString &aDatabaseType, const QString &aDatabaseName);
static bool createTables(QSqlDatabase &aDatabase);
- bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery);
+ static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery);
};
#endif /* SQLENGINE_H */