Fix database initializing before loading configuration file.

This commit is contained in:
apoorv569 2021-11-11 04:13:11 +05:30
parent c9b79a6935
commit e1d89d0b24
4 changed files with 27 additions and 19 deletions

View File

@ -20,6 +20,7 @@
#include "Database/Database.hpp"
#include "Utility/Log.hpp"
#include "Utility/Paths.hpp"
#include <deque>
#include <exception>
@ -77,9 +78,9 @@ class Sqlite3Statement
sqlite3_stmt* stmt = nullptr;
};
Database::Database(const std::string &dbPath)
Database::Database()
{
OpenDatabase(dbPath);
OpenDatabase();
}
Database::~Database()
@ -1072,9 +1073,9 @@ Database::RestoreFromTrashByFilename(const std::string &filename,
return vecSet;
}
void Database::OpenDatabase(const std::string &dbPath)
void Database::OpenDatabase()
{
throw_on_sqlite3_error(sqlite3_open(dbPath.c_str(), &m_Database));
throw_on_sqlite3_error(sqlite3_open(static_cast<std::string>(DATABASE_FILEPATH).c_str(), &m_Database));
}
void Database::CloseDatabase()

View File

@ -37,7 +37,7 @@
class Database
{
public:
Database(const std::string& dbPath);
Database();
~Database();
private:
@ -48,7 +48,7 @@ class Database
private:
// -------------------------------------------------------------------
void OpenDatabase(const std::string& dbPath);
void OpenDatabase();
void CloseDatabase();
public:

View File

@ -228,7 +228,7 @@ void TagEditor::OnClickCustomTagButton(wxCommandEvent& event)
void TagEditor::OnClickApply(wxCommandEvent& event)
{
Database db(static_cast<std::string>(DATABASE_FILEPATH));
Database db;
wxString title = m_TitleText->GetValue();
wxString artist = m_ArtistText->GetValue();

View File

@ -398,11 +398,6 @@ MainFrame::MainFrame()
// Intializing wxTimer
m_Timer = new wxTimer(this);
// Initialize the database
m_Database = std::make_unique<Database>(static_cast<std::string>(DATABASE_FILEPATH));
m_Database->CreateTableSamples();
m_Database->CreateTableHives();
m_TopWaveformPanel = new WaveformViewer(m_TopPanel, *m_Library, *m_MediaCtrl, *m_Database);
// Binding events.
@ -557,6 +552,18 @@ MainFrame::MainFrame()
// Load default yaml config file.
LoadConfigFile();
// Initialize the database
try
{
m_Database = std::make_unique<Database>();
m_Database->CreateTableSamples();
m_Database->CreateTableHives();
}
catch (std::exception& e)
{
SH_LOG_ERROR("Error! Cannot initialize database {}", e.what());
}
// Restore the data previously added to Library
LoadDatabase();