Update of /cvsroot/mahogany/M/src/classes
In directory usw-pr-cvs1:/tmp/cvs-serv21789/src/classes

Modified Files:
        MessageView.cpp 
Log Message:
added popup menu for mail addresses in the message view

Index: MessageView.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/classes/MessageView.cpp,v
retrieving revision 1.85
retrieving revision 1.86
diff -b -u -2 -r1.85 -r1.86
--- MessageView.cpp     25 Apr 2002 18:52:43 -0000      1.85
+++ MessageView.cpp     26 Apr 2002 23:28:09 -0000      1.86
@@ -594,4 +594,12 @@
 }
 
+String MessageView::GetFolderName() const
+{
+   CHECK( m_mailMessage->GetFolder(), "unknown",
+          "no folder in MessageView?" );
+
+   return m_mailMessage->GetFolder()->GetName();
+}
+
 void
 MessageView::Clear()
@@ -2410,6 +2418,8 @@
 // ----------------------------------------------------------------------------
 
-void MessageView::OpenURL(const String& url, bool inNewWindow)
+void MessageView::OpenURL(const String& url, int options)
 {
+   bool inNewWindow = (options & URLOpen_New_Window) != 0;
+
    wxFrame *frame = GetParentFrame();
    wxLogStatus(frame, _("Opening URL '%s'..."), url.c_str());
@@ -2553,4 +2563,23 @@
 }
 
+void MessageView::OpenAddress(const String& address)
+{
+   Composer *cv = Composer::CreateNewMessage(GetProfile());
+
+   cv->SetAddresses(address);
+   cv->InitText();
+}
+
+void MessageView::AddToAddressBook(const String& address)
+{
+   wxArrayString addresses;
+   addresses.Add(address);
+
+   InteractivelyCollectAddresses(addresses,
+                                 READ_APPCONFIG(MP_AUTOCOLLECT_ADB),
+                                 GetFolderName(),
+                                 GetParentFrame());
+}
+
 // ----------------------------------------------------------------------------
 // MessageView menu command processing
@@ -2674,31 +2703,29 @@
          // treat mail urls separately: we handle them ourselves
          wxString protocol = url.BeforeFirst(':');
-         if ( protocol == url )
-         {
-            protocol.clear();
-         }
 
-         if ( protocol == "mailto" ||
-               (protocol.empty() && url.find('@') != String::npos) )
+         bool isMail = protocol == "mailto";
+         if ( isMail )
          {
-            Composer *cv = Composer::CreateNewMessage(GetProfile());
-
-            String address = url;
-            if ( !protocol.empty() )
+            // leave only the mail address
+            url.erase(0, 7); // 7 == strlen("mailto:";)
+         }
+         else if ( protocol == url && url.find('@') != String::npos )
             {
-               address.erase(0, 7); // 7 == strlen("mailto:";)
+            // a bare mail address
+            isMail = true;
             }
 
-            cv->SetAddresses(address);
-            cv->InitText();
-         }
-         else // not mailto URL
-         {
             if ( id == WXMENU_LAYOUT_RCLICK )
             {
-               PopupURLMenu(GetWindow(), url, pt);
+            PopupURLMenu(GetWindow(), url, pt, isMail ? URL_Mailto : URL_Other);
             }
             else // left or double click
             {
+            if ( isMail )
+            {
+               OpenAddress(url);
+            }
+            else // non mailto URL
+            {
                OpenURL(url, m_ProfileValues.browserInNewWindow);
             }
@@ -2888,12 +2915,9 @@
       if ( m_ProfileValues.autocollect )
       {
-         String folderName = m_mailMessage->GetFolder() ?
-            m_mailMessage->GetFolder()->GetName() : String(_("unknown"));
-
          AutoCollectAddresses(m_mailMessage,
                               m_ProfileValues.autocollect,
                               m_ProfileValues.autocollectNamed != 0,
                               m_ProfileValues.autocollectBookName,
-                              folderName,
+                              GetFolderName(),
                               GetParentFrame());
       }


_______________________________________________
Mahogany-cvsupdates mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates

Reply via email to