diff --git a/libsearch/appdata/app-info-table-private.h b/libsearch/appdata/app-info-table-private.h index 358ba60..7cbe75d 100644 --- a/libsearch/appdata/app-info-table-private.h +++ b/libsearch/appdata/app-info-table-private.h @@ -45,8 +45,8 @@ public: private: ~AppInfoTablePrivate(); - void initDateBaseConnection(); - void openDataBase(); + bool initDateBaseConnection(); + bool openDataBase(); void closeDataBase(); AppInfoTable *q = nullptr; diff --git a/libsearch/appdata/app-info-table.cpp b/libsearch/appdata/app-info-table.cpp index 2f28351..8201547 100644 --- a/libsearch/appdata/app-info-table.cpp +++ b/libsearch/appdata/app-info-table.cpp @@ -25,7 +25,10 @@ AppInfoTablePrivate::AppInfoTablePrivate(AppInfoTable *parent) : QObject(parent) break; } qDebug() << "App info database currunt connection name:" << m_ConnectionName; - this->openDataBase(); + if (!this->openDataBase()) { + Q_EMIT q->DBOpenFailed(); + qWarning() << "Fail to open App DataBase, because:" << m_database->lastError(); + } } bool AppInfoTablePrivate::setAppFavoritesState(QString &desktopfp, size_t num) @@ -653,24 +656,26 @@ AppInfoTablePrivate::~AppInfoTablePrivate() this->closeDataBase(); } -void AppInfoTablePrivate::initDateBaseConnection() +bool AppInfoTablePrivate::initDateBaseConnection() { m_database->setDatabaseName(APP_DATABASE_PATH + APP_DATABASE_NAME); if(!m_database->open()) { qWarning() << m_database->lastError(); - QApplication::quit(); + return false; +// QApplication::quit(); } + return true; } -void AppInfoTablePrivate::openDataBase() +bool AppInfoTablePrivate::openDataBase() { *m_database = QSqlDatabase::addDatabase("QSQLITE", m_ConnectionName); m_database->setDatabaseName(APP_DATABASE_PATH + APP_DATABASE_NAME); if(!m_database->open()) { - qWarning() << m_database->lastError(); - QApplication::quit(); + return false; } + return true; } void AppInfoTablePrivate::closeDataBase() diff --git a/libsearch/appdata/app-info-table.h b/libsearch/appdata/app-info-table.h index ef50ac2..04cf34e 100644 --- a/libsearch/appdata/app-info-table.h +++ b/libsearch/appdata/app-info-table.h @@ -76,6 +76,8 @@ private: bool updateAppLaunchTimes(QString &desktopfp); AppInfoTablePrivate *d; +Q_SIGNALS: + void DBOpenFailed(); }; }