aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2020-10-16 09:29:08 +0000
committerIngo Klöcker <[email protected]>2020-10-23 11:50:16 +0000
commitb21cabb311803677104fa98809bc88b21243f358 (patch)
treeb7978e0849c8ebe8cd7b4dee5224b3e9f96a64b8
parentcpp, qt: Add missing comparison operators for version info comparison (diff)
downloadgpgme-b21cabb311803677104fa98809bc88b21243f358.tar.gz
gpgme-b21cabb311803677104fa98809bc88b21243f358.zip
qt: Add QDebug stream operator for GpgME::Error
* lang/qt/src/Makefile.am: Add new files. * lang/qt/src/debug.h, lang/qt/src/debug.cpp: New. * NEWS: Mention it. -- This was previously implemented in Kleopatra, but it makes sense for all users of qgpgme.
-rw-r--r--NEWS3
-rw-r--r--lang/qt/src/Makefile.am6
-rw-r--r--lang/qt/src/debug.cpp48
-rw-r--r--lang/qt/src/debug.h46
4 files changed, 102 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index b4579b0c..830d206e 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@ Noteworthy changes in version 1.14.1 (unreleased)
* qt: Extended ChangeExpiryJob to support changing the expiry of
subkeys. [#4717]
+ * qt: Added QDebug stream operator for GpgME::Error.
+
* Interface changes relative to the 1.14.0 release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpgme_op_setexpire_start NEW.
@@ -18,6 +20,7 @@ Noteworthy changes in version 1.14.1 (unreleased)
cpp: EngineInfo::Version::operator<= NEW.
cpp: EngineInfo::Version::operator>= NEW.
cpp: EngineInfo::Version::operator!= NEW.
+ qt: operator<<(QDebug debug, const GpgME::Error &err) NEW.
Noteworthy changes in version 1.14.0 (2020-07-16)
diff --git a/lang/qt/src/Makefile.am b/lang/qt/src/Makefile.am
index 16a2094f..94e88f32 100644
--- a/lang/qt/src/Makefile.am
+++ b/lang/qt/src/Makefile.am
@@ -24,7 +24,9 @@ EXTRA_DIST = QGpgmeConfig.cmake.in.in QGpgmeConfigVersion.cmake.in \
QGpgmeConfig.cmake.in.in
qgpgme_sources = \
- dataprovider.cpp job.cpp multideletejob.cpp qgpgmeadduseridjob.cpp \
+ dataprovider.cpp \
+ debug.cpp \
+ job.cpp multideletejob.cpp qgpgmeadduseridjob.cpp \
qgpgmebackend.cpp qgpgmechangeexpiryjob.cpp qgpgmechangeownertrustjob.cpp \
qgpgmechangepasswdjob.cpp qgpgmedecryptjob.cpp \
qgpgmedecryptverifyjob.cpp qgpgmedeletejob.cpp qgpgmedownloadjob.cpp \
@@ -49,6 +51,7 @@ qgpgme_headers= \
changeownertrustjob.h \
changepasswdjob.h \
dataprovider.h \
+ debug.h \
decryptjob.h \
decryptverifyjob.h \
downloadjob.h \
@@ -89,6 +92,7 @@ camelcase_headers= \
ChangeOwnerTrustJob \
ChangePasswdJob \
DataProvider \
+ Debug \
DecryptJob \
DecryptVerifyJob \
DN \
diff --git a/lang/qt/src/debug.cpp b/lang/qt/src/debug.cpp
new file mode 100644
index 00000000..e4974ad9
--- /dev/null
+++ b/lang/qt/src/debug.cpp
@@ -0,0 +1,48 @@
+/*
+ debug.cpp
+
+ This file is part of qgpgme, the Qt API binding for gpgme
+ Copyright (c) 2020 g10 Code GmbH
+ Software engineering by Ingo Klöcker <[email protected]>
+
+ QGpgME is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ QGpgME 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
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ In addition, as a special exception, the copyright holders give
+ permission to link the code of this program with any edition of
+ the Qt library by Trolltech AS, Norway (or with modified versions
+ of Qt that use the same license as Qt), and distribute linked
+ combinations including the two. You must obey the GNU General
+ Public License in all respects for all of the code used other than
+ Qt. If you modify this file, you may extend this exception to
+ your version of the file, but you are not obligated to do so. If
+ you do not wish to do so, delete this exception statement from
+ your version.
+*/
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include "error.h"
+
+#include <QDebug>
+
+QDebug operator<<(QDebug debug, const GpgME::Error &err)
+{
+ const bool oldSetting = debug.autoInsertSpaces();
+ debug.nospace() << err.asString() << " (code: " << err.code() << ", source: " << err.source() << ")";
+ debug.setAutoInsertSpaces(oldSetting);
+ return debug.maybeSpace();
+}
diff --git a/lang/qt/src/debug.h b/lang/qt/src/debug.h
new file mode 100644
index 00000000..ba54766a
--- /dev/null
+++ b/lang/qt/src/debug.h
@@ -0,0 +1,46 @@
+/*
+ debug.h
+
+ This file is part of qgpgme, the Qt API binding for gpgme
+ Copyright (c) 2020 g10 Code GmbH
+ Software engineering by Ingo Klöcker <[email protected]>
+
+ QGpgME is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ QGpgME 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
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ In addition, as a special exception, the copyright holders give
+ permission to link the code of this program with any edition of
+ the Qt library by Trolltech AS, Norway (or with modified versions
+ of Qt that use the same license as Qt), and distribute linked
+ combinations including the two. You must obey the GNU General
+ Public License in all respects for all of the code used other than
+ Qt. If you modify this file, you may extend this exception to
+ your version of the file, but you are not obligated to do so. If
+ you do not wish to do so, delete this exception statement from
+ your version.
+*/
+
+#ifndef QGPGME_DEBUG_H
+#define QGPGME_DEBUG_H
+
+namespace GpgME
+{
+class Error;
+}
+
+class QDebug;
+
+QDebug operator<<(QDebug debug, const GpgME::Error &err);
+
+#endif // QGPGME_DEBUG_H