From 252999c4e26d7ef6dde45bfe731bab673158e0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 30 Aug 2010 21:18:20 +0000 Subject: [PATCH] * Fixed CID 461 as well - same thing, only for adding a menu to the save panel. * The menus are now only created when the menu bar is found. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38466 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/stylededit/StyledEditApp.cpp | 53 ++++++++++++------------ src/apps/stylededit/StyledEditWindow.cpp | 39 ++++++++--------- 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/src/apps/stylededit/StyledEditApp.cpp b/src/apps/stylededit/StyledEditApp.cpp index e2c4ca4c9c..d984b0de74 100644 --- a/src/apps/stylededit/StyledEditApp.cpp +++ b/src/apps/stylededit/StyledEditApp.cpp @@ -92,36 +92,39 @@ StyledEditApp::StyledEditApp() fOpenPanel = new BFilePanel(); fOpenAsEncoding = 0; - fOpenPanelEncodingMenu = new BMenu(B_TRANSLATE("Encoding")); - fOpenPanelEncodingMenu->SetRadioMode(true); BMenuBar* menuBar = dynamic_cast(fOpenPanel->Window()->FindView("MenuBar")); - if (menuBar != NULL) + if (menuBar != NULL) { + fOpenPanelEncodingMenu = new BMenu(B_TRANSLATE("Encoding")); + fOpenPanelEncodingMenu->SetRadioMode(true); + menuBar->AddItem(fOpenPanelEncodingMenu); - BCharacterSetRoster roster; - BCharacterSet charset; - while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { - BString name; - if (charset.GetFontID() == B_UNICODE_UTF8) - name = B_TRANSLATE("Default"); - else - name = charset.GetPrintName(); + BCharacterSetRoster roster; + BCharacterSet charset; + while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { + BString name; + if (charset.GetFontID() == B_UNICODE_UTF8) + name = B_TRANSLATE("Default"); + else + name = charset.GetPrintName(); - const char* mime = charset.GetMIMEName(); - if (mime) { - name.Append(" ("); - name.Append(mime); - name.Append(")"); + const char* mime = charset.GetMIMEName(); + if (mime != NULL) { + name.Append(" ("); + name.Append(mime); + name.Append(")"); + } + BMenuItem* item = + new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); + item->SetTarget(this); + fOpenPanelEncodingMenu->AddItem(item); + if (charset.GetFontID() == fOpenAsEncoding) + item->SetMarked(true); } - BMenuItem* item = - new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); - item->SetTarget(this); - fOpenPanelEncodingMenu->AddItem(item); - if (charset.GetFontID() == fOpenAsEncoding) - item->SetMarked(true); - } + } else + fOpenPanelEncodingMenu = NULL; fWindowCount = 0; fNextUntitledWindow = 1; @@ -132,8 +135,6 @@ StyledEditApp::StyledEditApp() StyledEditApp::~StyledEditApp() { delete fOpenPanel; - if (fOpenPanelEncodingMenu->Supermenu() == NULL) - delete fOpenPanelEncodingMenu; } @@ -153,7 +154,7 @@ StyledEditApp::MessageReceived(BMessage* message) case OPEN_AS_ENCODING: void* ptr; if (message->FindPointer("source", &ptr) == B_OK - && fOpenPanelEncodingMenu != 0) { + && fOpenPanelEncodingMenu != NULL) { fOpenAsEncoding = (uint32)fOpenPanelEncodingMenu->IndexOf( (BMenuItem*)ptr); } diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index 87bc266fba..a02c22d680 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -1001,27 +1001,28 @@ StyledEditWindow::SaveAs(BMessage* message) BMenuBar* menuBar = dynamic_cast( fSavePanel->Window()->FindView("MenuBar")); + if (menuBar != NULL) { + fSavePanelEncodingMenu = new BMenu(B_TRANSLATE("Encoding")); + fSavePanelEncodingMenu->SetRadioMode(true); + menuBar->AddItem(fSavePanelEncodingMenu); - fSavePanelEncodingMenu= new BMenu(B_TRANSLATE("Encoding")); - menuBar->AddItem(fSavePanelEncodingMenu); - fSavePanelEncodingMenu->SetRadioMode(true); - - BCharacterSetRoster roster; - BCharacterSet charset; - while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { - BString name(charset.GetPrintName()); - const char* mime = charset.GetMIMEName(); - if (mime) { - name.Append(" ("); - name.Append(mime); - name.Append(")"); + BCharacterSetRoster roster; + BCharacterSet charset; + while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { + BString name(charset.GetPrintName()); + const char* mime = charset.GetMIMEName(); + if (mime) { + name.Append(" ("); + name.Append(mime); + name.Append(")"); + } + BMenuItem * item = new BMenuItem(name.String(), + new BMessage(SAVE_AS_ENCODING)); + item->SetTarget(this); + fSavePanelEncodingMenu->AddItem(item); + if (charset.GetFontID() == fTextView->GetEncoding()) + item->SetMarked(true); } - BMenuItem * item = new BMenuItem(name.String(), - new BMessage(SAVE_AS_ENCODING)); - item->SetTarget(this); - fSavePanelEncodingMenu->AddItem(item); - if (charset.GetFontID() == fTextView->GetEncoding()) - item->SetMarked(true); } }