diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b048c62..d07d93f 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -44,8 +44,6 @@ MainWindow::MainWindow() engineMenu->Append(6, "New", "Create a new engine configuration"); manageMenu = new wxMenu; engineMenu->AppendSubMenu(manageMenu, "Manage"); - wxCommandEvent dummy(REFRESH_ENGINE_LIST, GetId()); - OnRefreshEngineList(dummy); /// Menu bar menuBar = new wxMenuBar; @@ -78,6 +76,8 @@ MainWindow::MainWindow() "/home/loic/.local/bin/stockfish"); notebook->AddPage(bt, bt->GetLabel()); notebook->SetSelection(notebook->GetPageIndex(bt));*/ + wxCommandEvent dummy(REFRESH_ENGINE_LIST, GetId()); + OnRefreshEngineList(dummy); } void MainWindow::OnCloseTabEvent(wxCommandEvent &event) { @@ -131,8 +131,8 @@ void MainWindow::OnRefreshEngineList(wxCommandEvent &event) { id++; } while (conf->GetNextGroup(engine_name, index)); } - CONFIG_CLOSE(conf); + ApplyPreferences(); // Propagate motifications } void MainWindow::NewEngine() { diff --git a/src/game_tab/GameTab.cpp b/src/game_tab/GameTab.cpp index 5a3e6b8..48c69d7 100644 --- a/src/game_tab/GameTab.cpp +++ b/src/game_tab/GameTab.cpp @@ -50,4 +50,5 @@ void GameTab::OnRefreshTabTitle(wxCommandEvent &event) { void GameTab::ApplyPreferences() { board_panel->ApplyPreferences(); + editor_panel->ApplyPreferences(); } diff --git a/src/game_tab/editor/EditorPanel.cpp b/src/game_tab/editor/EditorPanel.cpp index 3e6a7db..892673f 100644 --- a/src/game_tab/editor/EditorPanel.cpp +++ b/src/game_tab/editor/EditorPanel.cpp @@ -15,17 +15,7 @@ EditorPanel::EditorPanel(wxFrame *parent, Game *game) tags_list->InsertColumn(1, L"Value", wxLIST_FORMAT_LEFT, 500); tagTextCtrl->SetHint("Tag"); valueTextCtrl->SetHint("Value"); - CONFIG_OPEN(conf); - conf->SetPath("engines/"); - wxString engine_name; - long index; - if (conf->GetFirstGroup(engine_name, index)) { - do { - engine_list->Append(engine_name); - } while (conf->GetNextGroup(engine_name, index)); - } - CONFIG_CLOSE(conf); RefreshTagsList(); // Bind events @@ -44,6 +34,7 @@ EditorPanel::EditorPanel(wxFrame *parent, Game *game) wxID_ANY); this->Bind(wxEVT_BUTTON, &EditorPanel::OnApply, this, UPDATE_BTN); this->Bind(wxEVT_BUTTON, &EditorPanel::OnDelete, this, DELETE_BTN); + ApplyPreferences(); } void EditorPanel::OnTagSelected(wxListEvent &event) { @@ -146,6 +137,21 @@ void EditorPanel::Notify() { editor_canvas->SetMoves(game->GetMoves(), m); } +void EditorPanel::ApplyPreferences() { + engine_list->Clear(); + CONFIG_OPEN(conf); + conf->SetPath("engines/"); + wxString engine_name; + long index; + if (conf->GetFirstGroup(engine_name, index)) { + do { + engine_list->Append(engine_name); + } while (conf->GetNextGroup(engine_name, index)); + } + + CONFIG_CLOSE(conf); +} + void EditorPanel::RefreshTagsList() { tags_list->DeleteAllItems(); for (std::string s : game->ListTags()) { diff --git a/src/game_tab/editor/EditorPanel.hpp b/src/game_tab/editor/EditorPanel.hpp index 36d57f1..8502c14 100644 --- a/src/game_tab/editor/EditorPanel.hpp +++ b/src/game_tab/editor/EditorPanel.hpp @@ -36,4 +36,5 @@ public: void OnDelete(wxCommandEvent &event); void OnPreviousMove(wxCommandEvent &event); void OnNextMove(wxCommandEvent &event); + void ApplyPreferences(); }; \ No newline at end of file