[haiku-commits] r40571 - haiku/trunk/src/servers/mail

  • From: clemens.zeidler@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 20 Feb 2011 05:14:48 +0100 (CET)

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;


Other related posts: