1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-15 01:23:52 +01:00

Revert fix for bug 1119, which made bad dependency cycles

This reverts commit 4475dee373.
This reverts commit 18cbc2e574.
This commit is contained in:
Paul Licameli
2020-04-21 11:08:31 -04:00
parent 20ba353038
commit 3348e2fecd
6 changed files with 4 additions and 160 deletions

View File

@@ -7,16 +7,12 @@
#ifdef __WXMAC__
#include "WindowMenus.h"
#include "../CommonCommandFlags.h"
#include "../Menus.h"
#include "../Project.h"
#include "../commands/CommandContext.h"
#include <wx/frame.h>
#include <wx/menu.h>
#include <wx/menuitem.h>
#undef USE_COCOA
@@ -61,68 +57,7 @@ void DoMacMinimize(AudacityProject *project)
namespace WindowActions {
// exported helper functions
// Refreshes the Window menu in all projects
void Refresh()
{
// Must do it in all projects
for (auto thisProject : AllProjects{})
{
// Need the projects frame, but this should always be successful
wxFrame *frame = thisProject->GetFrame();
wxASSERT(frame != NULL);
if (!frame)
{
continue;
}
// This can happen if we are called before the menubar is set in the frame
wxMenuBar *bar = frame->GetMenuBar();
if (!bar)
{
continue;
}
// Should always find the Window menu
int pos = bar->FindMenu(wxT("Window"));
wxASSERT(pos != wxNOT_FOUND);
if (pos == wxNOT_FOUND)
{
continue;
}
// We can not get the menu proper
wxMenu *menu = bar->GetMenu(pos);
// Remove all existing window items
for (auto item : menu->GetMenuItems())
{
if (item->GetId() >= WindowActions::ID_BASE)
{
menu->Destroy(item);
}
}
// Add all projects to this project's Window menu
for (auto project : AllProjects{})
{
int itemId = WindowActions::ID_BASE + project->GetProjectNumber();
wxString itemName = project->GetFrame()->GetTitle();
bool isActive = (GetActiveProject() == project.get());
// This should never really happen, but a menu item must have a name
if (itemName.empty())
{
itemName = _("<untitled>");
}
// Add it to the menu and check it if it's the active project
wxMenuItem *item = menu->Append(itemId, itemName);
item->SetCheckable(true);
item->Check(isActive);
}
}
}
// none
// Menu handler functions
@@ -187,9 +122,9 @@ namespace {
using namespace MenuTable;
BaseItemSharedPtr WindowMenu()
{
//////////////////////////////////////////////////////////////////////////
// poor imitation of the Mac Windows Menu
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// poor imitation of the Mac Windows Menu
//////////////////////////////////////////////////////////////////////////
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Window"), XO("&Window"),
@@ -209,16 +144,7 @@ BaseItemSharedPtr WindowMenu()
* windows un-hidden */
Command( wxT("MacBringAllToFront"), XXO("&Bring All to Front"),
FN(OnMacBringAllToFront), AlwaysEnabledFlag )
),
Section( "",
Special( wxT("PopulateWindowsStep"),
[](AudacityProject &, wxMenu &theMenu)
{
// Should something be done here???
} )
)
) ) };
return menu;
}

View File

@@ -1,22 +0,0 @@
#include "../Audacity.h"
#include "../commands/CommandManager.h"
#ifdef __WXMAC__
/// Namespace for functions for window management (mac only?)
namespace WindowActions {
// Range of assigned menu IDs
static const wxWindowID ID_BASE = 30000;
static const wxWindowID ID_LAST = 30999;
// Exported helper functions
void Refresh();
};
#else
// Not WXMAC.
#endif