From bed4e0fbf1afac6504cd8a35eea6d337ed9f9879 Mon Sep 17 00:00:00 2001 From: shatty Date: Fri, 8 Aug 2003 05:36:15 +0000 Subject: [PATCH] fixed the save as case as well git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4242 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/stylededit/Constants.h | 1 + src/apps/stylededit/StyledEditWindow.cpp | 23 +++++++++++++++++------ src/apps/stylededit/StyledEditWindow.h | 4 ++-- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/apps/stylededit/Constants.h b/src/apps/stylededit/Constants.h index 58d7051e6b..df67c5e950 100644 --- a/src/apps/stylededit/Constants.h +++ b/src/apps/stylededit/Constants.h @@ -62,5 +62,6 @@ const uint32 TEXT_CHANGED ='TEch'; // file panel constants const uint32 OPEN_AS_ENCODING ='FPoe'; const uint32 SAVE_AS_ENCODING ='FPse'; +const uint32 SAVE_THEN_QUIT ='FPsq'; #endif // CONSTANTS_H diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index f8210f6cb3..49254fa7c9 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -303,6 +303,12 @@ StyledEditWindow::MessageReceived(BMessage *message) case B_SAVE_REQUESTED: Save(message); break; + case SAVE_THEN_QUIT: + if (Save(message) == B_OK) { + BAutolock lock(this); + Quit(); + } + break; case MENU_REVERT: RevertToSaved(); break; @@ -764,10 +770,10 @@ StyledEditWindow::QuitRequested() BAlert *saveAlert; BString alertText; - alertText.SetTo("Save changes to the document "); + alertText.SetTo("Save changes to the document \""); alertText<< Title(); - alertText<<"? "; - saveAlert= new BAlert("savealert",alertText.String(), "Cancel", "Don't save","Save", + alertText<<"\"? "; + saveAlert= new BAlert("savealert",alertText.String(), "Cancel", "Don't Save","Save", B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_WARNING_ALERT); saveAlert->SetShortcut(0, B_ESCAPE); saveAlert->SetShortcut(1,'d'); @@ -779,9 +785,11 @@ StyledEditWindow::QuitRequested() } else if(buttonIndex==1) { // "don't save": just close the window return true; } else if(!fSaveMessage) { //save as - return SaveAs(); + BMessage * message = new BMessage(SAVE_THEN_QUIT); + SaveAs(message); + return false; } else { - return (Save(fSaveMessage) == B_OK); + return (Save() == B_OK); } }/***QuitRequested()***/ @@ -862,7 +870,7 @@ StyledEditWindow::Save(BMessage *message) } /***Save()***/ status_t -StyledEditWindow::SaveAs() +StyledEditWindow::SaveAs(BMessage *message) { if (fSavePanel == 0) { entry_ref * directory = 0; @@ -911,6 +919,9 @@ StyledEditWindow::SaveAs() fSavePanelTextView->SetText(Title()); } } + if (message != 0) { + fSavePanel->SetMessage(message); + } fSavePanel->Show(); return B_OK; } diff --git a/src/apps/stylededit/StyledEditWindow.h b/src/apps/stylededit/StyledEditWindow.h index 813e4487a2..183b29dfb9 100644 --- a/src/apps/stylededit/StyledEditWindow.h +++ b/src/apps/stylededit/StyledEditWindow.h @@ -24,8 +24,8 @@ public: virtual void MessageReceived(BMessage *message); virtual void MenusBeginning(); - status_t Save(BMessage *message); - status_t SaveAs(); + status_t Save(BMessage *message = 0); + status_t SaveAs(BMessage *message = 0); void OpenFile(entry_ref *ref); status_t PageSetup(const char *documentname); void Print(const char *documentname);