diff --git a/radiant/uimanager/SoundChooser.cpp b/radiant/uimanager/SoundChooser.cpp index 95f675857e..a8999fa31b 100644 --- a/radiant/uimanager/SoundChooser.cpp +++ b/radiant/uimanager/SoundChooser.cpp @@ -8,6 +8,7 @@ #include "wxutil/dataview/ThreadedResourceTreePopulator.h" #include "wxutil/dataview/VFSTreePopulator.h" #include "wxutil/menu/IconTextMenuItem.h" +#include "wxutil/menu/MenuItem.h" #include "debugging/ScopedDebugTimer.h" #include "ui/common/SoundShaderDefinitionView.h" #include "ui/UserInterfaceModule.h" @@ -79,6 +80,7 @@ class SoundShaderPopulator : row[_columns.leafName] = actualLeafName; row[_columns.fullName] = actualLeafName; row[_columns.isFolder] = isFolder; + row[_columns.isFavourite] = false; row.SendItemAdded(); }); } @@ -145,13 +147,11 @@ SoundChooser::SoundChooser(wxWindow* parent) : GetSizer()->Add(_preview, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 12); GetSizer()->Add(buttonSizer, 0, wxALIGN_RIGHT | wxBOTTOM | wxLEFT | wxRIGHT, 12); - _popupMenu.reset(new wxutil::PopupMenu); - - _popupMenu->addItem( + _treeView->AddCustomMenuItem(std::make_shared( new wxutil::IconTextMenuItem(_(SHOW_SHADER_DEF_TEXT), SHOW_SHADER_DEF_ICON), std::bind(&SoundChooser::onShowShaderDefinition, this), std::bind(&SoundChooser::testShowShaderDefinition, this) - ); + )); FitToScreen(0.5f, 0.7f); @@ -175,7 +175,6 @@ wxWindow* SoundChooser::createTreeView(wxWindow* parent) // Get selection and connect the changed callback _treeView->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, &SoundChooser::_onSelectionChange, this); _treeView->Bind(wxEVT_DATAVIEW_ITEM_ACTIVATED, &SoundChooser::_onItemActivated, this); - _treeView->Bind(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, &SoundChooser::_onContextMenu, this); return _treeView; } @@ -252,11 +251,6 @@ void SoundChooser::_onItemActivated(wxDataViewEvent& ev) } } -void SoundChooser::_onContextMenu(wxDataViewEvent& ev) -{ - _popupMenu->show(_treeView); -} - void SoundChooser::onShowShaderDefinition() { auto* view = new SoundShaderDefinitionView(getSelectedShader(), this); diff --git a/radiant/uimanager/SoundChooser.h b/radiant/uimanager/SoundChooser.h index 2f78c47b0f..e64e1bd10e 100644 --- a/radiant/uimanager/SoundChooser.h +++ b/radiant/uimanager/SoundChooser.h @@ -30,9 +30,6 @@ class SoundChooser : // Last selected shader std::string _selectedShader; - // Context menu - wxutil::PopupMenuPtr _popupMenu; - sigc::connection _shadersReloaded; private: @@ -46,7 +43,6 @@ class SoundChooser : // callbacks void _onSelectionChange(wxDataViewEvent& ev); void _onItemActivated(wxDataViewEvent& ev); - void _onContextMenu(wxDataViewEvent& ev); void _onReloadSounds(wxCommandEvent& ev); void onShowShaderDefinition();