TrackCollection::TrackCollection(ConfigObject<ConfigValue>* pConfig) : m_pConfig(pConfig), m_db(QSqlDatabase::addDatabase("QSQLITE")), // defaultConnection m_playlistDao(m_db), m_crateDao(m_db), m_cueDao(m_db), m_directoryDao(m_db), m_analysisDao(m_db, pConfig), m_trackDao(m_db, m_cueDao, m_playlistDao, m_crateDao, m_analysisDao, m_directoryDao, pConfig), m_supportedFileExtensionsRegex( SoundSourceProxy::supportedFileExtensionsRegex(), Qt::CaseInsensitive) { qDebug() << "Available QtSQL drivers:" << QSqlDatabase::drivers(); m_db.setHostName("localhost"); m_db.setDatabaseName(pConfig->getSettingsPath().append("/mixxxdb.sqlite")); m_db.setUserName("mixxx"); m_db.setPassword("mixxx"); bool ok = m_db.open(); qDebug() << "DB status:" << m_db.databaseName() << "=" << ok; if (m_db.lastError().isValid()) { qDebug() << "Error loading database:" << m_db.lastError(); } // Check for tables and create them if missing if (!checkForTables()) { // TODO(XXX) something a little more elegant exit(-1); } }
TrackCollection::TrackCollection(UserSettingsPointer pConfig) : m_pConfig(pConfig), m_db(QSqlDatabase::addDatabase("QSQLITE")), // defaultConnection m_playlistDao(m_db), m_crateDao(m_db), m_cueDao(m_db), m_directoryDao(m_db), m_analysisDao(m_db, pConfig), m_libraryHashDao(m_db), m_trackDao(m_db, m_cueDao, m_playlistDao, m_crateDao, m_analysisDao, m_libraryHashDao, pConfig) { qDebug() << "Available QtSQL drivers:" << QSqlDatabase::drivers(); m_db.setHostName("localhost"); m_db.setDatabaseName(QDir(pConfig->getSettingsPath()).filePath("mixxxdb.sqlite")); m_db.setUserName("mixxx"); m_db.setPassword("mixxx"); bool ok = m_db.open(); qDebug() << "DB status:" << m_db.databaseName() << "=" << ok; if (m_db.lastError().isValid()) { qDebug() << "Error loading database:" << m_db.lastError(); } // Check for tables and create them if missing if (!checkForTables()) { // TODO(XXX) something a little more elegant exit(-1); } }
void TrackCollection::createAndPopulateDbConnection() { // initialize database connection in TrackCollection const QStringList avaiableDrivers = QSqlDatabase::drivers(); const QString sqliteDriverName("QSQLITE"); if (!avaiableDrivers.contains(sqliteDriverName)) { QString errorMsg = QString("No QSQLITE driver! Available QtSQL drivers: %1") .arg(avaiableDrivers.join(",")); qDebug() << errorMsg; MainExecuter::callSync([this, errorMsg](void) { reportCriticalErrorAndQuit(errorMsg); }); } m_database = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE")); m_database->setHostName("localhost"); m_database->setDatabaseName(m_pConfig->getSettingsPath().append("/mixxxdb.sqlite")); m_database->setUserName("mixxx"); m_database->setPassword("mixxx"); bool ok = m_database->open(); qDebug() << "DB status:" << m_database->databaseName() << "=" << ok; if (m_database->lastError().isValid()) { qDebug() << "Error loading database:" << m_database->lastError(); } // Check for tables and create them if missing if (!checkForTables()) { // TODO(XXX) something a little more elegant exit(-1); } m_playlistDao = new PlaylistDAO(*m_database); m_crateDao = new CrateDAO(*m_database); m_cueDao = new CueDAO(*m_database); m_analysisDao = new AnalysisDao(*m_database, m_pConfig); m_trackDao = new TrackDAO(*m_database, *m_cueDao, *m_playlistDao, *m_crateDao, *m_analysisDao, m_pConfig); }