diff --git a/src/apps/stylededit/StyledEditApp.cpp b/src/apps/stylededit/StyledEditApp.cpp index 7e3ecdc08d..de023a2628 100644 --- a/src/apps/stylededit/StyledEditApp.cpp +++ b/src/apps/stylededit/StyledEditApp.cpp @@ -130,7 +130,6 @@ StyledEditApp::StyledEditApp() fOpenPanelEncodingMenu = NULL; fWindowCount = 0; - fNextUntitledWindow = 1; fBadArguments = false; float factor = be_plain_font->Size() / 12.0f; @@ -179,10 +178,31 @@ StyledEditApp::MessageReceived(BMessage* message) } +static int32 +GetNextUntitled() +{ + int nextUntitled = 1; + + BString title; + const char* untitledFormat = B_TRANSLATE_CONTEXT("Untitled %d", "Window title"); + title.SetToFormat(untitledFormat, (int)nextUntitled); + + int32 numWindows = be_app->CountWindows(); + for (int32 i = 0; i < numWindows; i++) { + if (be_app->WindowAt(i)->Title() == title) + { + title.SetToFormat(untitledFormat, (int)++nextUntitled); + } + } + + return nextUntitled; +} + + void StyledEditApp::OpenDocument() { - new StyledEditWindow(sWindowRect, fNextUntitledWindow++, fOpenAsEncoding); + new StyledEditWindow(sWindowRect, GetNextUntitled(), fOpenAsEncoding); cascade(); fWindowCount++; } diff --git a/src/apps/stylededit/StyledEditApp.h b/src/apps/stylededit/StyledEditApp.h index 71f1f748bb..0de971fc07 100644 --- a/src/apps/stylededit/StyledEditApp.h +++ b/src/apps/stylededit/StyledEditApp.h @@ -49,7 +49,6 @@ private: BMenu* fOpenPanelEncodingMenu; uint32 fOpenAsEncoding; int32 fWindowCount; - int32 fNextUntitledWindow; bool fBadArguments; }; diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index fda495e408..6d750fd31b 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -91,9 +91,9 @@ StyledEditWindow::StyledEditWindow(BRect frame, int32 id, uint32 encoding) fReplaceWindow(NULL) { _InitWindow(encoding); - BString unTitled(B_TRANSLATE("Untitled ")); - unTitled << id; - SetTitle(unTitled.String()); + BString untitled; + untitled.SetToFormat(B_TRANSLATE_CONTEXT("Untitled %d", "Window title"), (int)id); + SetTitle(untitled.String()); fSaveItem->SetEnabled(true); // allow saving empty files Show();