StyledEdit: choose lowest unused number for Untitled documents

Fixes #8556.

Change-Id: I8825008f45f2549e233be2c7adad13c8993f003d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2273
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
ejno
2026-02-17 07:25:40 +00:00
committed by Adrien Destugues
parent ec3ccc394c
commit 31c71e72a0
3 changed files with 25 additions and 6 deletions
+22 -2
View File
@@ -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++;
}
-1
View File
@@ -49,7 +49,6 @@ private:
BMenu* fOpenPanelEncodingMenu;
uint32 fOpenAsEncoding;
int32 fWindowCount;
int32 fNextUntitledWindow;
bool fBadArguments;
};
+3 -3
View File
@@ -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();