Open the new query window when clicking the deskbar mail icon. The mails/in folder is not a valid folder in any case and if you have a lot of mails it takes for ever to display all mail in tracker.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40571 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Clemens Zeidler 2011-02-20 04:14:48 +00:00
parent 7ab6cb9ac5
commit 20a1f87af2
2 changed files with 22 additions and 10 deletions

View File

@ -359,9 +359,13 @@ void
DeskbarView::MouseUp(BPoint pos)
{
if (fLastButtons & B_PRIMARY_MOUSE_BUTTON) {
if (OpenWithTracker(B_USER_SETTINGS_DIRECTORY, "Mail/mailbox") != B_OK
&& OpenWithTracker(B_USER_DIRECTORY, "mail/in") != B_OK)
OpenWithTracker(B_USER_DIRECTORY, "mail");
entry_ref ref;
_GetNewQueryRef(ref);
BMessenger trackerMessenger(kTrackerSignature);
BMessage message(B_REFS_RECEIVED);
message.AddRef("refs", &ref);
trackerMessenger.SendMessage(&message);
}
if (fLastButtons & B_TERTIARY_MOUSE_BUTTON)
@ -535,13 +539,7 @@ DeskbarView::_BuildMenu()
<< (fNewMessages != 1 ? "s" : B_EMPTY_STRING),
string << fNewMessages << " 通の未読メッセージ");
find_directory(B_USER_SETTINGS_DIRECTORY, &path);
path.Append("Mail/New E-mail");
BEntry query(path.Path());
if (!query.Exists())
_CreateNewMailQuery(query);
query.GetRef(&ref);
_GetNewQueryRef(ref);
item = new BMenuItem(navMenu = new BNavMenu(string.String(),
B_REFS_RECEIVED, BMessenger(kTrackerSignature)),
@ -619,3 +617,16 @@ DeskbarView::_BuildMenu()
}
return menu;
}
status_t
DeskbarView::_GetNewQueryRef(entry_ref& ref)
{
BPath path;
find_directory(B_USER_SETTINGS_DIRECTORY, &path);
path.Append("Mail/New E-mail");
BEntry query(path.Path());
if (!query.Exists())
_CreateNewMailQuery(query);
return query.GetRef(&ref);
}

View File

@ -54,6 +54,7 @@ private:
void _CreateNewMailQuery(BEntry&);
BPopUpMenu* _BuildMenu();
void _InitBitmaps();
status_t _GetNewQueryRef(entry_ref& ref);
BBitmap* fBitmaps[kStatusCount];
int32 fStatus;