Style name collisions (when moving from storage, creating or renaming) will now prompt the user before performing the action.

Originally committed to SVN as r568.
This commit is contained in:
Rodrigo Braz Monteiro 2006-12-17 20:30:59 +00:00
parent 73fdf2a9d3
commit 25120f8461
3 changed files with 26 additions and 4 deletions

View File

@ -30,6 +30,7 @@ Please visit http://aegisub.net to download latest version
- Plain-text lines can now be pasted into the grid. They will be inserted as default lines with the text as their content. (AMZ) - Plain-text lines can now be pasted into the grid. They will be inserted as default lines with the text as their content. (AMZ)
- Added Paste Over function, which allows you to paste subtitle lines over others, overwriting the fields of your choice. (AMZ) - Added Paste Over function, which allows you to paste subtitle lines over others, overwriting the fields of your choice. (AMZ)
- Renaming a style will now ask you if you want to rename all instances of it on the script. (AMZ) - Renaming a style will now ask you if you want to rename all instances of it on the script. (AMZ)
- Style name collisions (when moving from storage, creating or renaming) will now prompt the user before performing the action. (AMZ)
= 1.10 beta - 2006.08.07 =========================== = 1.10 beta - 2006.08.07 ===========================

View File

@ -379,6 +379,19 @@ void DialogStyleEditor::Apply (bool apply,bool close) {
if (apply) { if (apply) {
// Style name // Style name
wxString newStyleName = StyleName->GetValue(); wxString newStyleName = StyleName->GetValue();
// Check if style name is unique
wxArrayString styles = grid->ass->GetStyles();
for (unsigned int i=0;i<styles.Count();i++) {
if (styles[i] == newStyleName) {
if (grid->ass->GetStyle(styles[i]) != style) {
int answer = wxMessageBox(_T("There is already a style with this name. Proceed anyway?"),_T("Style name conflict."),wxYES_NO);
if (answer == wxNO) return;
}
}
}
// Style name change
if (work->name != newStyleName) { if (work->name != newStyleName) {
// See if user wants to update style name through script // See if user wants to update style name through script
int answer = wxMessageBox(_T("Do you want to change all instances of this style in the script to this new name?"),_T("Update script?"),wxYES_NO | wxCANCEL); int answer = wxMessageBox(_T("Do you want to change all instances of this style in the script to this new name?"),_T("Update script?"),wxYES_NO | wxCANCEL);

View File

@ -489,15 +489,23 @@ void DialogStyleManager::OnCopyToCurrent (wxCommandEvent &event) {
int n = StorageList->GetSelections(selections); int n = StorageList->GetSelections(selections);
AssStyle *temp; AssStyle *temp;
for (int i=0;i<n;i++) { for (int i=0;i<n;i++) {
// Check if there is already a style with that name
int test = CurrentList->FindString(StorageList->GetString(selections[i])); int test = CurrentList->FindString(StorageList->GetString(selections[i]));
if (test == wxNOT_FOUND) { bool proceed = test==-1;
if (!proceed) {
int answer = wxMessageBox(_T("There is already a style with that name on the current script. Proceed anyway?"),_T("Style name collision."),wxYES_NO);
if (answer == wxYES) proceed = true;
}
// Copy
if (proceed) {
temp = new AssStyle; temp = new AssStyle;
*temp = *styleStorageMap.at(selections[i]); *temp = *styleStorageMap.at(selections[i]);
AssFile::top->InsertStyle(temp); AssFile::top->InsertStyle(temp);
} }
else {
// Bug user? // Return
} else return;
} }
LoadCurrentStyles(AssFile::top); LoadCurrentStyles(AssFile::top);
grid->ass->FlagAsModified(); grid->ass->FlagAsModified();