From 9a7ead0bd4b22bff33a7753d678666d4e6e9ef3a Mon Sep 17 00:00:00 2001 From: Oleg Samarin Date: Sat, 8 Feb 2025 12:39:56 +0300 Subject: [PATCH] Renamed GOMidiListDialog to GOMidiObjectsDialog Renamed GOObjectsLists members Extracted method GOMidiObjectsDialog::ConfigureSelectedObject --- src/grandorgue/CMakeLists.txt | 2 +- src/grandorgue/GODocument.cpp | 6 +- ...ListDialog.cpp => GOMidiObjectsDialog.cpp} | 108 +++++++++--------- ...idiListDialog.h => GOMidiObjectstDialog.h} | 29 ++--- 4 files changed, 70 insertions(+), 75 deletions(-) rename src/grandorgue/gui/dialogs/{GOMidiListDialog.cpp => GOMidiObjectsDialog.cpp} (51%) rename src/grandorgue/gui/dialogs/{GOMidiListDialog.h => GOMidiObjectstDialog.h} (57%) diff --git a/src/grandorgue/CMakeLists.txt b/src/grandorgue/CMakeLists.txt index d3b5a799b..9a8e09783 100644 --- a/src/grandorgue/CMakeLists.txt +++ b/src/grandorgue/CMakeLists.txt @@ -86,7 +86,7 @@ gui/dialogs/settings/GOSettingsOptions.cpp gui/dialogs/settings/GOSettingsOrgans.cpp gui/dialogs/settings/GOSettingsReverb.cpp gui/dialogs/settings/GOSettingsTemperaments.cpp -gui/dialogs/GOMidiListDialog.cpp +gui/dialogs/GOMidiObjectsDialog.cpp gui/dialogs/GONewReleaseDialog.cpp gui/dialogs/GOOrganSettingsDialog.cpp gui/dialogs/GOProgressDialog.cpp diff --git a/src/grandorgue/GODocument.cpp b/src/grandorgue/GODocument.cpp index 9b144ee3b..0fef958f8 100644 --- a/src/grandorgue/GODocument.cpp +++ b/src/grandorgue/GODocument.cpp @@ -1,6 +1,6 @@ /* * Copyright 2006 Milan Digital Audio LLC - * Copyright 2009-2024 GrandOrgue contributors (see AUTHORS) + * Copyright 2009-2025 GrandOrgue contributors (see AUTHORS) * License GPL-2.0 or later * (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html). */ @@ -11,7 +11,7 @@ #include "config/GOConfig.h" #include "document-base/GOView.h" -#include "gui/dialogs/GOMidiListDialog.h" +#include "gui/dialogs/GOMidiObjectstDialog.h" #include "gui/dialogs/GOOrganSettingsDialog.h" #include "gui/dialogs/midi-event/GOMidiEventDialog.h" #include "gui/frames/GOFrame.h" @@ -182,7 +182,7 @@ void GODocument::ShowMidiList() { registerWindow( GODocument::MIDI_LIST, NULL, - new GOMidiListDialog( + new GOMidiObjectsDialog( this, NULL, m_OrganController->GetConfig().m_DialogSizes, diff --git a/src/grandorgue/gui/dialogs/GOMidiListDialog.cpp b/src/grandorgue/gui/dialogs/GOMidiObjectsDialog.cpp similarity index 51% rename from src/grandorgue/gui/dialogs/GOMidiListDialog.cpp rename to src/grandorgue/gui/dialogs/GOMidiObjectsDialog.cpp index a84e522ac..01f605a97 100644 --- a/src/grandorgue/gui/dialogs/GOMidiListDialog.cpp +++ b/src/grandorgue/gui/dialogs/GOMidiObjectsDialog.cpp @@ -5,7 +5,7 @@ * (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html). */ -#include "GOMidiListDialog.h" +#include "GOMidiObjectstDialog.h" #include #include @@ -24,18 +24,18 @@ enum { ID_BUTTON_LAST = ID_BUTTON + 2, }; -BEGIN_EVENT_TABLE(GOMidiListDialog, GOSimpleDialog) -EVT_GRID_CMD_SELECT_CELL(ID_LIST, GOMidiListDialog::OnObjectClick) -EVT_GRID_CMD_CELL_LEFT_DCLICK(ID_LIST, GOMidiListDialog::OnObjectDoubleClick) -EVT_BUTTON(ID_STATUS, GOMidiListDialog::OnStatus) -EVT_BUTTON(ID_EDIT, GOMidiListDialog::OnEdit) +BEGIN_EVENT_TABLE(GOMidiObjectsDialog, GOSimpleDialog) +EVT_GRID_CMD_SELECT_CELL(ID_LIST, GOMidiObjectsDialog::OnSelectCell) +EVT_GRID_CMD_CELL_LEFT_DCLICK(ID_LIST, GOMidiObjectsDialog::OnObjectDoubleClick) +EVT_BUTTON(ID_EDIT, GOMidiObjectsDialog::OnConfigureButton) +EVT_BUTTON(ID_STATUS, GOMidiObjectsDialog::OnStatusButton) EVT_COMMAND_RANGE( - ID_BUTTON, ID_BUTTON_LAST, wxEVT_BUTTON, GOMidiListDialog::OnButton) + ID_BUTTON, ID_BUTTON_LAST, wxEVT_BUTTON, GOMidiObjectsDialog::OnActionButton) END_EVENT_TABLE() enum { GRID_COL_TYPE = 0, GRID_COL_ELEMENT }; -GOMidiListDialog::GOMidiListDialog( +GOMidiObjectsDialog::GOMidiObjectsDialog( GODocumentBase *doc, wxWindow *parent, GODialogSizeSet &dialogSizes, @@ -53,33 +53,34 @@ GOMidiListDialog::GOMidiListDialog( wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL); topSizer->AddSpacer(5); - m_Objects = new GOGrid(this, ID_LIST, wxDefaultPosition, wxSize(250, 200)); - m_Objects->CreateGrid(0, 2, wxGrid::wxGridSelectRows); - m_Objects->HideRowLabels(); - m_Objects->EnableEditing(false); - m_Objects->SetColLabelValue(GRID_COL_TYPE, _("Type")); - m_Objects->SetColLabelValue(GRID_COL_ELEMENT, _("Element")); - m_Objects->SetColSize(GRID_COL_TYPE, 100); - m_Objects->SetColSize(GRID_COL_ELEMENT, 100); + m_ObjectsGrid + = new GOGrid(this, ID_LIST, wxDefaultPosition, wxSize(250, 200)); + m_ObjectsGrid->CreateGrid(0, 2, wxGrid::wxGridSelectRows); + m_ObjectsGrid->HideRowLabels(); + m_ObjectsGrid->EnableEditing(false); + m_ObjectsGrid->SetColLabelValue(GRID_COL_TYPE, _("Type")); + m_ObjectsGrid->SetColLabelValue(GRID_COL_ELEMENT, _("Element")); + m_ObjectsGrid->SetColSize(GRID_COL_TYPE, 100); + m_ObjectsGrid->SetColSize(GRID_COL_ELEMENT, 100); - topSizer->Add(m_Objects, 1, wxEXPAND | wxALL, 5); + topSizer->Add(m_ObjectsGrid, 1, wxEXPAND | wxALL, 5); wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); for (unsigned id = ID_BUTTON; id <= ID_BUTTON_LAST; id++) { wxButton *button = new wxButton(this, id, wxEmptyString); sizer->Add(button, 0, id == ID_BUTTON ? wxRESERVE_SPACE_EVEN_IF_HIDDEN : 0); button->Hide(); - m_Buttons.push_back(button); + m_ActionButtons.push_back(button); } topSizer->Add(sizer, 0, wxALIGN_LEFT | wxALL, 1); wxBoxSizer *buttons = new wxBoxSizer(wxHORIZONTAL); - m_Edit = new wxButton(this, ID_EDIT, _("C&onfigure...")); - m_Edit->Disable(); - buttons->Add(m_Edit); - m_Status = new wxButton(this, ID_STATUS, _("&Status")); - m_Status->Disable(); - buttons->Add(m_Status); + m_ConfigureButton = new wxButton(this, ID_EDIT, _("C&onfigure...")); + m_ConfigureButton->Disable(); + buttons->Add(m_ConfigureButton); + m_StatusButton = new wxButton(this, ID_STATUS, _("&Status")); + m_StatusButton->Disable(); + buttons->Add(m_StatusButton); topSizer->Add(buttons, 0, wxALIGN_RIGHT | wxALL, 1); topSizer->AddSpacer(5); @@ -88,77 +89,70 @@ GOMidiListDialog::GOMidiListDialog( static const wxString WX_GRID_MIDI_OBJECTS = wxT("GridMidiObjects"); -void GOMidiListDialog::ApplyAdditionalSizes( +void GOMidiObjectsDialog::ApplyAdditionalSizes( const GOAdditionalSizeKeeper &sizeKeeper) { GOAdditionalSizeKeeperProxy proxyMidiObjects( const_cast(sizeKeeper), WX_GRID_MIDI_OBJECTS); - m_Objects->ApplyColumnSizes(proxyMidiObjects); + m_ObjectsGrid->ApplyColumnSizes(proxyMidiObjects); } -void GOMidiListDialog::CaptureAdditionalSizes( +void GOMidiObjectsDialog::CaptureAdditionalSizes( GOAdditionalSizeKeeper &sizeKeeper) const { GOAdditionalSizeKeeperProxy proxyMidiObjects( sizeKeeper, WX_GRID_MIDI_OBJECTS); - m_Objects->CaptureColumnSizes(proxyMidiObjects); + m_ObjectsGrid->CaptureColumnSizes(proxyMidiObjects); } -bool GOMidiListDialog::TransferDataToWindow() { - unsigned oldRowCnt = m_Objects->GetNumberRows(); +bool GOMidiObjectsDialog::TransferDataToWindow() { + unsigned oldRowCnt = m_ObjectsGrid->GetNumberRows(); unsigned newRowCnt = r_MidiObjects.size(); if (oldRowCnt) - m_Objects->DeleteRows(0, oldRowCnt); + m_ObjectsGrid->DeleteRows(0, oldRowCnt); - m_Objects->AppendRows(newRowCnt); + m_ObjectsGrid->AppendRows(newRowCnt); for (unsigned i = 0; i < newRowCnt; i++) { GOMidiObject *obj = r_MidiObjects[i]; - m_Objects->SetCellValue(i, GRID_COL_TYPE, obj->GetMidiType()); - m_Objects->SetCellValue(i, GRID_COL_ELEMENT, obj->GetMidiName()); + m_ObjectsGrid->SetCellValue(i, GRID_COL_TYPE, obj->GetMidiType()); + m_ObjectsGrid->SetCellValue(i, GRID_COL_ELEMENT, obj->GetMidiName()); } return true; } -GOMidiObject *GOMidiListDialog::GetSelectedObject() const { - return r_MidiObjects[m_Objects->GetGridCursorRow()]; +GOMidiObject *GOMidiObjectsDialog::GetSelectedObject() const { + return r_MidiObjects[m_ObjectsGrid->GetGridCursorRow()]; } -void GOMidiListDialog::OnButton(wxCommandEvent &event) { - GOMidiObject *obj = GetSelectedObject(); - obj->TriggerElementActions(event.GetId() - ID_BUTTON); +void GOMidiObjectsDialog::ConfigureSelectedObject() { + GetSelectedObject()->ShowConfigDialog(); } -void GOMidiListDialog::OnObjectClick(wxGridEvent &event) { +void GOMidiObjectsDialog::OnSelectCell(wxGridEvent &event) { int index = event.GetRow(); bool isAnySelected = index >= 0; - m_Edit->Enable(isAnySelected); - m_Status->Enable(isAnySelected); + m_ConfigureButton->Enable(isAnySelected); + m_StatusButton->Enable(isAnySelected); if (isAnySelected) { - m_Objects->SelectRow(index); + m_ObjectsGrid->SelectRow(index); GOMidiObject *obj = r_MidiObjects[index]; std::vector actions = obj->GetElementActions(); - for (unsigned i = 0; i < m_Buttons.size(); i++) + for (unsigned i = 0; i < m_ActionButtons.size(); i++) if (i < actions.size()) { - m_Buttons[i]->SetLabel(actions[i]); - m_Buttons[i]->Show(); + m_ActionButtons[i]->SetLabel(actions[i]); + m_ActionButtons[i]->Show(); } else - m_Buttons[i]->Hide(); + m_ActionButtons[i]->Hide(); } Layout(); event.StopPropagation(); } -void GOMidiListDialog::OnObjectDoubleClick(wxGridEvent &event) { - GOMidiObject *obj = GetSelectedObject(); - - obj->ShowConfigDialog(); -} - -void GOMidiListDialog::OnStatus(wxCommandEvent &event) { +void GOMidiObjectsDialog::OnStatusButton(wxCommandEvent &event) { GOMidiObject *obj = GetSelectedObject(); wxString status = obj->GetElementStatus(); @@ -168,7 +162,7 @@ void GOMidiListDialog::OnStatus(wxCommandEvent &event) { wxOK); } -void GOMidiListDialog::OnEdit(wxCommandEvent &event) { - wxGridEvent listevent; - OnObjectDoubleClick(listevent); +void GOMidiObjectsDialog::OnActionButton(wxCommandEvent &event) { + GOMidiObject *obj = GetSelectedObject(); + obj->TriggerElementActions(event.GetId() - ID_BUTTON); } diff --git a/src/grandorgue/gui/dialogs/GOMidiListDialog.h b/src/grandorgue/gui/dialogs/GOMidiObjectstDialog.h similarity index 57% rename from src/grandorgue/gui/dialogs/GOMidiListDialog.h rename to src/grandorgue/gui/dialogs/GOMidiObjectstDialog.h index 4ea68afa1..d355ed5b3 100644 --- a/src/grandorgue/gui/dialogs/GOMidiListDialog.h +++ b/src/grandorgue/gui/dialogs/GOMidiObjectstDialog.h @@ -5,8 +5,8 @@ * (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html). */ -#ifndef GOMIDILISTDIALOG_H -#define GOMIDILISTDIALOG_H +#ifndef GOMIDIOBJECTSDIALOG_H +#define GOMIDIOBJECTSDIALOG_H #include @@ -19,17 +19,17 @@ class wxGridEvent; class GOGrid; class GOMidiObject; -class GOMidiListDialog : public GOSimpleDialog, public GOView { +class GOMidiObjectsDialog : public GOSimpleDialog, public GOView { private: const std::vector &r_MidiObjects; - GOGrid *m_Objects; - wxButton *m_Edit; - wxButton *m_Status; - std::vector m_Buttons; + GOGrid *m_ObjectsGrid; + wxButton *m_ConfigureButton; + wxButton *m_StatusButton; + std::vector m_ActionButtons; public: - GOMidiListDialog( + GOMidiObjectsDialog( GODocumentBase *doc, wxWindow *parent, GODialogSizeSet &dialogSizes, @@ -43,14 +43,15 @@ class GOMidiListDialog : public GOSimpleDialog, public GOView { bool TransferDataToWindow() override; GOMidiObject *GetSelectedObject() const; + void ConfigureSelectedObject(); - void OnObjectClick(wxGridEvent &event); - void OnObjectDoubleClick(wxGridEvent &event); - void OnEdit(wxCommandEvent &event); - void OnStatus(wxCommandEvent &event); - void OnButton(wxCommandEvent &event); + void OnSelectCell(wxGridEvent &event); + void OnObjectDoubleClick(wxGridEvent &event) { ConfigureSelectedObject(); } + void OnConfigureButton(wxCommandEvent &event) { ConfigureSelectedObject(); } + void OnStatusButton(wxCommandEvent &event); + void OnActionButton(wxCommandEvent &event); DECLARE_EVENT_TABLE() }; -#endif +#endif // GOMIDIOBJECTSDIALOG_H