1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 16:10:06 +02:00

Fix checks for tabs in CommandManager & don't write labels to file...

... Because label wasn't used when reading back, and it was, questionably,
writing localized strings out.

CommandManager serialization is used only for exporting and importing keystroke
shortcuts, and not in save and load of projects.

There was apparently confusion too about tab characters separating command name
from a menu accelerator, but such are not stored in the label field of
CommandListEntry.  Those tabs were only added by certain accessor functions,
which are here renamed.
This commit is contained in:
Paul Licameli 2019-12-15 14:36:22 -05:00
parent 516a3fee61
commit f2f7568383
2 changed files with 13 additions and 20 deletions

View File

@ -523,7 +523,7 @@ void CommandManager::AddItem(const CommandID &name,
options);
entry->useStrictFlags = options.useStrictFlags;
int ID = entry->id;
wxString label = GetLabelWithDisabledAccel(entry);
wxString label = FormatLabelWithDisabledAccel(entry);
SetCommandFlags(name, flags);
@ -567,7 +567,7 @@ void CommandManager::AddItemList(const CommandID & name,
Options{}
.IsEffect(bIsEffect));
entry->flags = flags;
CurrentMenu()->Append(entry->id, GetLabel(entry));
CurrentMenu()->Append(entry->id, FormatLabelForMenu(entry));
mbSeparatorAllowed = true;
}
}
@ -747,14 +747,14 @@ CommandListEntry *CommandManager::NewIdentifier(const CommandID & nameIn,
wxLogDebug(wxT("Command '%s' defined by '%s' and '%s'"),
// using GET in a log message for devs' eyes only
entry->name.GET(),
prev->label.BeforeFirst(wxT('\t')),
entry->label.BeforeFirst(wxT('\t')));
prev->label,
entry->label);
wxFAIL_MSG(wxString::Format(wxT("Command '%s' defined by '%s' and '%s'"),
// using GET in an assertion violation message for devs'
// eyes only
entry->name.GET(),
prev->label.BeforeFirst(wxT('\t')),
entry->label.BeforeFirst(wxT('\t'))));
prev->label,
entry->label));
}
}
#endif
@ -767,7 +767,7 @@ CommandListEntry *CommandManager::NewIdentifier(const CommandID & nameIn,
return entry;
}
wxString CommandManager::GetLabel(const CommandListEntry *entry) const
wxString CommandManager::FormatLabelForMenu(const CommandListEntry *entry) const
{
wxString label = entry->label;
if (!entry->key.empty())
@ -784,7 +784,7 @@ wxString CommandManager::GetLabel(const CommandListEntry *entry) const
// catch them in normal wxWidgets processing, rather than passing the key presses on
// to the controls that had the focus. We would like all the menu accelerators to be
// disabled, in fact.
wxString CommandManager::GetLabelWithDisabledAccel(const CommandListEntry *entry) const
wxString CommandManager::FormatLabelWithDisabledAccel(const CommandListEntry *entry) const
{
wxString label = entry->label;
#if 1
@ -946,7 +946,7 @@ void CommandManager::Modify(const wxString &name, const wxString &newLabel)
CommandListEntry *entry = mCommandNameHash[name];
if (entry && entry->menu) {
entry->label = newLabel;
entry->menu->SetLabel(entry->id, GetLabel(entry));
entry->menu->SetLabel(entry->id, FormatLabelForMenu(entry));
}
}
@ -1439,12 +1439,9 @@ void CommandManager::WriteXML(XMLWriter &xmlFile) const
xmlFile.WriteAttr(wxT("audacityversion"), AUDACITY_VERSION_STRING);
for(const auto &entry : mCommandList) {
wxString label = entry->label;
label = wxMenuItem::GetLabelText(label.BeforeFirst(wxT('\t')));
xmlFile.StartTag(wxT("command"));
xmlFile.WriteAttr(wxT("name"), entry->name);
xmlFile.WriteAttr(wxT("label"), label);
xmlFile.WriteAttr(wxT("key"), entry->key);
xmlFile.EndTag(wxT("command"));
}
@ -1489,10 +1486,6 @@ void CommandManager::CheckDups()
continue;
}
if (mCommandList[j]->label.AfterLast(wxT('\t')) == wxT("allowDup")) {
continue;
}
for (size_t i = 0; (int)i < cnt; i++) {
if (i == j) {
continue;
@ -1503,8 +1496,8 @@ void CommandManager::CheckDups()
msg.Printf(wxT("key combo '%s' assigned to '%s' and '%s'"),
// using GET to form debug message
mCommandList[i]->key.GET(),
mCommandList[i]->label.BeforeFirst(wxT('\t')),
mCommandList[j]->label.BeforeFirst(wxT('\t')));
mCommandList[i]->label,
mCommandList[j]->label);
wxASSERT_MSG(mCommandList[i]->key != mCommandList[j]->key, msg);
}
}

View File

@ -347,8 +347,8 @@ private:
public:
wxMenu * CurrentMenu() const;
private:
wxString GetLabel(const CommandListEntry *entry) const;
wxString GetLabelWithDisabledAccel(const CommandListEntry *entry) const;
wxString FormatLabelForMenu(const CommandListEntry *entry) const;
wxString FormatLabelWithDisabledAccel(const CommandListEntry *entry) const;
//
// Loading/Saving