diff --git a/CMakeLists.txt b/CMakeLists.txt index 83e1d34..abaa843 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,8 @@ project(GpgFrontendModules # includes include(GenerateExportHeader) +set(CMAKE_POLICY_DEFAULT_CMP0126 NEW) + # function or mode options option(GPGFRONTEND_QT5_BUILD "Swith to Qt5 building mode" OFF) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9ce7323..2c3293f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,4 +29,5 @@ add_subdirectory(m_ver_check) add_subdirectory(m_gpg_info) add_subdirectory(m_pinentry) add_subdirectory(m_paper_key) -add_subdirectory(m_key_server_sync) \ No newline at end of file +add_subdirectory(m_key_server_sync) +add_subdirectory(m_email) \ No newline at end of file diff --git a/src/m_email/CMakeLists.txt b/src/m_email/CMakeLists.txt new file mode 100644 index 0000000..743145b --- /dev/null +++ b/src/m_email/CMakeLists.txt @@ -0,0 +1,82 @@ +# Copyright (C) 2021-2024 Saturneric +# +# This file is part of GpgFrontend. +# +# GpgFrontend 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 3 of the License, or +# (at your option) any later version. +# +# GpgFrontend 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 GpgFrontend. If not, see . +# +# The initial version of the source code is inherited from +# the gpg4usb project, which is under GPL-3.0-or-later. +# +# All the source code of GpgFrontend was modified and released by +# Saturneric starting on May 12, 2021. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# com.bktus.gpgfrontend.module.integrated.gnupg_info_gathering + +set(INTEGRATED_MODULE_SOURCE "") +aux_source_directory(. INTEGRATED_MODULE_SOURCE) + +# define libgpgfrontend_module +add_library(mod_email SHARED ${INTEGRATED_MODULE_SOURCE}) + +set(VMIME_INSTALL OFF CACHE BOOL "Build vmime static library") +set(VMIME_BUILD_TESTS OFF CACHE BOOL "Build vmime static library") +set(VMIME_HAVE_TLS_SUPPORT OFF CACHE BOOL "Build vmime static library") +set(VMIME_HAVE_SASL_SUPPORT OFF CACHE BOOL "Build vmime static library") +set(VMIME_BUILD_DOCUMENTATION OFF CACHE BOOL "Build vmime static library") +set(VMIME_BUILD_STATIC_LIBRARY ON CACHE BOOL "Build vmime static library") +set(VMIME_BUILD_SHARED_LIBRARY OFF CACHE BOOL "Build vmime static library") +add_subdirectory(vmime "vmime" EXCLUDE_FROM_ALL) + +# install dir +install(TARGETS mod_email + LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/modules") + +# vmime headers +target_include_directories(mod_email PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/vmime/src" + "${CMAKE_BINARY_DIR}/src/vmime" + "${CMAKE_BINARY_DIR}/src") + +# /Users/erich/Documents/Entwicklung/GpgFrontend/modules/build/src/vmime/config.hpp +# /Users/erich/Documents/Entwicklung/GpgFrontend/modules/build +message(STATUS "CMAKE_BINARY_DIR of module email: ${CMAKE_BINARY_DIR}") + +# link sdk +target_link_libraries(mod_email PRIVATE + gpgfrontend_module_sdk) + +# link qt +target_link_libraries(mod_email PRIVATE Qt::Core Qt::Widgets Qt::Concurrent) + +# link vmime +target_link_libraries(mod_email PRIVATE vmime-static) + +# using std c++ 17 +target_compile_features(mod_email PRIVATE cxx_std_17) + +# i18n +# set(LOCALE_TS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ts) +# set(TS_FILES "${LOCALE_TS_PATH}/ModuleEMail.en_US.ts" +# "${LOCALE_TS_PATH}/ModuleEMail.de_DE.ts" +# "${LOCALE_TS_PATH}/ModuleEMail.fr_FR.ts" +# "${LOCALE_TS_PATH}/ModuleEMail.it_iT.ts" +# "${LOCALE_TS_PATH}/ModuleEMail.zh_CN.ts" +# "${LOCALE_TS_PATH}/ModuleEMail.zh_TW.ts") +# qt_add_translations(mod_email +# RESOURCE_PREFIX "/i18n" +# TS_FILES ${TS_FILES} +# SOURCES ${INTEGRATED_MODULE_SOURCE} +# INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}) \ No newline at end of file diff --git a/src/m_email/EMailModule.cpp b/src/m_email/EMailModule.cpp new file mode 100644 index 0000000..d5f426c --- /dev/null +++ b/src/m_email/EMailModule.cpp @@ -0,0 +1,83 @@ +/** + * Copyright (C) 2021-2024 Saturneric + * + * This file is part of GpgFrontend. + * + * GpgFrontend 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 3 of the License, or + * (at your option) any later version. + * + * GpgFrontend 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 GpgFrontend. If not, see . + * + * The initial version of the source code is inherited from + * the gpg4usb project, which is under GPL-3.0-or-later. + * + * All the source code of GpgFrontend was modified and released by + * Saturneric starting on May 12, 2021. + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#include "EMailModule.h" + +#include +#include +#include + +// qt +#include +#include +#include +#include +#include + +// vmime +#define VMIME_STATIC +#include + +#include "GFModuleCommonUtils.hpp" +#include "GFModuleDefine.h" + +GF_MODULE_API_DEFINE("com.bktus.gpgfrontend.module.email", "Email", "1.0.0", + "Everything related to E-Mails.", "Saturneric") + +DEFINE_TRANSLATIONS_STRUCTURE(ModuleEMail); + +extern auto CalculateBinaryChacksum(const QString &path) + -> std::optional; + +auto GFRegisterModule() -> int { + MLogDebug("email module registering..."); + + REGISTER_TRANS_READER(); + + vmime::datetime dl("Sat, 08 Oct 2005 14:07:52 +0200"); + dl.getDay(); + + return 0; +} + +auto GFActiveModule() -> int { return 0; } + +EXECUTE_MODULE() { + FLOG_DEBUG("email executing, event id: %1", event["event_id"]); + + CB_SUCC(event); +} +END_EXECUTE_MODULE() + +auto GFDeactivateModule() -> int { return 0; } + +auto GFUnregisterModule() -> int { + MLogDebug("email module unregistering..."); + + return 0; +} diff --git a/src/m_email/EMailModule.h b/src/m_email/EMailModule.h new file mode 100644 index 0000000..e021464 --- /dev/null +++ b/src/m_email/EMailModule.h @@ -0,0 +1,33 @@ +/** + * Copyright (C) 2021-2024 Saturneric + * + * This file is part of GpgFrontend. + * + * GpgFrontend 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 3 of the License, or + * (at your option) any later version. + * + * GpgFrontend 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 GpgFrontend. If not, see . + * + * The initial version of the source code is inherited from + * the gpg4usb project, which is under GPL-3.0-or-later. + * + * All the source code of GpgFrontend was modified and released by + * Saturneric starting on May 12, 2021. + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#pragma once + +#include "GFModuleDeclare.h" + +GF_MODULE_API_DECLARE \ No newline at end of file diff --git a/src/m_email/ts/ModuleEMail.de_DE.ts b/src/m_email/ts/ModuleEMail.de_DE.ts new file mode 100644 index 0000000..15f5b44 --- /dev/null +++ b/src/m_email/ts/ModuleEMail.de_DE.ts @@ -0,0 +1,4 @@ + + + + diff --git a/src/m_email/ts/ModuleEMail.en_US.ts b/src/m_email/ts/ModuleEMail.en_US.ts new file mode 100644 index 0000000..c0603da --- /dev/null +++ b/src/m_email/ts/ModuleEMail.en_US.ts @@ -0,0 +1,4 @@ + + + + diff --git a/src/m_email/ts/ModuleEMail.fr_FR.ts b/src/m_email/ts/ModuleEMail.fr_FR.ts new file mode 100644 index 0000000..63d078d --- /dev/null +++ b/src/m_email/ts/ModuleEMail.fr_FR.ts @@ -0,0 +1,4 @@ + + + + diff --git a/src/m_email/ts/ModuleEMail.it_iT.ts b/src/m_email/ts/ModuleEMail.it_iT.ts new file mode 100644 index 0000000..0c07c8a --- /dev/null +++ b/src/m_email/ts/ModuleEMail.it_iT.ts @@ -0,0 +1,4 @@ + + + + diff --git a/src/m_email/ts/ModuleEMail.zh_CN.ts b/src/m_email/ts/ModuleEMail.zh_CN.ts new file mode 100644 index 0000000..c993db4 --- /dev/null +++ b/src/m_email/ts/ModuleEMail.zh_CN.ts @@ -0,0 +1,4 @@ + + + + diff --git a/src/m_email/ts/ModuleEMail.zh_TW.ts b/src/m_email/ts/ModuleEMail.zh_TW.ts new file mode 100644 index 0000000..9da77c6 --- /dev/null +++ b/src/m_email/ts/ModuleEMail.zh_TW.ts @@ -0,0 +1,4 @@ + + + +