Implemented support for clearing all bookmarks (undoable)

Closes #54
This commit is contained in:
Daniel Collin 2013-01-04 14:49:57 +01:00
parent dbbc2c7b4a
commit d84d46b35d
4 changed files with 28 additions and 1 deletions

View File

@ -360,6 +360,31 @@ void Commands_toggleBookmark(TrackData* trackData, int row)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Commands_clearBookmarks(TrackData* trackData)
{
int i, bookmarkCount = trackData->bookmarkCount;
int* bookmarks = trackData->bookmarks;
if (trackData->bookmarkCount == 0)
return;
Commands_beginMulti("clearBookmarks");
for (i = 0; i < bookmarkCount; ++i)
{
const int bookmark = *bookmarks++;
if (bookmark == 0)
continue;
Commands_toggleBookmark(trackData, bookmark);
}
Commands_endMulti();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Commands_undo()
{
Command* command;

View File

@ -21,6 +21,7 @@ void Commands_redo();
void Commands_deleteKey(int track, int row);
void Commands_addOrUpdateKey(int track, struct track_key* key);
void Commands_toggleBookmark(struct TrackData* trackData, int row);
void Commands_clearBookmarks(struct TrackData* trackData);
void Commands_updateKey(int track, struct track_key* key);
void Commands_beginMulti(const char* name); // Used (for example) when changing many value at the same time
void Commands_endMulti();

View File

@ -1251,6 +1251,7 @@ static void onToggleBookmark()
static void onClearBookmarks()
{
Commands_clearBookmarks(getTrackData());
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -80,7 +80,7 @@ MenuDescriptor g_viewMenu[] =
{ _T("Unfold group"), EDITOR_MENU_UNFOLD_GROUP, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, 0 },
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
{ _T("Toogle bookmark"), EDITOR_MENU_TOGGLE_BOOKMARK, 'b', 0, 0 },
{ _T("Clear bookmarks"), EDITOR_MENU_CLEAR_BOOKMARKS, 'b', EMGUI_KEY_SHIFT, EMGUI_KEY_SHIFT },
{ _T("Clear bookmarks"), EDITOR_MENU_CLEAR_BOOKMARKS, 'b', EMGUI_KEY_COMMAND, EMGUI_KEY_CTRL },
{ _T("Unfold track"), EDITOR_MENU_UNFOLD_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT, 0 },
{ _T("Jump row,start/end & edit"), EDITOR_MENU_TAB, EMGUI_KEY_TAB, 0, 0 },
{ 0 },