2025-06-03  Werner Koch  <wk@gnupg.org>

	Release 2.0.0.
	+ commit 2e002d8024b9625ca4bd2cb0f1777835e2e5fcd2


	Fix for the sign-release make target.
	+ commit 4eed625f2c92920f25704dabd50b85f10b9c8ed4
	* cmake/modules/g10_sign-release.sh.in: Allow signing of xz files.

	Add a missing include.
	+ commit 6fd0726ad8ce270a9773f85212de24cf0a29829f
	* src/job.h: Include <memory>

2025-06-03  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Add option CONFIGURE_FOR_DISTRIBUTION.
	+ commit e598181d462a73f3e0d33fd16a5224880b56d3f6
	* CMakeLists.txt: Add option CONFIGURE_FOR_DISTRIBUTION. Set
	LibGpgError and Gpgme as required if option CONFIGURE_FOR_DISTRIBUTION
	is not set. Add src (and tests) only if required dependencies were
	found.

	build: Fix logic for appending "-unknown" to version number.
	+ commit e44510289a7e694ed8a911e3306fad10cca73e92
	* cmake/modules/G10GetFullVersion.cmake (G10_GET_FULL_VERSION): Use
	DEFINED to check if output variable is set.

2025-05-27  Ingo Klöcker  <dev@ingo-kloecker.de>

	On Windows, use gpgme_off_t and gpgme_ssize_t in the API.
	+ commit d0aa23a7a3842cabccd03ba78ef233a56d1246f1
	* src/dataprovider.cpp (QByteArrayDataProvider::read,
	QByteArrayDataProvider::write, QByteArrayDataProvider::seek,
	QIODeviceDataProvider::read, QIODeviceDataProvider::write,
	QIODeviceDataProvider::seek): Use gpgme_off_t and gpgme_ssize_t
	instead of off_t and ssize_t everywhere.
	* src/dataprovider.h (QByteArrayDataProvider::read,
	QByteArrayDataProvider::write, QByteArrayDataProvider::seek,
	QIODeviceDataProvider::read, QIODeviceDataProvider::write,
	QIODeviceDataProvider::seek): On Windows, use gpgme_off_t and
	gpgme_ssize_t in the API.
	(class QByteArrayDataProvider): On Windows, change data type of mOff to
	gpgme_off_t.
	* src/filelistdataprovider.cpp (FileListDataProvider::read,
	FileListDataProvider::write, FileListDataProvider::seek): Use
	gpgme_off_t and gpgme_ssize_t instead of off_t and ssize_t everywhere.
	* src/filelistdataprovider.h (FileListDataProvider::read,
	FileListDataProvider::write, FileListDataProvider::seek): On Windows,
	use gpgme_off_t and gpgme_ssize_t in the API.

2025-05-26  Ingo Klöcker  <dev@ingo-kloecker.de>

	Sort includes and macro invocations alphabetically.
	+ commit 7e8932469e1d08f3919c66fde934cab0f083d1ee
	* src/job.cpp: Sort includes of job classes, invocations of
	make_job_subclass and includes of moc files alphabetically.

	Add d-pointer to Job class.
	+ commit 056567525fb9aa13c13788fec7ef20ec16cffc5f
	* src/CMakeLists.txt (qgpgme_PRIVATE_HEADERS): Add abstractimportjob_p.
	* src/job.h (class Job): Add constructor. Add member d_ptr. Add member
	functions d_func.
	* src/job.cpp (typedef JobPrivateHash, d_func, setJobPrivate,
	getJobPrivate): Remove.
	(Job::Job): Add new constructor. Use new constructor as delegated
	constructor for existing constructor.
	(Job::~Job): Use default.
	(Job::startIt, Job::startNow): Use Q_D macro instead of getJobPrivate.
	(make_job_subclass_ext): Remove.
	(make_job_subclass): Adapt to removal of make_job_subclass_ext.
	* src/job_p.h (class JobPrivate): Add member functions q_func. Add
	default constructor. Use destructor destructor. Add member q_ptr.
	(setJobPrivate, getJobPrivate, jobPrivate): Remove.
	* src/threadedjobmixin.h (template class ThreadedJobMixin): Add
	template parameter T_private. Add new parameter to typedef mixin_type.
	Add alternative constructor.
	* src/abstractimportjob.cpp, src/abstractimportjob.h
	(class AbstractImportJob): Add constructor overload.
	* src/abstractimportjob_p.h: New.
	* src/changeexpiryjob.cpp, src/decryptverifyarchivejob.cpp,
	src/decryptverifyjob.cpp, src/encryptarchivejob.cpp, src/encryptjob.cpp,
	src/importjob.cpp, src/listallkeysjob.cpp, src/quickjob.cpp,
	src/signarchivejob.cpp, src/signencryptarchivejob.cpp,
	src/signencryptjob.cpp, src/signjob.cpp, src/verifydetachedjob.cpp,
	src/verifyopaquejob.cpp, src/wkdrefreshjob.cpp: Add private pointer
	argument to *Job constructor. Use Q_D macro instead of jobPrivate in
	all setters and getters.
	* src/changeexpiryjob.h, src/decryptverifyarchivejob.h,
	src/decryptverifyjob.h, src/encryptarchivejob.h, src/encryptjob.h,
	src/importjob.h, src/listallkeysjob.h, src/quickjob.h,
	src/signarchivejob.h, src/signencryptarchivejob.h, src/signencryptjob.h,
	src/signjob.h, src/verifydetachedjob.h, src/verifyopaquejob.h,
	src/wkdrefreshjob.h: Forward-declare *JobPrivate class. Add private
	pointer argument to *Job constructor. Use macro for defining d_func()
	member functions.
	* src/changeexpiryjob_p.h, src/decryptverifyarchivejob_p.h,
	src/decryptverifyjob_p.h, src/encryptarchivejob_p.h, src/encryptjob_p.h,
	src/listallkeysjob_p.h, src/quickjob_p.h, src/signarchivejob_p.h,
	src/signencryptarchivejob_p.h, src/signencryptjob_p.h, src/signjob_p.h,
	src/verifydetachedjob_p.h, src/verifyopaquejob_p.h: Change *JobPrivate
	struct to class.
	* src/importjob_p.h, src/wkdrefreshjob_p.h: Change *JobPrivate struct to
	class and derive from AbstractImportJobPrivate.
	* src/qgpgmechangeexpiryjob.cpp, src/qgpgmedecryptverifyarchivejob.cpp,
	src/qgpgmedecryptverifyjob.cpp, src/qgpgmeencryptarchivejob.cpp,
	src/qgpgmeencryptjob.cpp, src/qgpgmeimportjob.cpp,
	src/qgpgmelistallkeysjob.cpp, src/qgpgmequickjob.cpp,
	src/qgpgmesignarchivejob.cpp, src/qgpgmesignencryptarchivejob.cpp,
	src/qgpgmesignencryptjob.cpp, src/qgpgmesignjob.cpp,
	src/qgpgmeverifydetachedjob.cpp, src/qgpgmeverifyopaquejob.cpp,
	src/qgpgmewkdrefreshjob.cpp: (class QGpgME*JobPrivate): Remove member q.
	Use macro for defining q_func() member functions. Replace constructor
	with default. Use Q_Q in functions that need q.
	(class QGpgME*Job): Remove setJobPrivate calls from the constructors.
	* src/qgpgmechangeexpiryjob.h, src/qgpgmedecryptverifyarchivejob.h,
	src/qgpgmedecryptverifyjob.h, src/qgpgmeencryptarchivejob.h,
	src/qgpgmeencryptjob.h, src/qgpgmeimportjob.h,
	src/qgpgmelistallkeysjob.h, src/qgpgmequickjob.h,
	src/qgpgmesignarchivejob.h, src/qgpgmesignencryptarchivejob.h,
	src/qgpgmesignencryptjob.h, src/qgpgmesignjob.h,
	src/qgpgmeverifydetachedjob.h, src/qgpgmeverifyopaquejob.h,
	src/qgpgmewkdrefreshjob.h: Forward-declare QGpgME*JobPrivate class.
	(class QGpgME*Job): Specify private class as private class template
	argument of the base template class. Use macro for defining d_func()
	member functions.
	* src/qgpgmedecryptjob.h, src/qgpgmedownloadjob.h,
	src/qgpgmeexportjob.h, src/qgpgmegpgcardjob.h,
	src/qgpgmeimportfromkeyserverjob.h, src/qgpgmekeyformailboxjob.h,
	src/qgpgmekeygenerationjob.h, src/qgpgmekeylistjob.h,
	src/qgpgmereceivekeysjob.h, src/qgpgmetofupolicyjob.h,
	src/qgpgmewkdlookupjob.h, src/qgpgmewkspublishjob.h (class QGpgME*Job):
	Specify void as private class template argument of the base template
	class.

