bool CWizDatabaseManager::openWithInfo(const QString& strKbGUID, const WIZDATABASEINFO* pInfo) { Q_ASSERT(!m_strUserId.isEmpty()); if (isOpened(strKbGUID)) return true; CWizDatabase* db = new CWizDatabase(); if (!db->Open(m_strUserId, strKbGUID)) { delete db; return false; } // if (pInfo) { db->InitDatabaseInfo(*pInfo); } if (strKbGUID.isEmpty()) { m_dbPrivate = db; // take ownership immediately connect(db, SIGNAL(databaseOpened(CWizDatabase*, const QString&)), SLOT(on_groupDatabaseOpened(CWizDatabase*, const QString&)), Qt::BlockingQueuedConnection); } else { m_mapGroups[strKbGUID] = db; } initSignals(db); Q_EMIT databaseOpened(strKbGUID); return true; }
bool CWizDatabaseManager::open(const QString& strKbGUID) { Q_ASSERT(!m_strUserId.isEmpty()); CWizDatabase* db = new CWizDatabase(); bool ret = false; if (strKbGUID.isEmpty()) { ret = db->openPrivate(m_strUserId, m_strPasswd); } else { ret = db->openGroup(m_strUserId, strKbGUID); } if (!ret) { delete db; return false; } initSignals(db); if (strKbGUID.isEmpty()) { m_dbPrivate = db; } else { m_dbGroups.append(db); } Q_EMIT databaseOpened(strKbGUID); return true; }
void CWizDatabaseManager::on_groupDatabaseOpened(CWizDatabase* pDb, const QString& strKbGUID) { // check if this group is already opened, to avoid memory leak! if (isOpened(strKbGUID)) { close(strKbGUID, false); } m_mapGroups[strKbGUID] = pDb; initSignals(pDb); Q_EMIT databaseOpened(strKbGUID); }
void SQLite::dbThreadStarted() { qDebug() << __PRETTY_FUNCTION__; databaseOpened(); if(!m_query.isEmpty()) { this->executeQuery(m_query); } else { connect(this, SIGNAL(queryChanged(QString)), this, SLOT(executeQuery(QString))); } }