From 4b84a0b5c8a8c87b2601a735d13cbf258a32fc92 Mon Sep 17 00:00:00 2001 From: Philippe Saint-Pierre Date: Wed, 12 Dec 2012 23:10:02 -0500 Subject: [PATCH] Mail: don't require a subject to save a draft (#9218) Also : * if the body of message changes, ask to save draft when closing window * disable save button when successfully saving draft --- src/apps/mail/MailWindow.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/apps/mail/MailWindow.cpp b/src/apps/mail/MailWindow.cpp index 5b0c6bcbc9e..0537456fbc3 100644 --- a/src/apps/mail/MailWindow.cpp +++ b/src/apps/mail/MailWindow.cpp @@ -1691,6 +1691,8 @@ TMailWindow::QuitRequested() || strlen(fHeaderView->fSubject->Text()) || (fHeaderView->fCc && strlen(fHeaderView->fCc->Text())) || (fHeaderView->fBcc && strlen(fHeaderView->fBcc->Text())) + || (fContentView->fTextView + && strlen(fContentView->fTextView->Text())) || (fEnclosuresView != NULL && fEnclosuresView->fList->CountItems()))) { if (fResending) { @@ -2550,8 +2552,13 @@ TMailWindow::SaveAsDraft() { char fileName[B_FILE_NAME_LENGTH]; // save as some version of the message's subject - strlcpy(fileName, fHeaderView->fSubject->Text(), - sizeof(fileName)); + if (strlen(fHeaderView->fSubject->Text()) == 0) + strlcpy(fileName, B_TRANSLATE("Untitled"), + sizeof(fileName)); + else + strlcpy(fileName, fHeaderView->fSubject->Text(), + sizeof(fileName)); + uint32 originalLength = strlen(fileName); // convert /, \ and : to - @@ -2648,6 +2655,8 @@ TMailWindow::SaveAsDraft() fDraft = true; fChanged = false; + fSaveButton->SetEnabled(false); + return B_OK; }