From 20a1f87af20dc8a33c97b1d8015bb0e15d3e8260 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Sun, 20 Feb 2011 04:14:48 +0000 Subject: [PATCH] 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 --- src/servers/mail/DeskbarView.cpp | 31 +++++++++++++++++++++---------- src/servers/mail/DeskbarView.h | 1 + 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/servers/mail/DeskbarView.cpp b/src/servers/mail/DeskbarView.cpp index eb14123d77..2c4e2a404a 100644 --- a/src/servers/mail/DeskbarView.cpp +++ b/src/servers/mail/DeskbarView.cpp @@ -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); +} diff --git a/src/servers/mail/DeskbarView.h b/src/servers/mail/DeskbarView.h index 8c705727e4..0eecf3a0ef 100644 --- a/src/servers/mail/DeskbarView.h +++ b/src/servers/mail/DeskbarView.h @@ -54,6 +54,7 @@ private: void _CreateNewMailQuery(BEntry&); BPopUpMenu* _BuildMenu(); void _InitBitmaps(); + status_t _GetNewQueryRef(entry_ref& ref); BBitmap* fBitmaps[kStatusCount]; int32 fStatus;