forked from mia/Aegisub
Add a function to remove items from MRU lists, in preparation for a fix for #717. Also a bit of prettyfication of the MRU handling code.
Originally committed to SVN as r2220.
This commit is contained in:
parent
5a2e91c00a
commit
67bfd70f82
|
@ -644,7 +644,7 @@ void OptionsManager::AddToRecentList (wxString entry,wxString list) {
|
||||||
int recentMax = AsInt(list + _T(" max"));
|
int recentMax = AsInt(list + _T(" max"));
|
||||||
int n = 0;
|
int n = 0;
|
||||||
for (int i=0;i<recentMax;i++) {
|
for (int i=0;i<recentMax;i++) {
|
||||||
wxString key = list + _T(" #") + wxString::Format(_T("%i"),i+1);
|
wxString key = wxString::Format(_T("%s #%i"), list.c_str(), i+1);
|
||||||
if (IsDefined(key)) {
|
if (IsDefined(key)) {
|
||||||
cur = AsText(key);
|
cur = AsText(key);
|
||||||
if (cur != entry) {
|
if (cur != entry) {
|
||||||
|
@ -659,7 +659,7 @@ void OptionsManager::AddToRecentList (wxString entry,wxString list) {
|
||||||
SetText(list + _T(" #1"),entry);
|
SetText(list + _T(" #1"),entry);
|
||||||
if (n > recentMax-1) n = recentMax-1;
|
if (n > recentMax-1) n = recentMax-1;
|
||||||
for (int i=0;i<n;i++) {
|
for (int i=0;i<n;i++) {
|
||||||
wxString key = list + _T(" #") + wxString::Format(_T("%i"),i+2);
|
wxString key = wxString::Format(_T("%s #%i"), list.c_str(), i+2);
|
||||||
SetText(key,orig[i]);
|
SetText(key,orig[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -668,14 +668,45 @@ void OptionsManager::AddToRecentList (wxString entry,wxString list) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
// Removes an item from a list of recents, if it's in the list
|
||||||
|
void OptionsManager::RemoveFromRecentList (wxString entry,wxString list) {
|
||||||
|
// Find strings already in recent list
|
||||||
|
wxArrayString cleaned;
|
||||||
|
wxString cur;
|
||||||
|
int recentMax = AsInt(list + _T(" max"));
|
||||||
|
int n = 0;
|
||||||
|
for (int i=0;i<recentMax;i++) {
|
||||||
|
wxString key = wxString::Format(_T("%s #%i"), list.c_str(), i+1);
|
||||||
|
if (IsDefined(key)) {
|
||||||
|
cur = AsText(key);
|
||||||
|
if (cur != entry) {
|
||||||
|
cleaned.Add(cur);
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write back to options
|
||||||
|
if (n > recentMax-1) n = recentMax-1;
|
||||||
|
for (int i=0;i<n;i++) {
|
||||||
|
wxString key = wxString::Format(_T("%s #%i"), list.c_str(), i+1);
|
||||||
|
SetText(key,cleaned[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save options
|
||||||
|
Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
// Get recent list
|
// Get recent list
|
||||||
wxArrayString OptionsManager::GetRecentList (wxString list) {
|
wxArrayString OptionsManager::GetRecentList (wxString list) {
|
||||||
wxArrayString work;
|
wxArrayString work;
|
||||||
int recentMax = AsInt(list + _T(" max"));
|
int recentMax = AsInt(list + _T(" max"));
|
||||||
for (int i=0;i<recentMax;i++) {
|
for (int i=0;i<recentMax;i++) {
|
||||||
wxString n = wxString::Format(_T("%i"),i+1);
|
wxString key = wxString::Format(_T("%s #%i"), list.c_str(), i+1);
|
||||||
wxString key = list + _T(" #") + n;
|
|
||||||
if (IsDefined(key)) {
|
if (IsDefined(key)) {
|
||||||
work.Add(Options.AsText(key));
|
work.Add(Options.AsText(key));
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,9 @@ public:
|
||||||
void Save();
|
void Save();
|
||||||
void Load();
|
void Load();
|
||||||
void LoadDefaults(bool onlyDefaults=false,bool versionOverride=false);
|
void LoadDefaults(bool onlyDefaults=false,bool versionOverride=false);
|
||||||
|
|
||||||
void AddToRecentList (wxString entry,wxString list);
|
void AddToRecentList (wxString entry,wxString list);
|
||||||
|
void RemoveFromRecentList (wxString entry,wxString list);
|
||||||
wxArrayString GetRecentList (wxString list);
|
wxArrayString GetRecentList (wxString list);
|
||||||
|
|
||||||
void SetInt(wxString key,int param,int ifLastVersion=-1);
|
void SetInt(wxString key,int param,int ifLastVersion=-1);
|
||||||
|
|
Loading…
Reference in a new issue