2025-05-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	Explicitly define constructor and destructor of some Job classes.
	+ commit 433e40765dfc29ee1cf500f90d6925dbbdd36213
	* src/abstractimportjob.cpp: New.
	* src/changeexpiryjob.cpp (ChangeExpiryJob::ChangeExpiryJob,
	ChangeExpiryJob::~ChangeExpiryJob): New.
	* src/importfromkeyserverjob.cpp: New.
	* src/importjob.cpp (ImportJob::ImportJob, ImportJob::~ImportJob): New.
	* src/listallkeysjob.cpp (ListAllKeysJob::ListAllKeysJob,
	ListAllKeysJob::~ListAllKeysJob): New.
	* src/receivekeysjob.cpp: New.
	* src/job.cpp: Remove make_job_subclass(_ext) macros for above Job
	classes.

2025-05-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	Remove long obsolete feature checks.
	+ commit 1a063ce9332ee82aa7ef6aa99340e3d2473b8bac
	* src/protocol_p.h (Protocol::changePasswdJob): Remove check for
	PasswdFeature feature.
	* src/qgpgmebackend.cpp (QGpgMEBackend::config): Remove check for
	GpgConfEngineFeature feature.

	Modernize interface of QuickJob::startCreate and ::startAddSubkey.
	+ commit 3032aee35248517caa5030e3d55f5891c00a5d50
	* src/quickjob.h (QuickJob::startCreate, QuickJob::startAddSubkey): Add
	overload. Deprecate old overload and make it non-virtual.
	* src/quickjob_p.h (class QuickJobPrivate): Add pure virtual methods
	startCreate and startAddSubkey.
	* src/quickjob.cpp (QuickJob::startCreate, QuickJob::startAddSubkey):
	New.
	* src/qgpgmequickjob.h, src/qgpgmequickjob.cpp
	(QGpgMEQuickJob::startCreate, QGpgMEQuickJob::startAddSubkey): Remove.
	* src/qgpgmequickjob.cpp (QGpgMEQuickJobPrivate::startCreate,
	QGpgMEQuickJobPrivate::startAddSubkey): New.
	(createWorker): Change type of algo argument and of flags argument.
	Remove key argument. Call the new Context::createKey overload.
	(addSubkeyWorker): Change type of algo argument and of flags argument.
	Call the new Context::createSubkey overload.

2025-05-12  Carl Schwan  <carl@carlschwan.eu>

	encryptionjob: Propagate encryption flags.
	+ commit 3354f537e45963881e2538bb59e5034de1514e39
	* src/qgpgmeencryptjob.cpp,src/qgpgmesignencryptjob.cpp: propagate flag

2025-05-06  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Append the linker search paths to the RPATH for installed targets
	+ commit ecce330a06e9becf5e98b914335b9e38236a3398
	* cmake/modules/G10CMakeSettings.cmake: For Unix systems, enable
	CMAKE_INSTALL_RPATH_USE_LINK_PATH.

2025-04-02  Ingo Klöcker  <dev@ingo-kloecker.de>

	Modernize code.
	+ commit 11f563824297c8db6f4d4a4a35c234bdb106abbe
	* src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfig::sync): Use
	std::as_const instead of deprecated qAsConst.

	Make t-dn also work for Qt 5.
	+ commit 257ee42037c4ef6b6118f3ad64367e565da2f5fe
	* src/CMakeLists.txt (qgpgme_PRIVATE_HEADERS): Add qt6compat_p.h for
	Qt 5 builds.
	* src/dn.h: Explicitly declare metatype for DN::Attribute.
	* src/qt6compat_p.h: New. Copied from kleopatra (gpg4win/24.05).

	* tests/CMakeLists.txt: Build t-dn test also for Qt 5.
	* tests/t-dn.cpp (operator==): Put the operator in the QGpgME namespace
	to fix Qt 5 build.

	Code cleanup/beautification for the DN parser.
	+ commit 903dd5588c7b47cc8940c5b939a97742de406304
	* src/dn.cpp: Add missing includes. Use std::literals namespace.
	(removeLeadingSpaces, removeTrailingSpaces): Use npos to check result of
	find_first_not_of/find_last_not_of.
	(parseHexString): Constify size variable. Replace const char * literal
	with string_view literal. Use size instead of view.size() in end
	condition of for-loop.
	(attributeNameForOID): Replace string_view constructed from const char *
	literals with string_view literals.
	(parse_dn_part): Replace const char * literal with string_view literal.
	Remove validation of hexstring which is already done by parseHexString.
	Use string_view::remove_prefix instead of string_view::substr.
	(parse_dn): Constify parsed variable.

2025-04-02  Sune Vuorela  <sune@vuorela.dk>

	Improve distinguished name parser.
	+ commit 2473ad9fcafd957627f84cf59a830defdf9b17b6
	* src/dn.cpp (struct NameAndOID): Remove.
	(oidmap): Replace static vector with function returning the vector.
	(attributeNameForOID): Support OIDs prefixed with "OID." or "oid.".
	(struct DnPair, digitp, hexdigitp, xtoi_1, xtoi_2,
	trim_trailing_spaces): Remove.
	(removeLeadingSpaces, removeTrailingSpaces, xtoi, parseHexString): New.
	(parse_dn_part): Rewrite. Add support for values in double quotes.
	Improve error handling.
	(parse_dn(const unsigned char*)): Rename to...
	(parseString): ...this. Work on std::string_view instead of
	const char *. Change return type.
	(parse_dn(const QString &)): Work on std::string_view instead of
	QString. Change return type.
	(DN::DN(const QString &), DN::DN(const char *)): Pass std::string_view
	to parse_dn.

	* tests/CMakeLists.txt: Add new test.
	* tests/t-dn.cpp: New.

2025-03-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	Add function returning the ordered list of attributes of a DN.
	+ commit b1192dba859bde5ffba7ea21c4ecdbe7f8267277
	* src/dn.cpp (listAttributes): New.
	(serialise): Use listAttributes.
	* src/dn.cpp, src/dn.h (class DN): Add member function prettyAttributes.

2025-02-26  Ingo Klöcker  <dev@ingo-kloecker.de>

	Fix deprecation warning with Qt 6.
	+ commit c1a944a4536efc1132fad515e46b363100a9c8dc
	* src/qgpgmeaddexistingsubkeyjob.cpp (add_subkey): Use not deprecated
	overload of QDateTime::fromSecsSinceEpoch for the Qt 6 build.

	build: Require same major/minor version of gpgme as version of qgpgme.
	+ commit e493794be669883c69fa3cc29de5330c1bfd40a3
	* CMakeLists.txt: Set GPGME_REQUIRED_VERSION to
	VERSION_MAJOR.VERSION_MINOR.0.

2025-01-29  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Fix usage of renamed options to build with Qt 5/6.
	+ commit 4f2578a01da582987ce47a2df0ad3984122136bc
	* CMakeLists.txt: Check for BUILD_WITH_QT[56].

	build: Run chmod instead of using cmake's file CHMOD command.
	+ commit c47d157f46525f7330bbccb41a425c7ffb31717c
	* cmake/modules/G10AddDistTargets.cmake,
	cmake/modules/G10AddReleaseTargets.cmake,
	cmake/modules/G10GitHooks.cmake: Replace file(CHMOD ...) with
	execute_process(COMMAND chmod +x ...).

	doc: Update build instructions and some other documentation.
	+ commit a5a43afa2cbea66ce024e8e7d672a4a633643044
	* INSTALL: Remove.
	* INSTALL.md: New.
	* README: Update URL of KDE's coding style.
	* README.GIT: Remove.
	* doc/HACKING: Update URL of KDE's coding style.

	build: Rename options to build for Qt 5/6.
	+ commit 0af465867b8ff25ced5621197e4b12877451c81e
	* CMakeLists.txt: Rename QGPGME_BUILD_QT[56] to BUILD_WITH_QT[56].

2025-01-28  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Install cmake Find modules for gpgme and libgpg-error.
	+ commit 0df6b231606220f3b4dc3905daf4245ce812336a
	* src/CMakeLists.txt: Install the necessary Find modules.
	* src/QGpgmeConfig.cmake.in: Append path of Find modules to
	CMAKE_MODULE_PATH.

2025-01-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Fix name of library.
	+ commit a7196132d4453addd70ac513ce7ac35e1de4214b
	* src/CMakeLists.txt: Use variable targetname instead of literal string.

2025-01-20  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Add the usual Git hooks.
	+ commit 13b35cc1703860b4e55cd8129847b57f021e5787
	* CMakeLists.txt: Include G10GitHooks. Call g10_configure_git_hooks.
	* cmake/modules/G10GitHooks.cmake: New.

2025-01-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Add custom targets only on Unix-like systems.
	+ commit 841dc2c6399ad96cef36b722447240b251769e9b
	* CMakeLists.txt: Call g10_add_gen_changelog_target,
	g10_add_dist_targets, and g10_add_release_targets only for UNIX.

	build: Build the documentation.
	+ commit 206bbebea5b6b34195686c54f61bef09638dfc0c
	* CMakeLists.txt: Check for doxygen. Add subdirectory doc to the build
	if doxygen is found.
	* doc/CMakeLists.txt: New.
	* doc/Doxyfile.in: Remove.

	build: Add "gen-swdb", "release", and "sign-release" targets.
	+ commit 67f8c3323e4c967aaa622f4b2b4dba9c217b9230
	* CMakeLists.txt: Include G10AddReleaseTargets. Add the release targets.
	* cmake/modules/G10AddReleaseTargets.cmake,
	cmake/modules/g10_generate_swdb.sh.in,  cmake/modules/g10_release.sh.in,
	cmake/modules/g10_sign-release.sh.in: New.

	build: Generate ChangeLog and add it to the tarball.
	+ commit bd0e110dfb10d08b1d812e42b7936d9b28784fda
	* .gitattributes: New.
	* CMakeLists.txt: Include G10AddGenChangeLogTarget. Add "gen-ChangeLog"
	target. Make "dist" target depend on "gen-ChangeLog" target.
	* cmake/modules/G10AddGenChangeLogTarget.cmake,
	cmake/modules/g10_generate_ChangeLog.cmake.in: New.

	build: Add "dist" and "distcheck" targets.
	+ commit 47af826842804955187a8d01e72cceb1f140046a
	* CMakeLists.txt: Include G10AddDistTargets. Set EXTRA_DIST. Add "dist"
	and "distcheck" target.
	* cmake/modules/G10AddDistTarget.cmake, cmake/modules/g10_dist.sh.in,
	cmake/modules/g10_distcheck.sh.in: New.

	build: Create VERSION file with full version and commit ID.
	+ commit 3fb8a971e0cdc1ced848fe897adec14ece09f131
	* CMakeLists.txt: Include G10GetFullVersion. Get full version and
	commit ID. Write VERSION file.
	* VERSION.in, cmake/modules/G10GetFullVersion.cmake: New.

	build: Generate version file and cmake config files with cmake tools.
	+ commit cf34169acee8bf57dacac47d6dec1cd4de13693d
	* cmake/modules/ECMSetupVersion.cmake,
	cmake/modules/ECMVersionHeader.h.in: New.
	* cmake/modules/G10CMakeSettings.cmake: Enable versioned DLLs for MinGW
	builds.
	* src/CMakeLists.txt: Remove unused variables. Set include directory for
	generated cmake config files. Use ecm_setup_version instead of
	configure_file to generate qgpgme_version.h and the *ConfigVersion.cmake
	files. Use configure_package_config_file instead of configure_file to
	generate the *Config.cmake files. Generate the exported *Targets.cmake
	files.
	* src/QGpgmeConfig.cmake.in: New.
	* src/QGpgmeConfig-msvc.cmake.in.in, src/QGpgmeConfig-w32.cmake.in.in,
	src/QGpgmeConfig.cmake.in.in, src/QGpgmeConfigVersion.cmake.in,
	src/QGpgmeQt6Config-msvc.cmake.in.in,
	src/QGpgmeQt6Config-w32.cmake.in.in, src/QGpgmeQt6Config.cmake.in.in,
	src/QGpgmeQt6ConfigVersion.cmake.in, src/qgpgme_version.h.in: Remove.

	build: Add cmake files for building the tests.
	+ commit 7fce93ec5805d2dbbd22975328318c8ad5e7496b
	* CMakeLists.txt: Enable AUTORCC. Add subdirectory tests to the build.
	* cmake/modules/ECMAddTests.cmake, cmake/modules/ECMMarkAsTest.cmake,
	cmake/modules/ECMMarkNonGuiExecutable.cmake: New.
	* cmake/modules/G10CMakeSettings.cmake: Add option BUILD_TESTING.
	* tests/CMakeLists.txt, tests/fixture.qrc, tests/fixture/gpg-agent.conf,
	tests/fixture/gpg.conf: New.
	* tests/pubdemo.asc: Move to ...
	* tests/fixture/pubdemo.asc: here. Remove trailing empty line.
	* tests/secdemo.asc: Move to ...
	* tests/fixture/secdemo.asc: here.
	* tests/Makefile.am, tests/final.test, tests/initial.test,
	tests/start-stop-agent: Remove.
	* tests/t-support.cpp (QGpgMETest::initTestCase): Extract test data
	from fixture to temporary folder. Set GNUPGHOME to this folder. Import
	pubdemo.asc and secdemo.asc.
	* tests/t-support.h (QGpgMETest): Add member variable
	mGnupgHomeTemplate.

	build: Generate the export header.
	+ commit 2e574603f8cb5e66d4e213412c122e1449c613e1
	* src/CMakeLists.txt: Remove compile definition BUILDING_QGPGME. Remove
	qgpgme_export.h from qgpgme_PRIVATE_HEADERS. Use generate_export_header
	to generate qgpgme_export.h. Install the generated header.
	* src/qgpgme_export.h: Remove.

	build: Add "uninstall" target.
	+ commit e7fe0a67f68ca7bde509eb2a9f105c2015fdacf1
	* CMakeLists.txt: Include ECMUninstallTarget.
	* cmake/modules/ECMUninstallTarget.cmake,
	cmake/modules/ecm_uninstall.cmake.in: New.

	build: Generate camel-case headers with cmake module.
	+ commit 8b9ecbb9b2006d11ad6a672d694260b9d3033e56
	* CMakeLists.txt: Include ECMGenerateHeaders.
	* cmake/modules/ECMGenerateHeaders.cmake: New.
	* src/CMakeLists.txt: Use ecm_generate_headers instead of a manual loop
	to generate the camel-case headers.

	build: Use cmake's AUTOMOC to run moc.
	+ commit a6e69542190decee5060cb1da6bcb3fa48ff5209
	* CMakeLists.txt: Enable CMAKE_AUTOMOC.
	* src/CMakeLists.txt: Remove code that runs moc manually.

	build: Move common cmake and compiler settings to cmake modules.
	+ commit fa3c839974aba2c0ea7906e2a4f733caf57e29f6
	* CMakeLists.txt: Don't set a few variables. Include G10CMakeSettings
	and G10CompilerSettings.
	* cmake/modules/G10CMakeSettings.cmake,
	cmake/modules/G10CompilerSettings.cmake: New.
	* src/CMakeLists.txt: Don't set include directories for PRIVATE and
	PUBLIC scope.

	build: Add support for cmake and remove support for autotools.
	+ commit ac7440f81af3226d7ae4f939101574a990e6fb46
	* CMakeLists.txt, cmake/modules/FindGpgme.cmake,
	cmake/modules/FindLibGpgError.cmake, src/CMakeLists.txt,
	src/QGpgmeConfig-msvc.cmake.in.in, src/QGpgmeQt6Config-msvc.cmake.in.in:
	New.
	* Makefile.am, autogen.rc, autogen.sh, build-aux/compile,
	build-aux/config.guess, build-aux/config.sub, build-aux/depcomp,
	build-aux/install-sh, build-aux/libtool-patch.sed, build-aux/ltmain.sh,
	build-aux/missing, build-aux/mkinstalldirs, configure.ac,
	m4/ax_check_compile_flag.m4, m4/ax_cxx_compile_stdcxx.m4,
	m4/ax_gcc_func_attribute.m4, m4/gpg-error.m4, m4/gpgme.m4,
	m4/gpgmepp.m4, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
	m4/ltversion.m4, m4/lt~obsolete.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4,
	doc/Makefile.am, src/Makefile.am: Remove.

2024-12-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Include moc files generated from headers with standard name.
	+ commit 783f14961ce81e70e282923ef3cf3c1a6018ed6e
	* src/Makefile.am, tests/Makefile.am: Use moc_*.cpp instead of *.moc as
	name for the moc forward headers.
	* src/cleaner.cpp, src/decryptverifyarchivejob.cpp,
	src/decryptverifyjob.cpp, src/defaultkeygenerationjob.cpp,
	src/encryptarchivejob.cpp, src/encryptjob.cpp, src/job.cpp,
	src/multideletejob.cpp, src/qgpgmeaddexistingsubkeyjob.cpp,
	src/qgpgmeadduseridjob.cpp, src/qgpgmechangeexpiryjob.cpp,
	src/qgpgmechangeownertrustjob.cpp, src/qgpgmechangepasswdjob.cpp,
	src/qgpgmedecryptjob.cpp, src/qgpgmedecryptverifyarchivejob.cpp,
	src/qgpgmedecryptverifyjob.cpp, src/qgpgmedeletejob.cpp,
	src/qgpgmedownloadjob.cpp, src/qgpgmeencryptarchivejob.cpp,
	src/qgpgmeencryptjob.cpp, src/qgpgmeexportjob.cpp,
	src/qgpgmegpgcardjob.cpp, src/qgpgmeimportfromkeyserverjob.cpp,
	src/qgpgmeimportjob.cpp, src/qgpgmekeyformailboxjob.cpp,
	src/qgpgmekeygenerationjob.cpp, src/qgpgmekeylistjob.cpp,
	src/qgpgmelistallkeysjob.cpp, src/qgpgmequickjob.cpp,
	src/qgpgmereceivekeysjob.cpp, src/qgpgmerefreshsmimekeysjob.cpp,
	src/qgpgmerevokekeyjob.cpp, src/qgpgmesetprimaryuseridjob.cpp,
	src/qgpgmesignarchivejob.cpp, src/qgpgmesignencryptarchivejob.cpp,
	src/qgpgmesignencryptjob.cpp, src/qgpgmesignjob.cpp,
	src/qgpgmesignkeyjob.cpp, src/qgpgmetofupolicyjob.cpp,
	src/qgpgmeverifydetachedjob.cpp, src/qgpgmeverifyopaquejob.cpp,
	src/qgpgmewkdlookupjob.cpp, src/qgpgmewkdrefreshjob.cpp,
	src/qgpgmewkspublishjob.cpp, src/quickjob.cpp, src/signarchivejob.cpp,
	src/signencryptarchivejob.cpp, src/signencryptjob.cpp, src/signjob.cpp,
	src/verifydetachedjob.cpp, src/verifyopaquejob.cpp,
	src/wkdrefreshjob.cpp, tests/t-support.cpp: Update name of included moc
	files.

	Remove unimplemented HierarchicalKeyListJob.
	+ commit 7e2140366f2fc3b24347825794f1b034173c2ef3
	* src/Makefile.am: Remove references to hierarchicalkeylistjob.h and
	to files generated from it.
	* src/hierarchicalkeylistjob.h: Remove.

2024-12-12  Ingo Klöcker  <dev@ingo-kloecker.de>

	Store oidmap as vector and add lookup helper.
	+ commit e52930d9fa842474235c9f2fe3fef3e217bf7d14
	* src/dn.cpp (struct NameAndOID): New.
	(oidmap): Change type from plain array to vector.
	(numOidMaps): Remove.
	(attributeNameForOID): New.
	(parse_dn_part): Use attributeNameForOID.

2024-12-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	Avoid clashes of qgpgme headers with other headers.
	+ commit e10eec5fbf5923cd4ea817f2ed1ca0d20c0cbe61
	* src/QGpgmeConfig-w32.cmake.in.in, src/QGpgmeConfig.cmake.in.in,
	src/QGpgmeQt6Config-w32.cmake.in.in,
	src/QGpgmeQt6Config.cmake.in.in: Don't put qgpgme subfolder in
	interface include paths.

2024-12-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	Add files for building the project with autotools.
	+ commit 1c3d2756d5ac31252e3167fd0022597ec3881eac
	* COPYING, INSTALL, README.GIT, autogen.sh, build-aux/compile,
	build-aux/config.guess, build-aux/config.sub, build-aux/depcomp,
	build-aux/install-sh, build-aux/libtool-patch.sed, build-aux/ltmain.sh,
	build-aux/missing, build-aux/mkinstalldirs, m4/ax_check_compile_flag.m4,
	m4/ax_cxx_compile_stdcxx.m4, m4/ax_gcc_func_attribute.m4,
	m4/gpg-error.m4, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
	m4/ltversion.m4, m4/lt~obsolete.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4:
	New (copied from gpgme).
	* .gitignore, AUTHORS, ChangeLog, NEWS, autogen.rc, configure.ac: New.
	* Makefile.am (EXTRA_DIST): Add autogen.sh, autogen.rc,
	build-aux/libtool-patch.sed, VERSION.
	(RELEASE_ARCHIVE_SUFFIX, ACLOCAL_AMFLAGS, dist-hook, distcheck-hook,
	.PHONY, gen_start_date, gen-ChangeLog, RELEASE_NAME, release,
	sign-release): New (copied with minor adjustments from gpgme's top-level
	Makefile.am).
	* build-aux/git-hooks/commit-msg: New.
	* build-aux/git-log-footer: New (copied with some adjustments from
	gpgme).
	* doc/DCO, doc/HACKING: New (copied with some adjustments from gpgme).
	* doc/Doxyfile.in (INPUT): Update path.
	* doc/Makefile.am (EXTRA_DIST): New.
	* m4/gpgme.m4: New (copied from gpgme/src/gpgme.m4).
	* m4/gpgmepp.m4: New.
	* src/Makefile.am (libqgpgme_la_CPPFLAGS, libqgpgmeqt6_la_CPPFLAGS):
	Replace include paths of gpgmepp and gpgme relative to top_builddir
	with @GPGMEPP_CFLAGS@ and @GPGME_CFLAGS@. Remove unneeded
	@LIBASSUAN_CFLAGS@.
	(libqgpgme_la_LIBADD, libqgpgmeqt6_la_LIBADD): Replace relative paths
	of libgpgmepp.la and libgpgme.la with @GPGMEPP_LIBS@ and @GPGME_LIBS@.
	Remove unneeded @LIBASSUAN_LIBS@.

	* tests/Makefile.am (EXTRA_DIST): Add new files.
	(ldadd_qt5, ldadd_qt6): Replace relative paths of libgpgmepp.la and
	libgpgme.la with @GPGMEPP_LIBS@ and @GPGME_LIBS@.
	(cppflags_qt5, cppflags_qt6): Adjust include paths of source files.
	Replace relative include paths of gpgmepp and gpgme with
	@GPGMEPP_CFLAGS@ and @GPGME_CFLAGS@. Remove duplicate
	@GPG_ERROR_CFLAGS@. Remove unneeded @LIBASSUAN_CFLAGS@. Remove unneeded
	define of TOP_SRCDIR.
	(pubring-stamp): Adjust paths of pubdemo.asc and secdemo.asc.
	* tests/pubdemo.asc, tests/secdemo.asc, tests/start-stop-agent: New
	(copied from gpgme).

2024-10-23  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Fix typo.
	+ commit 542085af12dcf09efcc103fda7113d83a7ebc9dd
	* lang/qt/src/Makefile.am (camelcase_headers): Fix typo in header name.

	qt: Put attributes before declarations.
	+ commit d2093d16b1a032e54b2fcc2b6756505176238ef2
	* lang/qt/src/downloadjob.h (DownloadJob::start): Move QGPGME_DEPRECATED
	before the whole function declaration.

