mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-23 15:41:09 +02:00
Use unique_ptr more properly in the fix for building mod-nyq-bench
This commit is contained in:
parent
f4d38476a6
commit
09a3854256
@ -502,7 +502,8 @@ wxMenuBar * CommandManager::CurrentMenuBar() const
|
|||||||
///
|
///
|
||||||
void CommandManager::BeginMenu(const wxString & tName)
|
void CommandManager::BeginMenu(const wxString & tName)
|
||||||
{
|
{
|
||||||
mCurrentMenu = std::make_unique<wxMenu>();
|
uCurrentMenu = std::make_unique<wxMenu>();
|
||||||
|
mCurrentMenu = uCurrentMenu.get();
|
||||||
mCurrentMenuName = tName;
|
mCurrentMenuName = tName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -515,7 +516,9 @@ void CommandManager::EndMenu()
|
|||||||
// Add the menu to the menubar after all menu items have been
|
// Add the menu to the menubar after all menu items have been
|
||||||
// added to the menu to allow OSX to rearrange special menu
|
// added to the menu to allow OSX to rearrange special menu
|
||||||
// items like Preferences, About, and Quit.
|
// items like Preferences, About, and Quit.
|
||||||
CurrentMenuBar()->Append(mCurrentMenu.release(), mCurrentMenuName);
|
wxASSERT(uCurrentMenu);
|
||||||
|
CurrentMenuBar()->Append(uCurrentMenu.release(), mCurrentMenuName);
|
||||||
|
mCurrentMenu = nullptr;
|
||||||
mCurrentMenuName = COMMAND;
|
mCurrentMenuName = COMMAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -575,7 +578,7 @@ wxMenu * CommandManager::CurrentMenu() const
|
|||||||
|
|
||||||
if(!tmpCurrentSubMenu)
|
if(!tmpCurrentSubMenu)
|
||||||
{
|
{
|
||||||
return mCurrentMenu.get();
|
return mCurrentMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmpCurrentSubMenu;
|
return tmpCurrentSubMenu;
|
||||||
@ -583,12 +586,22 @@ wxMenu * CommandManager::CurrentMenu() const
|
|||||||
|
|
||||||
void CommandManager::SetCurrentMenu(wxMenu * menu)
|
void CommandManager::SetCurrentMenu(wxMenu * menu)
|
||||||
{
|
{
|
||||||
mCurrentMenu.reset(menu);
|
// uCurrentMenu ought to be null in correct usage
|
||||||
|
wxASSERT(!uCurrentMenu);
|
||||||
|
// Make sure of it anyway
|
||||||
|
uCurrentMenu.reset();
|
||||||
|
|
||||||
|
mCurrentMenu = menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommandManager::ClearCurrentMenu()
|
void CommandManager::ClearCurrentMenu()
|
||||||
{
|
{
|
||||||
mCurrentMenu.release();
|
// uCurrentMenu ought to be null in correct usage
|
||||||
|
wxASSERT(!uCurrentMenu);
|
||||||
|
// Make sure of it anyway
|
||||||
|
uCurrentMenu.reset();
|
||||||
|
|
||||||
|
mCurrentMenu = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@ -112,6 +112,8 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
|
|||||||
|
|
||||||
std::unique_ptr<wxMenuBar> AddMenuBar(const wxString & sMenu);
|
std::unique_ptr<wxMenuBar> AddMenuBar(const wxString & sMenu);
|
||||||
|
|
||||||
|
// You may either called SetCurrentMenu later followed by ClearCurrentMenu,
|
||||||
|
// or else BeginMenu followed by EndMenu. Don't mix them.
|
||||||
void BeginMenu(const wxString & tName);
|
void BeginMenu(const wxString & tName);
|
||||||
void EndMenu();
|
void EndMenu();
|
||||||
|
|
||||||
@ -198,6 +200,9 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
|
|||||||
void Enable(const wxString &name, bool enabled);
|
void Enable(const wxString &name, bool enabled);
|
||||||
void Check(const wxString &name, bool checked);
|
void Check(const wxString &name, bool checked);
|
||||||
void Modify(const wxString &name, const wxString &newLabel);
|
void Modify(const wxString &name, const wxString &newLabel);
|
||||||
|
|
||||||
|
// You may either called SetCurrentMenu later followed by ClearCurrentMenu,
|
||||||
|
// or else BeginMenu followed by EndMenu. Don't mix them.
|
||||||
void SetCurrentMenu(wxMenu * menu);
|
void SetCurrentMenu(wxMenu * menu);
|
||||||
void ClearCurrentMenu();
|
void ClearCurrentMenu();
|
||||||
|
|
||||||
@ -318,7 +323,8 @@ private:
|
|||||||
bool mbSeparatorAllowed; // false at the start of a menu and immediately after a separator.
|
bool mbSeparatorAllowed; // false at the start of a menu and immediately after a separator.
|
||||||
|
|
||||||
wxString mCurrentMenuName;
|
wxString mCurrentMenuName;
|
||||||
std::unique_ptr<wxMenu> mCurrentMenu;
|
std::unique_ptr<wxMenu> uCurrentMenu;
|
||||||
|
wxMenu *mCurrentMenu {};
|
||||||
|
|
||||||
CommandFlag mDefaultFlags;
|
CommandFlag mDefaultFlags;
|
||||||
CommandMask mDefaultMask;
|
CommandMask mDefaultMask;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user