* Added shortcut "command-shift-q" that, analogously to "command-shift-w", quits
the app, and keeps the status of all open mails untouched. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26114 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -121,6 +121,8 @@ static const char *kSpamMenuItemTextArray[] = {
|
|||||||
"Mark as Genuine" // M_TRAIN_GENUINE
|
"Mark as Genuine" // M_TRAIN_GENUINE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const uint32 kMsgQuitAndKeepAllStatus = 'Casm';
|
||||||
|
|
||||||
static const char *kQueriesDirectory = "mail/queries";
|
static const char *kQueriesDirectory = "mail/queries";
|
||||||
static const char *kAttrQueryInitialMode = "_trk/qryinitmode"; // taken from src/kits/tracker/Attributes.h
|
static const char *kAttrQueryInitialMode = "_trk/qryinitmode"; // taken from src/kits/tracker/Attributes.h
|
||||||
static const char *kAttrQueryInitialString = "_trk/qryinitstr";
|
static const char *kAttrQueryInitialString = "_trk/qryinitstr";
|
||||||
@@ -136,6 +138,8 @@ static const uint32 kByForumlaItem = 'Fbyq'; // taken from src/kits/tracker/Find
|
|||||||
BList TMailWindow::sWindowList;
|
BList TMailWindow::sWindowList;
|
||||||
BLocker TMailWindow::sWindowListLock;
|
BLocker TMailWindow::sWindowListLock;
|
||||||
|
|
||||||
|
static bool sKeepStatusOnQuit;
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
@@ -572,6 +576,8 @@ TMailWindow::TMailWindow(BRect rect, const char* title, TMailApp* app,
|
|||||||
SetTitleForMessage();
|
SetTitleForMessage();
|
||||||
|
|
||||||
_UpdateSizeLimits();
|
_UpdateSizeLimits();
|
||||||
|
|
||||||
|
AddShortcut('q', B_SHIFT_KEY, new BMessage(kMsgQuitAndKeepAllStatus));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1137,30 +1143,31 @@ TMailWindow::MessageReceived(BMessage *msg)
|
|||||||
}
|
}
|
||||||
case M_CLOSE_SAVED:
|
case M_CLOSE_SAVED:
|
||||||
{
|
{
|
||||||
BMessage message(B_CLOSE_REQUESTED);
|
BMessage message(B_QUIT_REQUESTED);
|
||||||
message.AddString("status", "Saved");
|
message.AddString("status", "Saved");
|
||||||
PostMessage(&message);
|
PostMessage(&message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case kMsgQuitAndKeepAllStatus:
|
||||||
|
sKeepStatusOnQuit = true;
|
||||||
|
be_app->PostMessage(B_QUIT_REQUESTED);
|
||||||
|
break;
|
||||||
case M_CLOSE_SAME:
|
case M_CLOSE_SAME:
|
||||||
{
|
{
|
||||||
BMessage message(B_CLOSE_REQUESTED);
|
BMessage message(B_QUIT_REQUESTED);
|
||||||
message.AddString("status", "");
|
message.AddString("status", "");
|
||||||
message.AddString("same", "");
|
message.AddString("same", "");
|
||||||
PostMessage(&message);
|
PostMessage(&message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case M_CLOSE_CUSTOM:
|
case M_CLOSE_CUSTOM:
|
||||||
if (msg->HasString("status"))
|
if (msg->HasString("status")) {
|
||||||
{
|
|
||||||
const char *str;
|
const char *str;
|
||||||
msg->FindString("status", (const char**) &str);
|
msg->FindString("status", (const char**) &str);
|
||||||
BMessage message(B_CLOSE_REQUESTED);
|
BMessage message(B_CLOSE_REQUESTED);
|
||||||
message.AddString("status", str);
|
message.AddString("status", str);
|
||||||
PostMessage(&message);
|
PostMessage(&message);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
BRect r = Frame();
|
BRect r = Frame();
|
||||||
r.left += ((r.Width() - STATUS_WIDTH) / 2);
|
r.left += ((r.Width() - STATUS_WIDTH) / 2);
|
||||||
r.right = r.left + STATUS_WIDTH;
|
r.right = r.left + STATUS_WIDTH;
|
||||||
@@ -1654,7 +1661,7 @@ TMailWindow::QuitRequested()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (fRef) {
|
} else if (fRef && !sKeepStatusOnQuit) {
|
||||||
// ...Otherwise just set the message read
|
// ...Otherwise just set the message read
|
||||||
SetCurrentMessageRead();
|
SetCurrentMessageRead();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user