SqlEngine made STATIC
authorpavelpa <pavelpa@localhost>
Tue, 26 Jan 2010 19:30:45 +0000 (19:30 +0000)
committerpavelpa <pavelpa@localhost>
Tue, 26 Jan 2010 19:30:45 +0000 (19:30 +0000)
src/app/main.cpp
src/gui/importschedulewidget.cpp
src/gui/importschedulewidget.h
src/gui/mainwindow.cpp
src/gui/mainwindow.h
src/sql/schedulexmlparser.cpp
src/sql/schedulexmlparser.h
src/sql/sqlengine.h

index 43728cb..22445b2 100644 (file)
@@ -15,7 +15,7 @@ int main(int argc, char *argv[])
     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
index c23ee88..c2806af 100644 (file)
@@ -1,7 +1,6 @@
 #include "importschedulewidget.h"
 
 #include <schedulexmlparser.h>
-#include <sqlengine.h>
 
 #include <QDir>
 #include <QFile>
@@ -10,7 +9,6 @@
 
 ImportScheduleWidget::ImportScheduleWidget(QWidget *aParent)
     : QWidget(aParent)
-    , mSqlEngine(NULL)
 {
     setupUi(this);
 
@@ -31,13 +29,6 @@ ImportScheduleWidget::~ImportScheduleWidget()
     }
 }
 
-void ImportScheduleWidget::setSqlEngine(SqlEngine *aSqlEngine)
-{
-    Q_ASSERT(aSqlEngine != NULL);
-
-    mSqlEngine = aSqlEngine;
-}
-
 void ImportScheduleWidget::parsingSchedule(const QString &aTitle)
 {
     importScheduleLabel->setText("Importing: " + aTitle);
@@ -50,8 +41,6 @@ void ImportScheduleWidget::showParsingProgress(int progress)
 
 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))
     {
@@ -65,7 +54,7 @@ void ImportScheduleWidget::browseSchedule()
         QByteArray data = file.readAll();
         browse->hide();
         progressBar->show();
-        int confId = mXmlParser->parseData(data,mSqlEngine);
+        int confId = mXmlParser->parseData(data);
 
         progressBar->hide();
         browse->show();
index 71a76fa..26abd8d 100644 (file)
@@ -5,15 +5,13 @@
 #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);
@@ -22,7 +20,6 @@ class ImportScheduleWidget : public QWidget, Ui::ImportScheduleWidget
         void scheduleImported(int confId);
     private:
         ScheduleXmlParser *mXmlParser;
-        SqlEngine *mSqlEngine; // uses it
 };
 
 #endif /* IMPORTSCHEDULEWIDGET_H */
index 3a260f4..6ea7851 100644 (file)
@@ -27,12 +27,6 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent)
 {
     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
@@ -126,15 +120,6 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent)
     }
 }
 
-MainWindow::~MainWindow()
-{
-    if(mSqlEngine)
-    {
-        delete mSqlEngine;
-        mSqlEngine = NULL;
-    }
-}
-
 void MainWindow::scheduleImported(int aConfId)
 {
     Q_UNUSED(aConfId);
@@ -203,7 +188,7 @@ void MainWindow::searchClicked()
 
     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();
index 0f425a3..2e82a7c 100644 (file)
@@ -5,8 +5,6 @@
 
 #include <ui_mainwindow.h>
 
-class SqlEngine;
-
 class MainWindow : public QMainWindow, private Ui::MainWindow
 {
     Q_OBJECT
@@ -14,7 +12,7 @@ public:
     // 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();
@@ -23,8 +21,6 @@ private slots:
        void searchAgainClicked();
     void conferenceMapClicked();
     void eventHasChanged(int aEventId);
-private:
-    SqlEngine *mSqlEngine;
 };
 
 #endif // MAINWINDOW_H
index bb83f8a..496eaaa 100644 (file)
@@ -12,10 +12,8 @@ ScheduleXmlParser::ScheduleXmlParser(QObject *aParent)
 {
 }
 
-int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
+int ScheduleXmlParser::parseData(const QByteArray &aData)
 {
-    Q_ASSERT(NULL != aDBEngine);
-
     QDomDocument document;
     document.setContent (aData, false);
 
@@ -38,7 +36,7 @@ int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
             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"]));
         }
@@ -77,7 +75,7 @@ int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
                         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;
@@ -95,7 +93,7 @@ int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
                         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");
@@ -107,7 +105,7 @@ int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
                             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");
@@ -118,7 +116,7 @@ int ScheduleXmlParser::parseData(const QByteArray &aData, SqlEngine *aDBEngine)
                             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;
index 26cf556..51b258d 100644 (file)
@@ -3,8 +3,6 @@
 \r
 #include <QObject>\r
 \r
-class SqlEngine;\r
-\r
 class ScheduleXmlParser : public QObject\r
 {\r
     Q_OBJECT\r
@@ -12,7 +10,7 @@ class ScheduleXmlParser : public QObject
         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
index d52ceb3..295b4aa 100644 (file)
@@ -13,18 +13,18 @@ class SqlEngine : public QObject
         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 */