Update of /cvsroot/mahogany/M/src/gui
In directory usw-pr-cvs1:/tmp/cvs-serv18437/src/gui
Modified Files:
wxComposeView.cpp
Log Message:
1. added MailFolder::SaveMEssageAsMBOX()
2. made resuming interrupted messages work
Index: wxComposeView.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/gui/wxComposeView.cpp,v
retrieving revision 1.260
retrieving revision 1.261
diff -b -u -2 -r1.260 -r1.261
--- wxComposeView.cpp 18 Mar 2002 22:37:42 -0000 1.260
+++ wxComposeView.cpp 19 Mar 2002 01:43:44 -0000 1.261
@@ -3309,4 +3309,9 @@
}
+void wxComposeView::SetDirty()
+{
+ m_isModified = true;
+}
+
bool wxComposeView::IsModified() const
{
@@ -3586,6 +3591,14 @@
}
- // false means don't append, truncate
- if ( !msg->WriteToFile(m_filenameAutoSave, false) )
+ String contents;
+ if ( !msg->WriteToString(contents) )
+ {
+ // this is completely unexpected
+ FAIL_MSG( "Failed to get the message text?" );
+
+ return false;
+ }
+
+ if ( !MailFolder::SaveMessageAsMBOX(m_filenameAutoSave, contents) )
{
// TODO: disable autosaving? we risk to give many such messages if
@@ -3643,5 +3656,12 @@
filename = name + filename;
- MFolder_obj folder(MFolder::CreateTemp("", MF_FILE, 0, filename));
+ MFolder_obj folder(MFolder::CreateTemp
+ (
+ String::Format(_("Interrupted message %d"),
+ nResumed + 1),
+ MF_FILE,
+ MF_FLAGS_TEMPORARY,
+ filename
+ ));
cont = dir.GetNext(&filename);
@@ -3654,16 +3674,26 @@
// FIXME: assume UID of the first message in a new MBX folder is
// always 1
- Message_obj msg = mf->GetMessage(1);
+ Message *msg = mf->GetMessage(1);
if ( msg )
{
- if ( EditMessage(mApplication->GetProfile(), msg.operator->()) )
+ // EditMessage takes ownership of the pointer
+ Composer *composer = EditMessage(mApplication->GetProfile(), msg);
+ if ( composer )
{
// ok!
nResumed++;
+ // mark the message as dirty to prevent the window from being
+ // closed without confirmation (thus loosing the message we
+ // had saved!)
+ composer->SetDirty();
+
continue;
}
}
}
+
+ // don't delete the file if we failed to restore the message!
+ folder->ResetFlags(MF_FLAGS_TEMPORARY);
}
_______________________________________________
Mahogany-cvsupdates mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates