summaryrefslogtreecommitdiffstats
path: root/src/email_portal.cpp
diff options
context:
space:
mode:
authorMavridis Philippe <[email protected]>2024-07-08 01:04:09 +0300
committerMavridis Philippe <[email protected]>2024-07-08 01:05:01 +0300
commit87769ed51d8087ddc4a02705f39fe4f21431b66f (patch)
treecf3d12a293a24868641d8c086206da87e3c57ed3 /src/email_portal.cpp
parentc7b0c7b88c1bebb038bd70f4995fc35771fa83c0 (diff)
downloadxdg-desktop-portal-tde-87769ed51d8087ddc4a02705f39fe4f21431b66f.tar.gz
xdg-desktop-portal-tde-87769ed51d8087ddc4a02705f39fe4f21431b66f.zip
Added Email interface, minor refactoring
Signed-off-by: Mavridis Philippe <[email protected]>
Diffstat (limited to 'src/email_portal.cpp')
-rw-r--r--src/email_portal.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/email_portal.cpp b/src/email_portal.cpp
new file mode 100644
index 0000000..d12ba50
--- /dev/null
+++ b/src/email_portal.cpp
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ XDG desktop portal implementation for TDE
+ Copyright © 2024 Mavridis Philippe <[email protected]>
+
+ This program or library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the License,
+ or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Improvements and feedback are welcome!
+*******************************************************************************/
+
+// TDE
+#include <tdeapplication.h>
+
+// Portal
+#include "email_portal.h"
+#include "email_portal.moc"
+
+TDEEmailPortal::TDEEmailPortal(TQT_DBusConnection &connection)
+: m_connection(connection)
+{
+}
+
+TDEEmailPortal::~TDEEmailPortal()
+{
+}
+
+void TDEEmailPortal::handleMethodReply(const TQT_DBusMessage &reply)
+{
+ m_connection.send(reply);
+}
+
+bool TDEEmailPortal::handleSignalSend(const TQT_DBusMessage& reply) {
+ handleMethodReply(reply);
+ return true;
+}
+
+bool TDEEmailPortal::ComposeEmail(const TQT_DBusObjectPath& handle,
+ const TQString& app_id,
+ const TQString& parent_window,
+ const TQT_DBusVariantMap& options,
+ TQ_UINT32& response,
+ TQT_DBusVariantMap &results,
+ TQT_DBusError& error)
+{
+ // void invokeMailer (const TQString &to, const TQString &cc, const TQString &bcc, const TQString &subject, const TQString &body, const TQString &messageFile=TQString::null, const TQStringList &attachURLs=TQStringList())
+ EmailOpts opts;
+ if (OPTION_VALID("address", "s"))
+ opts.rcpt << options["address"].value.toString();
+
+ if (OPTION_VALID("addresses", "as"))
+ opts.rcpt += options["addresses"].value.toList().toTQStringList();
+
+ if (OPTION_VALID("cc", "as"))
+ opts.cc += options["cc"].value.toList().toTQStringList();
+
+ if (OPTION_VALID("bcc", "as"))
+ opts.bcc += options["bcc"].value.toList().toTQStringList();
+
+ if (OPTION_VALID("subject", "s"))
+ opts.subj = options["subject"].value.toString();
+
+ if (OPTION_VALID("body", "s"))
+ opts.body = options["body"].value.toString();
+
+ if (OPTION_VALID("attachments", "as"))
+ {
+ opts.attach += options["attachments"].value.toList().toTQStringList();
+ }
+
+ kapp->invokeMailer(opts.rcpt.join(";"), opts.cc.join(";"), opts.bcc.join(";"),
+ opts.subj, opts.body, TQString::null, opts.attach);
+ return true;
+}
+
+// kate: replace-tabs true; tab-width 4; indent-width 4; \ No newline at end of file