Author: czeidler Date: 2011-02-20 05:14:48 +0100 (Sun, 20 Feb 2011) New Revision: 40571 Changeset: http://dev.haiku-os.org/changeset/40571 Modified: haiku/trunk/src/servers/mail/DeskbarView.cpp haiku/trunk/src/servers/mail/DeskbarView.h Log: 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. Modified: haiku/trunk/src/servers/mail/DeskbarView.cpp =================================================================== --- haiku/trunk/src/servers/mail/DeskbarView.cpp 2011-02-20 03:54:28 UTC (rev 40570) +++ haiku/trunk/src/servers/mail/DeskbarView.cpp 2011-02-20 04:14:48 UTC (rev 40571) @@ -359,9 +359,13 @@ 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,14 +539,8 @@ << (fNewMessages != 1 ? "s" : B_EMPTY_STRING), string << fNewMessages << " 通の未読メッセージ"); - find_directory(B_USER_SETTINGS_DIRECTORY, &path); - path.Append("Mail/New E-mail"); + _GetNewQueryRef(ref); - BEntry query(path.Path()); - if (!query.Exists()) - _CreateNewMailQuery(query); - query.GetRef(&ref); - item = new BMenuItem(navMenu = new BNavMenu(string.String(), B_REFS_RECEIVED, BMessenger(kTrackerSignature)), msg = new BMessage(B_REFS_RECEIVED)); @@ -619,3 +617,16 @@ } 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); +} Modified: haiku/trunk/src/servers/mail/DeskbarView.h =================================================================== --- haiku/trunk/src/servers/mail/DeskbarView.h 2011-02-20 03:54:28 UTC (rev 40570) +++ haiku/trunk/src/servers/mail/DeskbarView.h 2011-02-20 04:14:48 UTC (rev 40571) @@ -54,6 +54,7 @@ void _CreateNewMailQuery(BEntry&); BPopUpMenu* _BuildMenu(); void _InitBitmaps(); + status_t _GetNewQueryRef(entry_ref& ref); BBitmap* fBitmaps[kStatusCount]; int32 fStatus;