[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenox/konq-embed
From: Stefan Eilers <stefan.eilers () basyskom ! de>
Date: 2008-06-04 11:41:40
Message-ID: 1212579700.813897.1639.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 816630 by eilers:
Add support for mailto protocol. It uses the Qtopia mail service
M +2 -0 ChangeLog
M +63 -0 src/view.cc
--- trunk/kdenox/konq-embed/ChangeLog #816629:816630
@@ -1,3 +1,5 @@
+2008-06-04 Stefan Eilers <stefan.eilers@basyskom.de>
+ * Add support for "mailto" that uses Qtopia mail service.
2008-06-02 Stefan Eilers <stefan.eilers@basyskom.de>
* Fix incorrect tab counting: When a tab was closed by javascript, the tabcount was not updated.
2008-05-27 Stefan Eilers <stefan.eilers@basyskom.de>
--- trunk/kdenox/konq-embed/src/view.cc #816629:816630
@@ -47,6 +47,62 @@
#include <kdebug.h>
+#if defined (_QT_QPE_)
+#include <qtopia/services.h>
+#endif
+
+namespace {
+ class MailToHandler
+ {
+ public:
+ static void send( const KURL& url )
+ {
+ QMap<QString,QString> parameters = parseURL( url );
+#if defined (_QT_QPE_)
+ ServiceRequest req( "Email", "writeMail(QMap(QString,QString))" );
+ req << parameters;
+ req.send();
+#else
+ qWarning( "Support of protocol \"mailto:\" not implemented!" );
+#endif
+ }
+
+ private:
+ static QMap<QString, QString> parseURL( const KURL& url )
+ {
+ QMap<QString,QString> parameters;
+ parameters["to"] = KURL::decode_string(url.path());
+
+ QStringList queries = QStringList::split('&', url.query().mid(1));
+ QStringList::Iterator it = queries.begin();
+ const QStringList::Iterator itEnd = queries.end();
+ for (; it != itEnd; ++it)
+ {
+ if ((*it).startsWith(QString::fromLatin1("subject="))){
+ parameters["subject"] = KURL::decode_string((*it).mid(8));
+ }
+ else if ((*it).startsWith(QString::fromLatin1("cc=")))
+ {
+ parameters["cc"] = KURL::decode_string((*it).mid(3));
+ }
+ else if ((*it).startsWith(QString::fromLatin1("bcc=")))
+ {
+ parameters["bcc"] = KURL::decode_string((*it).mid(4));
+ }
+ else if ((*it).startsWith(QString::fromLatin1("body=")))
+ {
+ parameters["body"] = KURL::decode_string((*it).mid(5));
+ }
+ }
+
+ return parameters;
+ }
+
+ };
+
+}
+
+
View::View( QObject *parent, const char *name, KParts::ReadOnlyPart *part )
: QObject( parent, name ), m_part( part)
{
@@ -393,6 +449,13 @@
stop();
+ if ( url.protocol() == "mailto" )
+ {
+ MailToHandler::send( url );
+ emit locationBarURLChanged( m_locationBarURL );
+ return;
+ }
+
m_run = new Run( this, url, args );
connect( m_run, SIGNAL( error() ),
this, SLOT( runError() ) );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic