mirror of
https://github.com/QuasarApp/SecretService.git
synced 2025-05-07 10:49:39 +00:00
first implementation
This commit is contained in:
parent
fcc1c451c3
commit
64e95d1de0
4
.gitignore
vendored
4
.gitignore
vendored
@ -69,7 +69,7 @@ _deps
|
|||||||
# Configured files
|
# Configured files
|
||||||
build.gradle
|
build.gradle
|
||||||
AndroidManifest.xml
|
AndroidManifest.xml
|
||||||
src/Example/Deploy/RENAME_ME.json
|
src/service/deploy/SecretService.json
|
||||||
src/Library/src/public/RENAME_ME/global.h
|
global.h
|
||||||
doxygen.conf
|
doxygen.conf
|
||||||
Distro
|
Distro
|
||||||
|
9
.gitmodules
vendored
9
.gitmodules
vendored
@ -1,3 +1,6 @@
|
|||||||
[submodule "CMake"]
|
[submodule "submodules/Heart"]
|
||||||
path = submodules/CMake
|
path = submodules/Heart
|
||||||
url = https://github.com/QuasarApp/CMake.git
|
url = https://github.com/QuasarApp/Heart.git
|
||||||
|
[submodule "submodules/Patronum"]
|
||||||
|
path = submodules/Patronum
|
||||||
|
url = https://github.com/QuasarApp/Patronum.git
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.19)
|
cmake_minimum_required(VERSION 3.19)
|
||||||
project(RENAME_ME LANGUAGES CXX)
|
project(SecretService LANGUAGES CXX)
|
||||||
if(TARGET ${PROJECT_NAME})
|
if(TARGET ${PROJECT_NAME})
|
||||||
message("The ${PROJECT_NAME} arledy included in main Project")
|
message("The ${PROJECT_NAME} arledy included in main Project")
|
||||||
return()
|
return()
|
||||||
@ -24,37 +24,44 @@ if (ANDROID OR IOS)
|
|||||||
set(BUILD_SHARED_LIBS ON)
|
set(BUILD_SHARED_LIBS ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt6 COMPONENTS Core REQUIRED)
|
find_package(Qt6 COMPONENTS Core Network Sql Concurrent REQUIRED)
|
||||||
find_package(Qt6 COMPONENTS Test QUIET)
|
find_package(Qt6 COMPONENTS Test QUIET)
|
||||||
|
|
||||||
include(submodules/CMake/QuasarApp.cmake)
|
include(submodules/Heart/submodules/QuasarAppLib/CMake/QuasarApp.cmake)
|
||||||
|
|
||||||
updateGitVars()
|
updateGitVars()
|
||||||
set(RENAME_ME_VERSION "0.${GIT_COMMIT_COUNT}.${GIT_COMMIT_HASH}")
|
set(SECRETSERVICE_VERSION "0.${GIT_COMMIT_COUNT}.${GIT_COMMIT_HASH}")
|
||||||
set(RENAME_ME_PACKAGE_ID "quasarapp.core.RENAME_ME")
|
set(SECRETSERVICE_PACKAGE_ID "quasarapp.core.secretservice")
|
||||||
|
|
||||||
option(RENAME_ME_TESTS "This option disables or enables tests of the ${PROJECT_NAME} project" ON)
|
option(SECRETSERVICE_TESTS "This option disables or enables tests of the ${PROJECT_NAME} project" ON)
|
||||||
option(RENAME_ME_EXAMPLE "This option disables or enables example app of the ${PROJECT_NAME} project" ON)
|
option(SECRETSERVICE_EXAMPLE "This option disables or enables example app of the ${PROJECT_NAME} project" ON)
|
||||||
|
|
||||||
if (ANDROID OR IOS OR QA_WASM32)
|
if (ANDROID OR IOS OR QA_WASM32)
|
||||||
set(RENAME_ME_TESTS OFF CACHE BOOL "This option force disbled for ANDROID IOS QA_WASM32 and Not Qt projects" FORCE)
|
set(SECRETSERVICE_TESTS OFF CACHE BOOL "This option force disbled for ANDROID IOS QA_WASM32 and Not Qt projects" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
make_directory(Distro)
|
make_directory(Distro)
|
||||||
|
|
||||||
initAll()
|
initAll()
|
||||||
|
|
||||||
if (RENAME_ME_TESTS)
|
if (SECRETSERVICE_TESTS)
|
||||||
add_subdirectory(src/testcore)
|
add_subdirectory(src/testcore)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src/RENAME_ME)
|
set(HEART_TESTS OFF)
|
||||||
|
add_subdirectory(submodules/Heart)
|
||||||
|
|
||||||
if (DEFINED RENAME_ME_EXAMPLE)
|
add_subdirectory(src/core)
|
||||||
|
|
||||||
|
set(PATRONUM_TESTS OFF)
|
||||||
|
add_subdirectory(submodules/Patronum)
|
||||||
|
add_subdirectory(src/service)
|
||||||
|
|
||||||
|
if (DEFINED SECRETSERVICE_EXAMPLE)
|
||||||
add_subdirectory(src/example)
|
add_subdirectory(src/example)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (RENAME_ME_TESTS)
|
if (SECRETSERVICE_TESTS)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
else()
|
else()
|
||||||
message("The ${PROJECT_NAME} tests is disabled.")
|
message("The ${PROJECT_NAME} tests is disabled.")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# CMakeProject
|
# CMakeProject
|
||||||
Template repository for cmake project
|
Template repository for cmake project
|
||||||
Fork me and replase RENAME_ME to Name of your new project.
|
Fork me and replase SecretService to Name of your new project.
|
||||||
|
|
||||||
1. Clone this repository
|
1. Clone this repository
|
||||||
2. Run ./init.sh NewProjectName
|
2. Run ./init.sh NewProjectName
|
||||||
|
@ -32,18 +32,18 @@ DOXYFILE_ENCODING = UTF-8
|
|||||||
# title of most generated pages and in a few other places.
|
# title of most generated pages and in a few other places.
|
||||||
# The default value is: My Project.
|
# The default value is: My Project.
|
||||||
|
|
||||||
PROJECT_NAME = RENAME_ME
|
PROJECT_NAME = SecretService
|
||||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = @RENAME_ME_VERSION@
|
PROJECT_NUMBER = @SECRETSERVICE_VERSION@
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
# quick idea about the purpose of the project. Keep the description short.
|
# quick idea about the purpose of the project. Keep the description short.
|
||||||
|
|
||||||
PROJECT_BRIEF = RENAME_ME is base back end library for your c++ Qt projects.
|
PROJECT_BRIEF = SecretService is base back end library for your c++ Qt projects.
|
||||||
|
|
||||||
|
|
||||||
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
|
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
|
||||||
@ -1452,7 +1452,7 @@ GENERATE_ECLIPSEHELP = NO
|
|||||||
# The default value is: org.doxygen.Project.
|
# The default value is: org.doxygen.Project.
|
||||||
# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
|
# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
|
||||||
|
|
||||||
ECLIPSE_DOC_ID = QuasarApp.RENAME_ME
|
ECLIPSE_DOC_ID = QuasarApp.SecretService
|
||||||
|
|
||||||
# If you want full control over the layout of the generated HTML pages it might
|
# If you want full control over the layout of the generated HTML pages it might
|
||||||
# be necessary to disable the index and replace it with your own. The
|
# be necessary to disable the index and replace it with your own. The
|
||||||
|
62
init.sh
62
init.sh
@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "Project name: $1"
|
|
||||||
|
|
||||||
if [ $# -ne 1 ]
|
|
||||||
then
|
|
||||||
echo "You call this script wtth wrong arguments."
|
|
||||||
echo "Example for start script:"
|
|
||||||
echo "./init.sh MyCmakeProject"
|
|
||||||
echo "Usage: $0 <replacement_string>"
|
|
||||||
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
replacement="$1"
|
|
||||||
|
|
||||||
rename_files_and_folders() {
|
|
||||||
local dir="$1"
|
|
||||||
local old_str="$2"
|
|
||||||
local new_str="$3"
|
|
||||||
|
|
||||||
for item in "$dir"/*; do
|
|
||||||
if [ -d "$item" ]; then
|
|
||||||
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
|
|
||||||
if [ "$item" != "$new_name" ]; then
|
|
||||||
mv "$item" "$new_name"
|
|
||||||
echo "Renamed directory: $item -> $new_name"
|
|
||||||
fi
|
|
||||||
rename_files_and_folders "$new_name" "$old_str" "$new_str"
|
|
||||||
elif [ -f "$item" ]; then
|
|
||||||
sed -i "s/$old_str/$new_str/g" "$item"
|
|
||||||
|
|
||||||
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
|
|
||||||
if [ "$item" != "$new_name" ]; then
|
|
||||||
mv "$item" "$new_name"
|
|
||||||
echo "Renamed file: $item -> $new_name"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
uppercase_string=$(echo "$replacement" | tr '[:lower:]' '[:upper:]')
|
|
||||||
|
|
||||||
rename_files_and_folders "." "RENAME_ME_EXPORT" "${uppercase_string}_EXPORT"
|
|
||||||
rename_files_and_folders "." "RENAME_ME_VERSION" "${uppercase_string}_VERSION"
|
|
||||||
rename_files_and_folders "." "RENAME_ME_LIBRARY" "${uppercase_string}_LIBRARY"
|
|
||||||
rename_files_and_folders "." "RENAME_ME_EXAMPLE" "${uppercase_string}_EXAMPLE"
|
|
||||||
rename_files_and_folders "." "RENAME_ME_TESTS" "${uppercase_string}_TESTS"
|
|
||||||
rename_files_and_folders "." "RENAME_ME_PACKAGE_ID" "${uppercase_string}_PACKAGE_ID"
|
|
||||||
|
|
||||||
rename_files_and_folders "." "RENAME_ME" "$replacement"
|
|
||||||
|
|
||||||
echo "Replacement complete."
|
|
||||||
|
|
||||||
|
|
||||||
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
|
|
||||||
while read path_key path
|
|
||||||
do
|
|
||||||
url_key=$(echo $path_key | sed 's/\.path/.url/')
|
|
||||||
url=$(git config -f .gitmodules --get "$url_key")
|
|
||||||
git submodule add $url $path
|
|
||||||
done
|
|
@ -1,9 +0,0 @@
|
|||||||
<RCC>
|
|
||||||
<qresource prefix="/">
|
|
||||||
<file>src/RENAME_MEModule/qmldir</file>
|
|
||||||
<file>src/RENAME_MEModule/RENAME_ME.qml</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="/RENAME_METr">
|
|
||||||
<file>languages/en.qm</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
@ -1,3 +0,0 @@
|
|||||||
module RENAME_MEModule
|
|
||||||
RENAME_ME 1.0 RENAME_ME.qml
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.19)
|
cmake_minimum_required(VERSION 3.19)
|
||||||
|
|
||||||
set(CURRENT_PROJECT "${PROJECT_NAME}")
|
set(CURRENT_PROJECT "${PROJECT_NAME}Core")
|
||||||
add_definitions(-DRENAME_ME_LIBRARY)
|
add_definitions(-DSECRETSERVICE_LIBRARY)
|
||||||
|
|
||||||
|
|
||||||
file(GLOB_RECURSE SOURCE_CPP
|
file(GLOB_RECURSE SOURCE_CPP
|
||||||
@ -25,12 +25,12 @@ set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/private")
|
|||||||
|
|
||||||
add_library(${CURRENT_PROJECT} ${SOURCE_CPP} ${SOURCE_QRC})
|
add_library(${CURRENT_PROJECT} ${SOURCE_CPP} ${SOURCE_QRC})
|
||||||
|
|
||||||
if (RENAME_ME_TESTS)
|
if (SECRETSERVICE_TESTS)
|
||||||
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}testcore)
|
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}testcore)
|
||||||
else()
|
|
||||||
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core )
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core Heart)
|
||||||
|
|
||||||
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||||
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
||||||
|
|
||||||
@ -41,4 +41,4 @@ prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR} "${LANGS}")
|
|||||||
|
|
||||||
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/src" CACHE STRING "" FORCE)
|
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/src" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/src/public/RENAME_ME/global.h")
|
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/src/public/QASecret/global.h")
|
6
src/core/secretcore.qrc
Normal file
6
src/core/secretcore.qrc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/"/>
|
||||||
|
<qresource prefix="/SecretServiceTr">
|
||||||
|
<file>languages/en.qm</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
@ -5,18 +5,23 @@
|
|||||||
//# of this license document, but changing it is not allowed.
|
//# of this license document, but changing it is not allowed.
|
||||||
//#
|
//#
|
||||||
|
|
||||||
#include "RENAME_ME.h"
|
#include "QASecret.h"
|
||||||
|
|
||||||
|
#include <QASecret/keystorage.h>
|
||||||
|
|
||||||
|
|
||||||
namespace RENAME_ME {
|
namespace QASecret {
|
||||||
|
|
||||||
bool init() {
|
bool init() {
|
||||||
initRENAME_MEResources();
|
initSecretServiceResources();
|
||||||
|
|
||||||
|
KeyStorage::initService();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString version() {
|
QString version() {
|
||||||
return RENAME_ME_VERSION;
|
return SECRETSERVICE_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5,23 +5,23 @@
|
|||||||
//# of this license document, but changing it is not allowed.
|
//# of this license document, but changing it is not allowed.
|
||||||
//#
|
//#
|
||||||
|
|
||||||
#include "RENAME_ME/global.h"
|
#include "QASecret/global.h"
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
inline void initRENAME_MEResources() { Q_INIT_RESOURCE(RENAME_ME); }
|
inline void initSecretServiceResources() { Q_INIT_RESOURCE(secretcore); }
|
||||||
|
|
||||||
namespace RENAME_ME {
|
namespace QASecret {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief init main initialize method of The RENAME_ME library
|
* @brief init main initialize method of The SecretService library
|
||||||
* @return true if library initialized successfull
|
* @return true if library initialized successfull
|
||||||
*/
|
*/
|
||||||
bool RENAME_ME_EXPORT init();
|
bool SECRETSERVICE_EXPORT init();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief version This method return string value of a library version
|
* @brief version This method return string value of a library version
|
||||||
* @return string value of a library version
|
* @return string value of a library version
|
||||||
*/
|
*/
|
||||||
QString RENAME_ME_EXPORT version();
|
QString SECRETSERVICE_EXPORT version();
|
||||||
|
|
||||||
};
|
};
|
@ -5,18 +5,18 @@
|
|||||||
//# of this license document, but changing it is not allowed.
|
//# of this license document, but changing it is not allowed.
|
||||||
//#
|
//#
|
||||||
|
|
||||||
#ifndef RENAME_ME_GLOBAL_H
|
#ifndef SecretService_GLOBAL_H
|
||||||
#define RENAME_ME_GLOBAL_H
|
#define SecretService_GLOBAL_H
|
||||||
|
|
||||||
#include <QtCore/qglobal.h>
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
#define RENAME_ME_VERSION "0.89.ae3db6a"
|
#define SECRETSERVICE_VERSION "0.1.fcc1c45"
|
||||||
|
|
||||||
#if defined(RENAME_ME_LIBRARY)
|
#if defined(SECRETSERVICE_LIBRARY)
|
||||||
# define RENAME_ME_EXPORT Q_DECL_EXPORT
|
# define SECRETSERVICE_EXPORT Q_DECL_EXPORT
|
||||||
#else
|
#else
|
||||||
# define RENAME_ME_EXPORT Q_DECL_IMPORT
|
# define SECRETSERVICE_EXPORT Q_DECL_IMPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //RENAME_ME_GLOBAL_H
|
#endif //SecretService_GLOBAL_H
|
||||||
|
|
@ -5,18 +5,18 @@
|
|||||||
//# of this license document, but changing it is not allowed.
|
//# of this license document, but changing it is not allowed.
|
||||||
//#
|
//#
|
||||||
|
|
||||||
#ifndef RENAME_ME_GLOBAL_H
|
#ifndef SecretService_GLOBAL_H
|
||||||
#define RENAME_ME_GLOBAL_H
|
#define SecretService_GLOBAL_H
|
||||||
|
|
||||||
#include <QtCore/qglobal.h>
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
#define RENAME_ME_VERSION "@RENAME_ME_VERSION@"
|
#define SECRETSERVICE_VERSION "@SECRETSERVICE_VERSION@"
|
||||||
|
|
||||||
#if defined(RENAME_ME_LIBRARY)
|
#if defined(SECRETSERVICE_LIBRARY)
|
||||||
# define RENAME_ME_EXPORT Q_DECL_EXPORT
|
# define SECRETSERVICE_EXPORT Q_DECL_EXPORT
|
||||||
#else
|
#else
|
||||||
# define RENAME_ME_EXPORT Q_DECL_IMPORT
|
# define SECRETSERVICE_EXPORT Q_DECL_IMPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //RENAME_ME_GLOBAL_H
|
#endif //SecretService_GLOBAL_H
|
||||||
|
|
42
src/core/src/public/QASecret/keystorage.cpp
Normal file
42
src/core/src/public/QASecret/keystorage.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
//#
|
||||||
|
//# Copyright (C) 2023-2023 QuasarApp.
|
||||||
|
//# Distributed under the GPLv3 software license, see the accompanying
|
||||||
|
//# Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
//# of this license document, but changing it is not allowed.
|
||||||
|
//#
|
||||||
|
|
||||||
|
#include "keystorage.h"
|
||||||
|
#include <QCryptographicHash>
|
||||||
|
|
||||||
|
namespace QASecret {
|
||||||
|
|
||||||
|
KeyStorage::KeyStorage() {}
|
||||||
|
|
||||||
|
QByteArray KeyStorage::add(const QByteArray &value, const QString &alias) {
|
||||||
|
QByteArray&& key = QCryptographicHash::hash(value, QCryptographicHash::Sha256);
|
||||||
|
_storage[key] = value;
|
||||||
|
_aliases[alias] = value;
|
||||||
|
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KeyStorage::remove(const QByteArray &key) {
|
||||||
|
_storage.remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
void KeyStorage::remove(const QString &alias) {
|
||||||
|
_aliases.remove(alias);
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray KeyStorage::get(const QByteArray &key) {
|
||||||
|
auto&& result = _storage.value(key);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray KeyStorage::get(const QString &alias) {
|
||||||
|
auto&& result = _aliases.value(alias);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
65
src/core/src/public/QASecret/keystorage.h
Normal file
65
src/core/src/public/QASecret/keystorage.h
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
//#
|
||||||
|
//# Copyright (C) 2023-2023 QuasarApp.
|
||||||
|
//# Distributed under the GPLv3 software license, see the accompanying
|
||||||
|
//# Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
//# of this license document, but changing it is not allowed.
|
||||||
|
//#
|
||||||
|
|
||||||
|
#ifndef KEYSTORAGE_H
|
||||||
|
#define KEYSTORAGE_H
|
||||||
|
|
||||||
|
#include "qaservice.h"
|
||||||
|
#include <QHash>
|
||||||
|
|
||||||
|
namespace QASecret {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The KeyStorage class the storage store seccrets values on the simple key - value table. Where value is secrete and key is a sha256(secret) hash.
|
||||||
|
*/
|
||||||
|
class KeyStorage: public QuasarAppUtils::Service<KeyStorage>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
KeyStorage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief add adds to storage new value, and return access key.
|
||||||
|
* @param value This is value to save.
|
||||||
|
* @param alias This is simple alias for get key.
|
||||||
|
* @return access key of @a value.
|
||||||
|
*/
|
||||||
|
QByteArray add(const QByteArray& value, const QString& alias = {});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief remove This method remove secret from storage by key.
|
||||||
|
* @param key This is sha256 key of secret
|
||||||
|
*/
|
||||||
|
void remove(const QByteArray& key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief remove This method remove seccret value by alias.
|
||||||
|
* @param alias
|
||||||
|
*/
|
||||||
|
void remove(const QString& alias);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get return value by access key.
|
||||||
|
* @param key this is access key of value.
|
||||||
|
* @return secret value
|
||||||
|
*/
|
||||||
|
QByteArray get(const QByteArray& key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get return value by alias of key.
|
||||||
|
* @param key this is access key of value.
|
||||||
|
* @return secret value
|
||||||
|
*/
|
||||||
|
QByteArray get(const QString& alias);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QHash<QByteArray, QByteArray> _storage;
|
||||||
|
QHash<QString, QByteArray> _aliases;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endif // KEYSTORAGE_H
|
@ -30,7 +30,7 @@ updateGitVars()
|
|||||||
|
|
||||||
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
|
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
|
||||||
|
|
||||||
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME})
|
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}Core)
|
||||||
|
|
||||||
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||||
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
||||||
@ -45,7 +45,7 @@ if (ANDROID)
|
|||||||
set(ANDROID_API_VERSION $ENV{ANDROID_API_VERSION})
|
set(ANDROID_API_VERSION $ENV{ANDROID_API_VERSION})
|
||||||
set(OPENSSL_ROOT_PATH "$ENV{OPENSSL_ROOT_DIR}")
|
set(OPENSSL_ROOT_PATH "$ENV{OPENSSL_ROOT_DIR}")
|
||||||
|
|
||||||
set(RENAME_ME_EXTRA_LIBS
|
set(SecretService_EXTRA_LIBS
|
||||||
${PROJECT_NAME}Library
|
${PROJECT_NAME}Library
|
||||||
# libName
|
# libName
|
||||||
)
|
)
|
||||||
@ -58,7 +58,7 @@ if (ANDROID)
|
|||||||
"${SIGPATH}/quasarapp.keystore"
|
"${SIGPATH}/quasarapp.keystore"
|
||||||
"${SIGPASS_QUASARAPP}"
|
"${SIGPASS_QUASARAPP}"
|
||||||
"${TARGET_DIR}"
|
"${TARGET_DIR}"
|
||||||
"${RENAME_ME_EXTRA_LIBS}")
|
"${SecretService_EXTRA_LIBS}")
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message("NO_SIGN_APP")
|
message("NO_SIGN_APP")
|
||||||
@ -66,7 +66,7 @@ if (ANDROID)
|
|||||||
addDeployAPK(${CURRENT_PROJECT}
|
addDeployAPK(${CURRENT_PROJECT}
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/android"
|
"${CMAKE_CURRENT_LIST_DIR}/android"
|
||||||
"${TARGET_DIR}"
|
"${TARGET_DIR}"
|
||||||
"${RENAME_ME_EXTRA_LIBS}")
|
"${SecretService_EXTRA_LIBS}")
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
|
set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
|
||||||
@ -92,17 +92,17 @@ elseif(IOS)
|
|||||||
# set_xcode_property(${CURRENT_PROJECT} PRODUCT_BUNDLE_IDENTIFIER ${CHEATCARD_PACKAGE_ID} All)
|
# set_xcode_property(${CURRENT_PROJECT} PRODUCT_BUNDLE_IDENTIFIER ${CHEATCARD_PACKAGE_ID} All)
|
||||||
|
|
||||||
set_target_properties(${CURRENT_PROJECT} PROPERTIES
|
set_target_properties(${CURRENT_PROJECT} PROPERTIES
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER ${RENAME_ME_PACKAGE_ID}
|
MACOSX_BUNDLE_GUI_IDENTIFIER ${SECRETSERVICE_PACKAGE_ID}
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${RENAME_ME_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${SECRETSERVICE_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${RENAME_ME_VERSION}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${SECRETSERVICE_VERSION}
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
# Desctop deploying
|
# Desctop deploying
|
||||||
|
|
||||||
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
|
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
|
||||||
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")
|
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
|
||||||
|
|
||||||
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")
|
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<manifest package="@RENAME_ME_PACKAGE_ID@" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@RENAME_ME_VERSION@" android:versionCode="@GIT_COMMIT_COUNT@" android:installLocation="auto">
|
<manifest package="@SECRETSERVICE_PACKAGE_ID@" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@SECRETSERVICE_VERSION@" android:versionCode="@GIT_COMMIT_COUNT@" android:installLocation="auto">
|
||||||
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
||||||
Remove the comment if you do not require these default permissions. -->
|
Remove the comment if you do not require these default permissions. -->
|
||||||
<!-- %%INSERT_PERMISSIONS -->
|
<!-- %%INSERT_PERMISSIONS -->
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"bin": [
|
|
||||||
"src/example/RENAME_ME_example",
|
|
||||||
"src/example/RENAME_ME_example.exe"
|
|
||||||
],
|
|
||||||
"clear": true,
|
|
||||||
"binPrefix": "/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug",
|
|
||||||
"libDir": [
|
|
||||||
"/media/D/builds/CMakeProject",
|
|
||||||
"/home/andrei/Qt/6.5.2/gcc_64",
|
|
||||||
"/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug"
|
|
||||||
],
|
|
||||||
"recursiveDepth": "10",
|
|
||||||
"deploySystem": false,
|
|
||||||
"qmlDir": "../",
|
|
||||||
"deb": true,
|
|
||||||
"qif": true,
|
|
||||||
"zip": true,
|
|
||||||
"ignoreEnv": [
|
|
||||||
"/media/D/builds/CMakeProject/Distro"
|
|
||||||
],
|
|
||||||
"extraLib": "crypto",
|
|
||||||
"targetDir": "/media/D/builds/CMakeProject/Distro",
|
|
||||||
"deployVersion": "0.89.ae3db6a"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
27
src/example/deploy/SecretService.json
Normal file
27
src/example/deploy/SecretService.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"bin": [
|
||||||
|
"src/service/SecretService",
|
||||||
|
"src/service/SecretService.exe"
|
||||||
|
],
|
||||||
|
"clear": true,
|
||||||
|
"binPrefix": "/media/D/builds/build-SecretService-Desktop_Qt_6_6_1_GCC_64bit-Debug",
|
||||||
|
"libDir": [
|
||||||
|
"/media/D/builds/SecretService",
|
||||||
|
"/home/andrei/Qt/6.6.1/gcc_64",
|
||||||
|
"/media/D/builds/build-SecretService-Desktop_Qt_6_6_1_GCC_64bit-Debug"
|
||||||
|
],
|
||||||
|
"recursiveDepth": "10",
|
||||||
|
"deploySystem": false,
|
||||||
|
"qmlDir": "../",
|
||||||
|
"deb": true,
|
||||||
|
"qif": true,
|
||||||
|
"zip": true,
|
||||||
|
"ignoreEnv": [
|
||||||
|
"/media/D/builds/SecretService/Distro"
|
||||||
|
],
|
||||||
|
"extraLib": "crypto",
|
||||||
|
"targetDir": "/media/D/builds/SecretService/Distro",
|
||||||
|
"deployVersion": "0.1.fcc1c45"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"bin": [
|
"bin": [
|
||||||
"src/example/RENAME_ME_example",
|
"src/service/SecretService",
|
||||||
"src/example/RENAME_ME_example.exe"
|
"src/service/SecretService.exe"
|
||||||
],
|
],
|
||||||
"clear": true,
|
"clear": true,
|
||||||
"binPrefix": "@CMAKE_BINARY_DIR@",
|
"binPrefix": "@CMAKE_BINARY_DIR@",
|
||||||
@ -21,7 +21,7 @@
|
|||||||
],
|
],
|
||||||
"extraLib": "crypto",
|
"extraLib": "crypto",
|
||||||
"targetDir": "@CMAKE_SOURCE_DIR@/Distro",
|
"targetDir": "@CMAKE_SOURCE_DIR@/Distro",
|
||||||
"deployVersion": "@RENAME_ME_VERSION@"
|
"deployVersion": "@SECRETSERVICE_VERSION@"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
122
src/service/CMakeLists.txt
Normal file
122
src/service/CMakeLists.txt
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2021-2023 QuasarApp.
|
||||||
|
# Distributed under the GPLv3 software license, see the accompanying
|
||||||
|
# Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
# of this license document, but changing it is not allowed.
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.19)
|
||||||
|
|
||||||
|
get_filename_component(CURRENT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||||
|
|
||||||
|
set(CURRENT_PROJECT "${PROJECT_NAME}_${CURRENT_PROJECT_DIR}")
|
||||||
|
option(SIGN_APP "This option enable od disabled sign apk and aab files" ON)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE SOURCE_CPP
|
||||||
|
"*.cpp" "*.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE SOURCE_QRC
|
||||||
|
"*.qrc"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ALL_SOURCES ${SOURCE_CPP} ${SOURCE_QRC})
|
||||||
|
|
||||||
|
set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
|
set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/private")
|
||||||
|
|
||||||
|
updateGitVars()
|
||||||
|
|
||||||
|
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}Core Patronum)
|
||||||
|
|
||||||
|
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||||
|
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
||||||
|
|
||||||
|
SET(TARGET_DIR "${CMAKE_SOURCE_DIR}/Distro")
|
||||||
|
file(MAKE_DIRECTORY ${TARGET_DIR})
|
||||||
|
|
||||||
|
if (ANDROID)
|
||||||
|
|
||||||
|
set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android CACHE INTERNAL "")
|
||||||
|
set(ENV{ANDROID_API_VERSION} 31)
|
||||||
|
set(ANDROID_API_VERSION $ENV{ANDROID_API_VERSION})
|
||||||
|
set(OPENSSL_ROOT_PATH "$ENV{OPENSSL_ROOT_DIR}")
|
||||||
|
|
||||||
|
set(SecretService_EXTRA_LIBS
|
||||||
|
${PROJECT_NAME}Library
|
||||||
|
# libName
|
||||||
|
)
|
||||||
|
|
||||||
|
if (SIGN_APP)
|
||||||
|
message("SIGN_APP")
|
||||||
|
addDeploySignedAPK(${CURRENT_PROJECT}
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/android"
|
||||||
|
"QuasarAppProject"
|
||||||
|
"${SIGPATH}/quasarapp.keystore"
|
||||||
|
"${SIGPASS_QUASARAPP}"
|
||||||
|
"${TARGET_DIR}"
|
||||||
|
"${SecretService_EXTRA_LIBS}")
|
||||||
|
|
||||||
|
else()
|
||||||
|
message("NO_SIGN_APP")
|
||||||
|
|
||||||
|
addDeployAPK(${CURRENT_PROJECT}
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/android"
|
||||||
|
"${TARGET_DIR}"
|
||||||
|
"${SecretService_EXTRA_LIBS}")
|
||||||
|
|
||||||
|
endif()
|
||||||
|
set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
|
||||||
|
configure_file("${manifest_file}.in" ${manifest_file} @ONLY)
|
||||||
|
|
||||||
|
set(gradle_file "${CMAKE_CURRENT_SOURCE_DIR}/android/build.gradle")
|
||||||
|
configure_file("${gradle_file}.in" ${gradle_file} @ONLY)
|
||||||
|
|
||||||
|
file(GLOB java_files
|
||||||
|
"android/src/com/quasarapp/androidtools/*.java"
|
||||||
|
"android/*.xml"
|
||||||
|
"android/*.gradle"
|
||||||
|
"android/gradlew"
|
||||||
|
"android/gradle.*"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(${name}Android
|
||||||
|
SOURCES ${java_files}
|
||||||
|
)
|
||||||
|
|
||||||
|
elseif(IOS)
|
||||||
|
# set_xcode_property(${CURRENT_PROJECT} PRODUCT_BUNDLE_IDENTIFIER ${CHEATCARD_PACKAGE_ID} All)
|
||||||
|
|
||||||
|
set_target_properties(${CURRENT_PROJECT} PROPERTIES
|
||||||
|
MACOSX_BUNDLE_GUI_IDENTIFIER ${SECRETSERVICE_PACKAGE_ID}
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${SECRETSERVICE_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${SECRETSERVICE_VERSION}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
# Desctop deploying
|
||||||
|
|
||||||
|
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
|
||||||
|
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
|
||||||
|
|
||||||
|
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
|
||||||
|
|
||||||
|
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")
|
||||||
|
|
||||||
|
|
27
src/service/deploy/SecretService.json.in
Normal file
27
src/service/deploy/SecretService.json.in
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"bin": [
|
||||||
|
"src/example/SecretService_example",
|
||||||
|
"src/example/SecretService_example.exe"
|
||||||
|
],
|
||||||
|
"clear": true,
|
||||||
|
"binPrefix": "@CMAKE_BINARY_DIR@",
|
||||||
|
"libDir": [
|
||||||
|
"@CMAKE_SOURCE_DIR@",
|
||||||
|
"@CMAKE_PREFIX_PATH@",
|
||||||
|
"@CMAKE_BINARY_DIR@"
|
||||||
|
],
|
||||||
|
"recursiveDepth": "10",
|
||||||
|
"deploySystem": false,
|
||||||
|
"qmlDir": "../",
|
||||||
|
"deb": true,
|
||||||
|
"qif": true,
|
||||||
|
"zip": true,
|
||||||
|
"ignoreEnv": [
|
||||||
|
"@CMAKE_SOURCE_DIR@/Distro"
|
||||||
|
],
|
||||||
|
"extraLib": "crypto",
|
||||||
|
"targetDir": "@CMAKE_SOURCE_DIR@/Distro",
|
||||||
|
"deployVersion": "@SECRETSERVICE_VERSION@"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
4
src/service/languages/de.ts
Normal file
4
src/service/languages/de.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/en.ts
Normal file
4
src/service/languages/en.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/es.ts
Normal file
4
src/service/languages/es.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/fr.ts
Normal file
4
src/service/languages/fr.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/ja.ts
Normal file
4
src/service/languages/ja.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/pl.ts
Normal file
4
src/service/languages/pl.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/ru.ts
Normal file
4
src/service/languages/ru.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/tr.ts
Normal file
4
src/service/languages/tr.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/uk.ts
Normal file
4
src/service/languages/uk.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
4
src/service/languages/zh.ts
Normal file
4
src/service/languages/zh.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
@ -1,12 +1,10 @@
|
|||||||
//#
|
//#
|
||||||
//# Copyright (C) 2021-2023 QuasarApp.
|
//# Copyright (C) 2021-2023 QuasarApp.
|
||||||
//# Distributed under the lgplv3 software license, see the accompanying
|
//# Distributed under the GPLv3 software license, see the accompanying
|
||||||
//# Everyone is permitted to copy and distribute verbatim copies
|
//# Everyone is permitted to copy and distribute verbatim copies
|
||||||
//# of this license document, but changing it is not allowed.
|
//# of this license document, but changing it is not allowed.
|
||||||
//#
|
//#
|
||||||
|
|
||||||
import QtQuick 2.15
|
int main(int argc, char *argv[]) {
|
||||||
|
return 0;
|
||||||
Item {
|
|
||||||
|
|
||||||
}
|
}
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 9188d4124c1a9f5e01887ba5f969879f7c48922a
|
|
1
submodules/Heart
Submodule
1
submodules/Heart
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f1443bec121175ce8428d96adc8b4eda7defeb02
|
1
submodules/Patronum
Submodule
1
submodules/Patronum
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 98f905485d5e8f19e06306d39aa6887e969969c7
|
@ -20,7 +20,7 @@ set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/units")
|
|||||||
|
|
||||||
|
|
||||||
add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
|
add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
|
||||||
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME})
|
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME}Core)
|
||||||
|
|
||||||
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ tstMain::tstMain() {
|
|||||||
char * argv[] = {nullptr};
|
char * argv[] = {nullptr};
|
||||||
|
|
||||||
_app = new QCoreApplication(argc, argv);
|
_app = new QCoreApplication(argc, argv);
|
||||||
QCoreApplication::setApplicationName("testRENAME_ME");
|
QCoreApplication::setApplicationName("testSecretService");
|
||||||
QCoreApplication::setOrganizationName("QuasarApp");
|
QCoreApplication::setOrganizationName("QuasarApp");
|
||||||
|
|
||||||
auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|
auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user