diff --git a/ressources/init.sql b/ressources/init.sql index 6fdc30c..d7059b9 100644 --- a/ressources/init.sql +++ b/ressources/init.sql @@ -1,4 +1,4 @@ -CREATE TABLE kisscount(db_version VARCHAR(20)); +CREATE TABLE kisscount(db_version VARCHAR(20)); CREATE TABLE user (id INTEGER PRIMARY KEY, name VARCHAR(255), password VARCHAR(255)); CREATE TABLE account(id INTEGER PRIMARY KEY, user REFERENCES user(id), name VARCHAR(255), number VARCHAR(255), shared CHAR(1), blocked CHAR(1), default_account CHAR(1), virtual CHAR(1), hidden CHAR(1)); CREATE TABLE shared_account(account REFERENCES account(id), user REFERENCES user(id)); diff --git a/src/controller/KissCount.cpp b/src/controller/KissCount.cpp index 76f619f..6c5a1f3 100644 --- a/src/controller/KissCount.cpp +++ b/src/controller/KissCount.cpp @@ -45,7 +45,7 @@ KissCount::KissCount(int argc, char** argv) : QApplication(argc, argv), _user(0) catch (std::string s) { _wxUI->close(); - throw ; + throw s; } _wxUI->ChangeUser(); diff --git a/src/model/Database.cpp b/src/model/Database.cpp index 86199d5..fad4384 100644 --- a/src/model/Database.cpp +++ b/src/model/Database.cpp @@ -136,24 +136,24 @@ void Database::CreateDatabase() while (!init_script.atEnd()) { - QByteArray line = file.readLine().trimmed(); + QByteArray line = init_script.readLine().trimmed(); + QSqlQuery query; if (line.isEmpty() || line.startsWith("--")) continue; - QSqlQuery query (QString(line), _db); + // if (!query.isValid()) + // { + // std::cout << QString(line).toStdString() << " is invalid !\n" ; + // continue; + // } - if (!query.isValid()) - { - std::cout << QString(line).toStdString() << " is invalid !\n" ; - continue; - } - - if (!query.exec()) + if (!query.exec(QString(line))) { QMessageBox::critical(0, _("Error"), _("Error creating original database")); init_script.close(); file.remove(); - throw line; + std::cout << QString(line).toStdString() << " is invalid !\n" ; + throw QString(line); } } diff --git a/src/view/UsersDialog.cpp b/src/view/UsersDialog.cpp index e5a9eb5..2403f9e 100644 --- a/src/view/UsersDialog.cpp +++ b/src/view/UsersDialog.cpp @@ -67,7 +67,10 @@ UsersDialog::UsersDialog(KissCount* kiss, wxUI *parent) : QDialog(0, Qt::Dialog) _users->setFocus(); if (users_list.size() == 0) + { OnNewUser(); + throw ExceptionNewUser(); + } else show(); } diff --git a/src/view/UsersDialog.hpp b/src/view/UsersDialog.hpp index 30c0aa4..bcfe14f 100644 --- a/src/view/UsersDialog.hpp +++ b/src/view/UsersDialog.hpp @@ -33,6 +33,8 @@ class UsersDialog : public QDialog public: UsersDialog(KissCount* kiss, wxUI *parent); + class ExceptionNewUser {}; + private slots: void OnEnter(); void OnOK(); diff --git a/src/view/wxUI.cpp b/src/view/wxUI.cpp index 40787bf..5ac2d82 100644 --- a/src/view/wxUI.cpp +++ b/src/view/wxUI.cpp @@ -279,8 +279,15 @@ void wxUI::OnButtonChangeUser() void wxUI::ChangeUser() { - UsersDialog u(_kiss, this); - u.exec(); + try + { + UsersDialog u(_kiss, this); + u.exec(); + } + catch (UsersDialog::ExceptionNewUser e) + { + + } } void wxUI::OnButtonAbout()