2024-08-26  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add support for new context flag "proc-all-sigs"
	+ commit 82859d18a34c1fc30a6e863c7caa7144a0f6cbb0
	* lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
	member functions setProcessAllSignatures, processAllSignatures.
	* lang/qt/src/decryptverifyarchivejob_p.h
	(DecryptVerifyArchiveJobPrivate): Add member m_processAllSignatures.
	* lang/qt/src/decryptverifyjob.cpp, lang/qt/src/decryptverifyjob.h
	(DecryptVerifyJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/decryptverifyjob_p.h (DecryptVerifyJobPrivate): Add member
	m_processAllSignatures.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(decrypt_verify_from_file_name): Add argument "processAllSignatures".
	Set context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyArchiveJob::start): Set context flag "proc-all-sigs"
	if requested.
	(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_file_name.
	* lang/qt/src/qgpgmedecryptverifyjob.cpp
	(decrypt_verify_from_filename): Add argument "processAllSignatures".
	Set context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyJob::start, QGpgMEDecryptVerifyJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/qgpgmeverifydetachedjob.cpp (verify_from_filename): Add
	argument "processAllSignatures". Set context flag "proc-all-sigs" if
	requested.
	(QGpgMEVerifyDetachedJob::start, QGpgMEVerifyDetachedJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEVerifyDetachedJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/qgpgmeverifyopaquejob.cpp (verify_from_filename): Add
	argument "processAllSignatures". Set context flag "proc-all-sigs" if
	requested.
	(QGpgMEVerifyOpaqueJob::start, QGpgMEVerifyOpaqueJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEVerifyOpaqueJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/verifydetachedjob.cpp, lang/qt/src/verifydetachedjob.h
	(VerifyDetachedJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/verifydetachedjob_p.h (VerifyDetachedJobPrivate): Add
	member m_processAllSignatures.
	* lang/qt/src/verifyopaquejob.cpp, lang/qt/src/verifyopaquejob.h
	(VerifyOpaqueJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/verifyopaquejob_p.h (VerifyOpaqueJobPrivate): Add
	member m_processAllSignatures.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp,
	lang/qt/tests/run-decryptverifyjob.cpp,
	lang/qt/tests/run-verifydetachedjob.cpp,
	lang/qt/tests/run-verifyopaquejob.cpp (struct CommandLineOptions): Add
	member processAllSignatures.
	(parseCommandLine): Add command line option --process-all-signatures.
	(main): Pass new option to the job.

2024-08-07  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,tests: Add make target to clean the keyring.
	+ commit de9d8592afec51ae4ce69167991e64a946f549b6
	* lang/qt/tests/Makefile.am (clean-keyring): New target.

	qt: Use --quick-set-ownertrust if available.
	+ commit e1f1435b91ea59b155743a404bf8fe82759599cd
	* lang/qt/src/qgpgmechangeownertrustjob.cpp (set_owner_trust): New.
	(QGpgMEChangeOwnerTrustJob::start): Use set_owner_trust if gpg is new
	enough.

	* lang/qt/tests/t-ownertrust.cpp
	(ChangeOwnerTrustTest::testChangeOwnerTrust): Log unexpected error.

	qt: Support disabling and enabling of keys.
	+ commit 753c2f2e9af8919dad58f02ca6aeb536563723ed
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/job.cpp (QuickJob): Move definition of constructor and
	destructor and inclusion of the moc file to quickjob.cpp.
	* lang/qt/src/qgpgmequickjob.cpp (class QGpgMEQuickJobPrivate): New.
	(QGpgMEQuickJob::QGpgMEQuickJob): Instantiate private job class.
	(set_key_enabled): New.
	* lang/qt/src/quickjob.cpp: New.
	* lang/qt/src/quickjob.h (class QuickJob): Add member function
	startSetKeyEnabled.
	* lang/qt/src/quickjob_p.h: New.

	* lang/qt/tests/Makefile.am: Add new test for Qt 5 and Qt 6.
	* lang/qt/tests/t-disablekey.cpp: New.

2024-07-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Fix include path in CMake files.
	+ commit bcfd64996771e134fb6f4a9e721d27adc5b3163e
	* lang/qt/src/Makefile.am (QGpgmeConfig.cmake, QGpgmeQt6Config.cmake):
	Use new variables includeprefix{5,6} instead of replaced variable
	includeprefix.

2024-07-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Don't put generated camel-case headers in tarball.
	+ commit 82391778211160135c0afdf05e70aad5c24323fb
	* lang/qt/src/Makefile.am: Change camelcase5include_HEADERS to
	nodist_camelcase5include_HEADERS. Change camelcase6include_HEADERS to
	nodist_camelcase6include_HEADERS.

	build,qt: Allow building Qt 5 bindings and Qt 6 bindings.
	+ commit 1af1e6e8e68e0321af551a80d20effa49953d761
	* configure.ac: Remove "qt" from default_languages. Add "qt5 qt6" to
	default_languages. Remove "qt" from help for --enable-languages. Don't
	fail anymore if "qt5" and "qt6" are enabled. Warn that "qt" is
	deprecated if it was enabled.
	* lang/qt/src/Makefile.am (libqgpgme_la, libqgpgmeqt6_la): New.
	(lib_LTLIBRARIES): Set Qt 5 and/or Qt 6 variant of libqgpgme.
	(AM_CPPFLAGS): Replace with libqgpgme_la_CPPFLAGS for Qt 5 and
	libqgpgmeqt6_la_CPPFLAGS for Qt 6.

	build,qt: Decouple generation of moc files.
	+ commit 1031274f8b76a7247204e1a6e2cfec25394b04d8
	* m4/qt5.m4: Export moc for Qt 5 in variable MOC5. Unset temporary MOC2.
	* m4/qt6.m4: Export moc for Qt 6 in variable MOC6.
	* lang/qt/src/Makefile.am: Generate .moc5 files from .h files. Generate
	.moc forwarding headers in moc5 subfolder. Add moc5 subfolder to include
	paths for Qt 5-based qgpgme library. Ditto for Qt 6. Clean up moc5 and
	moc6 subfolders.
	* lang/qt/tests/Makefile.am: List tests and test runners for Qt 5 and
	Qt 6. Generate .moc5 files from .cpp files of tests. Generate .moc
	forwarding headers in moc5 subfolder. Generate .hmoc file from
	t-support.h directly in moc5 subfolder. Add moc5 subfolder to include
	paths for all Qt 5-based tests and runners. Ditto for Qt 6. Specify
	sources, LDADD and CPPFLAGS for all tests and test runners for Qt 5 and
	Qt 6. Clean up moc5 and moc6 subfolders.

	build,qt: Remove include directories on uninstall.
	+ commit 0756e367ebebf5557ee9ed0ff0c1b45c6058aa85
	* lang/qt/src/Makefile.am (uninstall-include-dirs-qt5,
	uninstall-include-dirs-qt6): New targets.
	(uninstall_include_dirs_qt5, uninstall_include_dirs_qt6): New variables.
	(uninstall-local): Replace with...
	(uninstall-hook): ...this. Add new uninstall_include_dirs_qt* variables.

	build,qt: Decouple handling of include headers.
	+ commit 05b2bcd99bb2b5d3abe8b4b362e505fe0375cf3d
	* lang/qt/src/Makefile.am (includeprefix): Replace with...
	(includeprefix5, includeprefix6): ...these.
	(qgpgmeincludedir): Replace with...
	(qgpgme5includedir, qgpgme6includedir): ...these.
	(qgpgmeinclude_HEADERS): Replace with...
	(qgpgme5include_HEADERS, qgpgme6include_HEADERS): ...these.
	(nodist_qgpgmeinclude_HEADERS): Replace with...
	(nodist_qgpgme5include_HEADERS, nodist_qgpgme6include_HEADERS): ..these.
	(camelcaseincludedir): Replace with...
	(camelcase5includedir, camelcase6includedir): ...these.
	(camelcaseinclude_HEADERS): Replace with...
	(camelcase5include_HEADERS, camelcase6include_HEADERS): ...these.

	build,qt: Decouple (un)install of CMake files.
	+ commit 20346dd4458f1fb74d9ea23e25a1a744fdbcbfbb
	* lang/qt/src/Makefile.am (install-cmake-files): Rename target to
	install-cmake-files-qt5 and install-cmake-files-qt6.
	(uninstall-cmake-files): Rename target to uninstall-cmake-files-qt5 and
	uninstall-cmake-files-qt6.
	(install_cmake_files_qt5, uninstall_cmake_files_qt5,
	install_cmake_files_qt6, uninstall_cmake_files_qt6): New variables.
	(install-data-local): Depend on both install-cmake-files-qt* targets.
	(uninstall-local): Depend on both uninstall-cmake-files-qt* targets.

2024-07-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Replace usage of deprecated Error::asString.
	+ commit 296487310d52dcbf01ff3d0907cc576e0816ac53
	* lang/qt/src/debug.cpp (operator<<): Use Error::asStdString instead of
	Error::asString.
	* lang/qt/src/qgpgmedecryptverifyjob.cpp (decrypt_verify),
	lang/qt/src/qgpgmenewcryptoconfig.cpp
	(QGpgMENewCryptoConfigComponent::sync),
	lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use QDebug operator
	for Error instead of Error::asString.
	* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
	errorAsString instead of Error::asString.
	* lang/qt/src/util.h (errorAsString): New.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp (main),
	lang/qt/tests/run-decryptverifyjob.cpp (main),
	lang/qt/tests/run-encryptarchivejob.cpp (main),
	lang/qt/tests/run-encryptjob.cpp (main),
	lang/qt/tests/run-exportjob.cpp (main),
	lang/qt/tests/run-importjob.cpp (main),
	lang/qt/tests/run-receivekeysjob.cpp (main),
	lang/qt/tests/run-refreshkeysjob.cpp (main),
	lang/qt/tests/run-signarchivejob.cpp (main),
	lang/qt/tests/run-signjob.cpp (main),
	lang/qt/tests/run-verifydetachedjob.cpp (main),
	lang/qt/tests/run-verifyopaquejob.cpp (main),
	lang/qt/tests/run-wkdrefreshjob.cpp (main),
	lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust),
	lang/qt/tests/t-remarks.cpp (testRemarkOwnKey),
	lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Use QDebug operator for
	Error instead of Error::asString.
	* lang/qt/tests/t-changeexpiryjob.cpp (all test functions),
	lang/qt/tests/t-trustsignatures.cpp (all test functions),
	lang/qt/tests/t-various.cpp (testSignKeyWithoutExpiration,
	testSignKeyWithExpiration): Use errorAsString instead of
	Error::asString.

	qt: Always include C++ binding headers with gpgme++/ prefix.
	+ commit 5fbefb2e9952f1991d09340b49df5b3ab038e193
	* lang/qt/src/Makefile.am, lang/qt/tests/Makefile.am (AM_CPPFLAGS):
	Add builddir instead of srcdir of C++ bindings as include path.
	* lang/qt/src/changeexpiryjob.cpp, lang/qt/src/changeexpiryjob.h,
	lang/qt/src/changeownertrustjob.h, lang/qt/src/dataprovider.cpp,
	lang/qt/src/dataprovider.h, lang/qt/src/debug.cpp,
	lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h,
	lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h,
	lang/qt/src/encryptjob.h, lang/qt/src/encryptjob_p.h,
	lang/qt/src/filelistdataprovider.cpp,
	lang/qt/src/filelistdataprovider.h,
	lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/importjob.cpp,
	lang/qt/src/importjob.h, lang/qt/src/importjob_p.h, lang/qt/src/job.h,
	lang/qt/src/keyformailboxjob.h, lang/qt/src/keylistjob.h,
	lang/qt/src/listallkeysjob.h, lang/qt/src/multideletejob.cpp,
	lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp,
	lang/qt/src/qgpgmeadduseridjob.cpp, lang/qt/src/qgpgmebackend.cpp,
	lang/qt/src/qgpgmechangeexpiryjob.cpp,
	lang/qt/src/qgpgmechangeownertrustjob.cpp,
	lang/qt/src/qgpgmechangepasswdjob.cpp, lang/qt/src/qgpgmedecryptjob.cpp,
	lang/qt/src/qgpgmedecryptjob.h,
	lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
	lang/qt/src/qgpgmedecryptverifyarchivejob.h,
	lang/qt/src/qgpgmedecryptverifyjob.cpp,
	lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.cpp,
	lang/qt/src/qgpgmedownloadjob.cpp,
	lang/qt/src/qgpgmeencryptarchivejob.cpp,
	lang/qt/src/qgpgmeencryptarchivejob.h, lang/qt/src/qgpgmeencryptjob.cpp,
	lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeexportjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
	lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h,
	lang/qt/src/qgpgmekeyformailboxjob.h,
	lang/qt/src/qgpgmekeygenerationjob.cpp,
	lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.cpp,
	lang/qt/src/qgpgmekeylistjob.h, lang/qt/src/qgpgmelistallkeysjob.cpp,
	lang/qt/src/qgpgmelistallkeysjob.h,
	lang/qt/src/qgpgmenewcryptoconfig.cpp,
	lang/qt/src/qgpgmenewcryptoconfig.h, lang/qt/src/qgpgmequickjob.cpp,
	lang/qt/src/qgpgmereceivekeysjob.h,
	lang/qt/src/qgpgmerefreshsmimekeysjob.cpp,
	lang/qt/src/qgpgmerefreshsmimekeysjob.h,
	lang/qt/src/qgpgmerevokekeyjob.cpp,
	lang/qt/src/qgpgmesetprimaryuseridjob.cpp,
	lang/qt/src/qgpgmesignarchivejob.cpp,
	lang/qt/src/qgpgmesignarchivejob.h,
	lang/qt/src/qgpgmesignencryptarchivejob.cpp,
	lang/qt/src/qgpgmesignencryptarchivejob.h,
	lang/qt/src/qgpgmesignencryptjob.cpp,
	lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.cpp,
	lang/qt/src/qgpgmesignjob.h, lang/qt/src/qgpgmesignkeyjob.cpp,
	lang/qt/src/qgpgmetofupolicyjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.h,
	lang/qt/src/qgpgmeverifyopaquejob.cpp,
	lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkdlookupjob.cpp,
	lang/qt/src/qgpgmewkdrefreshjob.cpp, lang/qt/src/qgpgmewkdrefreshjob.h,
	lang/qt/src/qgpgmewkspublishjob.cpp, lang/qt/src/quickjob.h,
	lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h,
	lang/qt/src/signencryptarchivejob.cpp,
	lang/qt/src/signencryptarchivejob.h, lang/qt/src/signencryptjob.h,
	lang/qt/src/signencryptjob_p.h, lang/qt/src/signjob.h,
	lang/qt/src/signjob_p.h, lang/qt/src/threadedjobmixin.cpp,
	lang/qt/src/threadedjobmixin.h, lang/qt/src/tofupolicyjob.h,
	lang/qt/src/util.cpp, lang/qt/src/wkdlookupresult.cpp,
	lang/qt/src/wkdlookupresult.h, lang/qt/src/wkdrefreshjob_p.h,
	lang/qt/tests/run-decryptverifyarchivejob.cpp,
	lang/qt/tests/run-decryptverifyjob.cpp,
	lang/qt/tests/run-encryptarchivejob.cpp,
	lang/qt/tests/run-encryptjob.cpp, lang/qt/tests/run-exportjob.cpp,
	lang/qt/tests/run-importjob.cpp, lang/qt/tests/run-keyformailboxjob.cpp,
	lang/qt/tests/run-receivekeysjob.cpp,
	lang/qt/tests/run-refreshkeysjob.cpp,
	lang/qt/tests/run-signarchivejob.cpp, lang/qt/tests/run-signjob.cpp,
	lang/qt/tests/run-verifydetachedjob.cpp,
	lang/qt/tests/run-verifyopaquejob.cpp,
	lang/qt/tests/run-wkdrefreshjob.cpp,
	lang/qt/tests/t-addexistingsubkey.cpp,
	lang/qt/tests/t-changeexpiryjob.cpp, lang/qt/tests/t-config.cpp,
	lang/qt/tests/t-decryptverify.cpp, lang/qt/tests/t-encrypt.cpp,
	lang/qt/tests/t-import.cpp, lang/qt/tests/t-keylist.cpp,
	lang/qt/tests/t-keylocate.cpp, lang/qt/tests/t-ownertrust.cpp,
	lang/qt/tests/t-remarks.cpp, lang/qt/tests/t-revokekey.cpp,
	lang/qt/tests/t-setprimaryuserid.cpp, lang/qt/tests/t-support.cpp,
	lang/qt/tests/t-support.h, lang/qt/tests/t-tofuinfo.cpp,
	lang/qt/tests/t-trustsignatures.cpp, lang/qt/tests/t-various.cpp,
	lang/qt/tests/t-verify.cpp, lang/qt/tests/t-wkdlookup.cpp,
	lang/qt/tests/t-wkspublish.cpp: Include GpgME++ headers with gpgme++/
	prefix.

2024-06-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Allow appending a detached signature to an existing file.
	+ commit c71279f29386b05aed920768e8c52a8a02d30119
	* lang/qt/src/qgpgmesignjob.cpp (sign_to_filename): Add argument
	"appendSignature". Append new detached signature to an existing file if
	requested.
	* lang/qt/src/signjob.cpp, lang/qt/src/signjob.h (class SignJob): Add
	member functions setAppendSignature, appendSignatureEnabled.
	* lang/qt/src/signjob_p.h (struct SignJobPrivate): Add member
	m_appendSignature.

	* lang/qt/tests/run-signjob.cpp (struct CommandLineOptions): Add members
	signingFlags, appendSignature. Initialize armor.
	(parseCommandLine): Add command line options --detach-sign and --append.
	(main): Do not exit if output file exists and append is enabled.
	Pass new options to the job.

2024-06-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,build: Install headers for Qt 5 and Qt 6 in different locations.
	+ commit b36abc23f7f96fb290a921028c3327840042f962
	* lang/qt/src/Makefile.am (includeprefix): New.
	(qgpgmeincludedir, camelcaseincludedir): Add $(includeprefix).
	(QGpgmeConfig.cmake, QGpgmeQt6Config.cmake): Add $(includeprefix) to
	replacement for @resolved_includedir@.

2024-06-13  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,tests: Fix deprecation warnings (in Qt 6 build)
	+ commit 2700717779233de4949e14e1e07ea254ca844ded
	* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::signAndVerify,
	TofuInfoTest::testTofuPolicy): Use range-based for loop instead of Qt's
	deprecated foreach.

	qt: Specify import options as list of strings instead of as string.
	+ commit fcd5b5847e9e149fe127866395a69fdbdecbf562
	* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (setImportOptions):
	Change type of argument "options" to QStringList.
	(importOptions): Change return type to QStringList.
	* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Change type of
	member m_importOptions to QStringList.
	* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Change type of argument
	"importOptions" to QStringList. Join list of import options with ','
	when setting the "import-options" context flag.

	* lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportOptions):
	Adapt to API change.

2024-06-12  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Allow specifying import options when importing keys.
	+ commit 0279566e1c4ea830ed72c355249496b148665cb1
	* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob):
	Add member functions setImportOptions and importOptions.
	* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Add member
	m_importOptions.
	* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importOptions
	and adjust the callers. Set import options context flag.

	* lang/qt/tests/t-import.cpp (ImportTest): Add member function
	testImportWithImportOptions.

	qt,doc: Fix typos.
	+ commit 7f7bc70c4577f6153af2d12869b3f5a4766345ea
	* lang/qt/README: Fix typos.

2024-06-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Align license of some Makefiles with license of other Makefiles.
	+ commit dee36b6c278591decc5d71ac9b5f73a1dd9132fc
	* lang/qt/doc/Makefile.am, lang/qt/tests/Makefile.am: Change license
	from LGPL to GPL.

	qt: Fix license headers of Makefiles.
	+ commit 4f099eedec45a2c243f876b8444e9c541adb1daf
	* lang/qt/Makefile.am, lang/qt/src/Makefile.am: Files are part of
	QGpgme. Fix wrong package name (GPGME-CL -> QGpgME). Replace references
	to LGPL with references to GPL.

	qt: Fix license headers of CMake config files.
	+ commit f5b801e44a956a24458b3310a66d2dfeaff2b909
	* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
	lang/qt/src/QGpgmeConfig.cmake.in.in,
	lang/qt/src/QGpgmeConfigVersion.cmake.in: Files are part of QGpgME.
	Fix copy&paste error (GPGME-CL -> QGpgME). Fix reference to license
	to check for details.
	* lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in,
	lang/qt/src/QGpgmeQt6Config.cmake.in.in,
	lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in: Files are part of QGpgME.
	Fix reference to license to check for details.

	qt: Fix license headers of dataprovider.*
	+ commit c7ec566fd50d450e0410085538182b8239223d62
	* lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h: Change
	license header from LGPL to GPL.

2024-05-22  Tobias Fella  <tobias.fella@gnupg.com>

	qt,cpp: Implement adding ADSKs to existing keys.
	+ commit 0f2ef50f379dce44ae1c5f142d712bcccfa0a4de
	* lang/cpp/src/context.cpp: Add functions for adding ADSKs.
	* lang/cpp/src/context.h: Ditto.
	* lang/qt/src/qgpgmequickjob.cpp: Add implementation of ADSK job.
	* lang/qt/src/qgpgmequickjob.h: Ditto.
	* lang/qt/src/quickjob.h: Add job for adding ADSKs.

2024-05-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Avoid bogus stringop-overread warning.
	+ commit dba769b3be2f3d779fd331c3557373478cd48ec4
	* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
	QByteArray overload of QString::fromUtf8.

	qt: Fix warning about missing return.
	+ commit 216c3de84fb1ce7241bb1c2f23a6168884e1947b
	* lang/qt/src/qgpgmeexportjob.cpp (ExportJob::exec): Return a value and
	remove unused argument names.

2024-01-22  Tobias Fella  <tobias.fella@gnupg.com>

	qt: Add function for synchronously executing ExportJob.
	+ commit 635467c71407f27cf59228fa902e6f06dcc32b85
	* lang/qt/src/exportjob: Add exec function.
	* lang/qt/src/qgpgmeexportjob.cpp: Implement exec function.
	* lang/qt/src/qgpgmeexportjob.h: Override exec function.

2024-01-19  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Remove superfluous virtual overrides and member variables.
	+ commit cfa5f164ae35a118ce34e9e83bd75683b6a298a6
	* lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp
	(QGpgMEAddExistingSubkeyJob::exec): Remove call of resultHook.
	* lang/qt/src/qgpgmedecryptjob.cpp (QGpgMEDecryptJob::exec): Remove
	call of resultHook.
	(QGpgMEDecryptJob::resultHook): Remove.
	* lang/qt/src/qgpgmedecryptjob.h (QGpgMEDecryptJob): Remove resultHook
	override. Remove member mResult.
	* lang/qt/src/qgpgmedecryptverifyjob.cpp (QGpgMEDecryptVerifyJob::exec):
	Remove call of resultHook.
	(QGpgMEDecryptVerifyJob::resultHook): Remove.
	* lang/qt/src/qgpgmedecryptverifyjob.h (QGpgMEDecryptVerifyJob): Remove
	resultHook override. Remove member mResult.
