diff --git a/src/Database/Database.cpp b/src/Database/Database.cpp index 69f9241..4167ea2 100644 --- a/src/Database/Database.cpp +++ b/src/Database/Database.cpp @@ -20,6 +20,7 @@ #include "Database/Database.hpp" #include "Utility/Log.hpp" +#include "Utility/Paths.hpp" #include #include @@ -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(DATABASE_FILEPATH).c_str(), &m_Database)); } void Database::CloseDatabase() diff --git a/src/Database/Database.hpp b/src/Database/Database.hpp index 6f6d210..b157466 100644 --- a/src/Database/Database.hpp +++ b/src/Database/Database.hpp @@ -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: diff --git a/src/GUI/Dialogs/TagEditor.cpp b/src/GUI/Dialogs/TagEditor.cpp index df73d47..d09338f 100644 --- a/src/GUI/Dialogs/TagEditor.cpp +++ b/src/GUI/Dialogs/TagEditor.cpp @@ -228,7 +228,7 @@ void TagEditor::OnClickCustomTagButton(wxCommandEvent& event) void TagEditor::OnClickApply(wxCommandEvent& event) { - Database db(static_cast(DATABASE_FILEPATH)); + Database db; wxString title = m_TitleText->GetValue(); wxString artist = m_ArtistText->GetValue(); diff --git a/src/GUI/MainFrame.cpp b/src/GUI/MainFrame.cpp index 7c10df6..7326799 100644 --- a/src/GUI/MainFrame.cpp +++ b/src/GUI/MainFrame.cpp @@ -398,11 +398,6 @@ MainFrame::MainFrame() // Intializing wxTimer m_Timer = new wxTimer(this); - // Initialize the database - m_Database = std::make_unique(static_cast(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(); + 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(); @@ -712,7 +719,7 @@ void MainFrame::OnClickDirCtrl(wxCommandEvent& event) void MainFrame::OnDragAndDropToLibrary(wxDropFilesEvent& event) { SH_LOG_DEBUG("Start Inserting Samples"); - + if (event.GetNumberOfFiles() > 0) { wxString* dropped = event.GetFiles(); @@ -1631,13 +1638,13 @@ void MainFrame::OnShowLibraryContextMenu(wxDataViewEvent& event) std::string extension = GetFilenamePathAndExtension(selection).Extension; wxMenu menu; - + //true = add false = remove bool favorite_add = false; if (m_Database->GetFavoriteColumnValueByFilename(filename) == 1) menu.Append(MN_FavoriteSample, _("Remove from hive"), _("Remove the selected sample(s) from hive")); - else + else { menu.Append(MN_FavoriteSample, _("Add to hive"), _("Add selected sample(s) to hive")); favorite_add = true; @@ -1645,7 +1652,7 @@ void MainFrame::OnShowLibraryContextMenu(wxDataViewEvent& event) menu.Append(MN_DeleteSample, _("Delete"), _("Delete the selected sample(s) from database")); menu.Append(MN_TrashSample, _("Trash"), _("Send the selected sample(s) to trash")); - + if (m_Library->GetSelectedItemsCount() <= 1) { menu.Append(MN_EditTagSample, _("Edit tags"), @@ -1710,7 +1717,7 @@ void MainFrame::OnShowLibraryContextMenu(wxDataViewEvent& event) m_Database->UpdateFavoriteColumn(filename, 1); m_Database->UpdateHiveName(filename, hive_name); - + for (int i = 0; i < m_Hives->GetChildCount(root); i++) { container = m_Hives->GetNthChild(root, i); @@ -1724,7 +1731,7 @@ void MainFrame::OnShowLibraryContextMenu(wxDataViewEvent& event) } } } - else + else { //Remove From Favorites m_Library->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), selected_row, 0); @@ -1732,7 +1739,7 @@ void MainFrame::OnShowLibraryContextMenu(wxDataViewEvent& event) m_Database->UpdateFavoriteColumn(filename, 0); m_Database->UpdateHiveName(filename, m_Hives->GetItemText(favorites_hive).ToStdString()); - + for (int i = 0; i < m_Hives->GetChildCount(root); i++) { container = m_Hives->GetNthChild(root, i);