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