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 + + 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 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 + + 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