* Hide() was called too early, and wasn't reverted in case the mail couldn't
be encoded, either. This fixes bug #4613. * Ideally, the mail would automatically be changed to an encoding that can express all characters silently. Added a TODO comment for this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33936 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
ea0ba618c5
commit
93e60b1a4f
|
@ -2194,10 +2194,6 @@ TMailWindow::Send(bool now)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hide();
|
|
||||||
// depending on the system (and I/O) load, this could take a while
|
|
||||||
// but the user shouldn't be left waiting
|
|
||||||
|
|
||||||
if (fHeaderView != NULL)
|
if (fHeaderView != NULL)
|
||||||
characterSetToUse = fHeaderView->fCharacterSetUserSees;
|
characterSetToUse = fHeaderView->fCharacterSetUserSees;
|
||||||
|
|
||||||
|
@ -2245,17 +2241,20 @@ TMailWindow::Send(bool now)
|
||||||
// Check for any characters which don't fit in a 7 bit encoding.
|
// Check for any characters which don't fit in a 7 bit encoding.
|
||||||
int i;
|
int i;
|
||||||
bool has8Bit = false;
|
bool has8Bit = false;
|
||||||
for (i = 0; i < tempStringLength; i++)
|
for (i = 0; i < tempStringLength; i++) {
|
||||||
if (tempString[i] == 0 || (tempString[i] & 0x80)) {
|
if (tempString[i] == 0 || (tempString[i] & 0x80)) {
|
||||||
has8Bit = true;
|
has8Bit = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!has8Bit)
|
if (!has8Bit)
|
||||||
encodingForBody = seven_bit;
|
encodingForBody = seven_bit;
|
||||||
tempString.UnlockBuffer (tempStringLength);
|
tempString.UnlockBuffer (tempStringLength);
|
||||||
|
|
||||||
// Count up the number of unencoded characters and warn the user about them.
|
// Count up the number of unencoded characters and warn the user about them.
|
||||||
if (fApp->WarnAboutUnencodableCharacters()) {
|
if (fApp->WarnAboutUnencodableCharacters()) {
|
||||||
|
// TODO: ideally, the encoding should be silently changed to
|
||||||
|
// one that can express this character
|
||||||
int32 offset = 0;
|
int32 offset = 0;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
while (offset >= 0) {
|
while (offset >= 0) {
|
||||||
|
@ -2283,18 +2282,24 @@ TMailWindow::Send(bool now)
|
||||||
"その場合、代用文字がUnicode化可能な文字に代わって使われます。"
|
"その場合、代用文字がUnicode化可能な文字に代わって使われます。"
|
||||||
"文字セットを変更する場合は「中止」ボタンを押して下さい。"
|
"文字セットを変更する場合は「中止」ボタンを押して下さい。"
|
||||||
);
|
);
|
||||||
userAnswer = (new BAlert ("Question", messageString.String(),
|
userAnswer = (new BAlert("Question", messageString.String(),
|
||||||
MDR_DIALECT_CHOICE ("Send","送信"),
|
MDR_DIALECT_CHOICE ("Send","送信"),
|
||||||
MDR_DIALECT_CHOICE ("Cancel","中止"), // Default is cancel.
|
MDR_DIALECT_CHOICE ("Cancel","中止"),
|
||||||
NULL, B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_WARNING_ALERT))
|
NULL, B_WIDTH_AS_USUAL, B_OFFSET_SPACING,
|
||||||
->Go();
|
B_WARNING_ALERT))->Go();
|
||||||
if (userAnswer == 1)
|
if (userAnswer == 1) {
|
||||||
return -1; // Cancel was picked.
|
// Cancel was picked.
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Hide();
|
||||||
|
// depending on the system (and I/O) load, this could take a while
|
||||||
|
// but the user shouldn't be left waiting
|
||||||
|
|
||||||
status_t result;
|
status_t result;
|
||||||
|
|
||||||
if (fResending) {
|
if (fResending) {
|
||||||
|
@ -2394,7 +2399,7 @@ TMailWindow::Send(bool now)
|
||||||
char errorMessage[256];
|
char errorMessage[256];
|
||||||
|
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case B_NO_ERROR:
|
case B_OK:
|
||||||
close = true;
|
close = true;
|
||||||
fSent = true;
|
fSent = true;
|
||||||
|
|
||||||
|
@ -2452,6 +2457,10 @@ TMailWindow::Send(bool now)
|
||||||
}
|
}
|
||||||
if (close)
|
if (close)
|
||||||
PostMessage(B_QUIT_REQUESTED);
|
PostMessage(B_QUIT_REQUESTED);
|
||||||
|
else {
|
||||||
|
// The window was hidden earlier
|
||||||
|
Show();
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue