forked from blue/squawk
testing, ability to build without kwallet, translations, disabling unsupported storage types in combobox
This commit is contained in:
parent
543538fc56
commit
b95028e33e
15 changed files with 315 additions and 163 deletions
|
@ -20,13 +20,13 @@ set(squawkCORE_SRC
|
|||
adapterFuctions.cpp
|
||||
)
|
||||
|
||||
add_subdirectory(passwordStorageEngines)
|
||||
|
||||
# Tell CMake to create the helloworld executable
|
||||
add_library(squawkCORE ${squawkCORE_SRC})
|
||||
|
||||
add_subdirectory(passwordStorageEngines)
|
||||
|
||||
if(SYSTEM_QXMPP)
|
||||
find_package(QXmpp CONFIG REQUIRED)
|
||||
get_target_property(QXMPP_INTERFACE_INCLUDE_DIRECTORIES QXmpp::QXmpp INTERFACE_INCLUDE_DIRECTORIES)
|
||||
target_include_directories(squawkCORE PUBLIC ${QXMPP_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
endif()
|
||||
|
@ -39,4 +39,6 @@ target_link_libraries(squawkCORE Qt5::Xml)
|
|||
target_link_libraries(squawkCORE qxmpp)
|
||||
target_link_libraries(squawkCORE lmdb)
|
||||
target_link_libraries(squawkCORE simpleCrypt)
|
||||
target_link_libraries(squawkCORE kwalletPSE)
|
||||
if (WITH_KWALLET)
|
||||
target_link_libraries(squawkCORE kwalletPSE)
|
||||
endif()
|
||||
|
|
|
@ -1,36 +1,42 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
project(pse)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(Qt5Core CONFIG REQUIRED)
|
||||
find_package(Qt5Gui CONFIG REQUIRED)
|
||||
find_package(KF5Wallet CONFIG REQUIRED)
|
||||
if (WITH_KWALLET)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
get_target_property(KWALLET_INTERFACE_INCLUDE_DIRECTORIES KF5::Wallet INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_target_property(Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
|
||||
find_package(Qt5Core CONFIG REQUIRED)
|
||||
find_package(Qt5Gui CONFIG REQUIRED)
|
||||
|
||||
set(kwalletPSE_SRC
|
||||
kwallet.cpp
|
||||
)
|
||||
get_target_property(KWALLET_INTERFACE_INCLUDE_DIRECTORIES KF5::Wallet INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_target_property(Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
|
||||
|
||||
add_library(kwalletPSE ${kwalletPSE_SRC})
|
||||
set(kwalletPSE_SRC
|
||||
kwallet.cpp
|
||||
)
|
||||
|
||||
add_library(kwalletPSE ${kwalletPSE_SRC})
|
||||
|
||||
target_include_directories(kwalletPSE PUBLIC ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(kwalletPSE PUBLIC ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
|
||||
target_include_directories(kwalletPSE PUBLIC ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(kwalletPSE PUBLIC ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
target_link_libraries(kwalletPSE Qt5::Core)
|
||||
|
||||
target_link_libraries(kwalletPSE Qt5::Core)
|
||||
set(kwalletW_SRC
|
||||
wrappers/kwallet.cpp
|
||||
)
|
||||
|
||||
set(kwalletW_SRC
|
||||
wrappers/kwallet.cpp
|
||||
)
|
||||
add_library(kwalletWrapper SHARED ${kwalletW_SRC})
|
||||
|
||||
target_include_directories(kwalletWrapper PUBLIC ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(kwalletWrapper PUBLIC ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
|
||||
target_link_libraries(kwalletWrapper KF5::Wallet)
|
||||
target_link_libraries(kwalletWrapper Qt5::Core)
|
||||
|
||||
install(TARGETS kwalletWrapper DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
add_library(kwalletWrapper SHARED ${kwalletW_SRC})
|
||||
|
||||
target_include_directories(kwalletWrapper PUBLIC ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(kwalletWrapper PUBLIC ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES})
|
||||
|
||||
target_link_libraries(kwalletWrapper KF5::Wallet)
|
||||
target_link_libraries(kwalletWrapper Qt5::Core)
|
||||
|
||||
install(TARGETS kwalletWrapper DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
|
|
@ -28,7 +28,7 @@ Core::PSE::KWallet::CreateFolder Core::PSE::KWallet::createFolder = 0;
|
|||
Core::PSE::KWallet::SetFolder Core::PSE::KWallet::setFolder = 0;
|
||||
|
||||
Core::PSE::KWallet::SupportState Core::PSE::KWallet::sState = Core::PSE::KWallet::initial;
|
||||
QLibrary Core::PSE::KWallet::lib("./libkwalletWrapper.so");
|
||||
QLibrary Core::PSE::KWallet::lib("kwalletWrapper");
|
||||
|
||||
Core::PSE::KWallet::KWallet():
|
||||
QObject(),
|
||||
|
@ -41,6 +41,11 @@ Core::PSE::KWallet::KWallet():
|
|||
if (sState == initial) {
|
||||
lib.load();
|
||||
|
||||
if (!lib.isLoaded()) { //fallback from the build directory
|
||||
lib.setFileName("./core/passwordStorageEngines/libkwalletWrapper.so");
|
||||
lib.load();
|
||||
}
|
||||
|
||||
if (lib.isLoaded()) {
|
||||
openWallet = (OpenWallet) lib.resolve("openWallet");
|
||||
networkWallet = (NetworkWallet) lib.resolve("networkWallet");
|
||||
|
|
|
@ -27,8 +27,10 @@ Core::Squawk::Squawk(QObject* parent):
|
|||
accounts(),
|
||||
amap(),
|
||||
network(),
|
||||
waitingForAccounts(0),
|
||||
kwallet()
|
||||
waitingForAccounts(0)
|
||||
#ifdef WITH_KWALLET
|
||||
,kwallet()
|
||||
#endif
|
||||
{
|
||||
connect(&network, &NetworkAccess::fileLocalPathResponse, this, &Squawk::fileLocalPathResponse);
|
||||
connect(&network, &NetworkAccess::downloadFileProgress, this, &Squawk::downloadFileProgress);
|
||||
|
@ -36,13 +38,15 @@ Core::Squawk::Squawk(QObject* parent):
|
|||
connect(&network, &NetworkAccess::uploadFileProgress, this, &Squawk::uploadFileProgress);
|
||||
connect(&network, &NetworkAccess::uploadFileError, this, &Squawk::uploadFileError);
|
||||
|
||||
|
||||
#ifdef WITH_KWALLET
|
||||
if (kwallet.supportState() == PSE::KWallet::success) {
|
||||
qDebug() << "KWallet support detected";
|
||||
connect(&kwallet, &PSE::KWallet::opened, this, &Squawk::onWalletOpened);
|
||||
connect(&kwallet, &PSE::KWallet::rejectPassword, this, &Squawk::onWalletRejectPassword);
|
||||
connect(&kwallet, &PSE::KWallet::responsePassword, this, &Squawk::onWalletResponsePassword);
|
||||
|
||||
Shared::Global::setSupported("KWallet", true);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Core::Squawk::~Squawk()
|
||||
|
@ -236,9 +240,11 @@ void Core::Squawk::onAccountConnectionStateChanged(Shared::ConnectionState p_sta
|
|||
}
|
||||
break;
|
||||
case Shared::ConnectionState::connected:
|
||||
#ifdef WITH_KWALLET
|
||||
if (acc->getPasswordType() == Shared::AccountPassword::kwallet && kwallet.supportState() == PSE::KWallet::success) {
|
||||
kwallet.requestWritePassword(acc->getName(), acc->getPassword(), true);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -415,12 +421,14 @@ void Core::Squawk::modifyAccountRequest(const QString& name, const QMap<QString,
|
|||
acc->setPasswordType(Shared::Global::fromInt<Shared::AccountPassword>(mItr->toInt()));
|
||||
}
|
||||
|
||||
#ifdef WITH_KWALLET
|
||||
if (acc->getPasswordType() == Shared::AccountPassword::kwallet
|
||||
&& kwallet.supportState() == PSE::KWallet::success
|
||||
&& !needToReconnect
|
||||
) {
|
||||
kwallet.requestWritePassword(acc->getName(), acc->getPassword(), true);
|
||||
}
|
||||
#endif
|
||||
|
||||
emit changeAccount(name, map);
|
||||
}
|
||||
|
@ -716,11 +724,15 @@ void Core::Squawk::parseAccount(
|
|||
break;
|
||||
case Shared::AccountPassword::kwallet: {
|
||||
addAccount(login, server, QString(), name, resource, passwordType);
|
||||
#ifdef WITH_KWALLET
|
||||
if (kwallet.supportState() == PSE::KWallet::success) {
|
||||
kwallet.requestReadPassword(name);
|
||||
} else {
|
||||
#endif
|
||||
emit requestPassword(name);
|
||||
#ifdef WITH_KWALLET
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,9 @@
|
|||
#include "networkaccess.h"
|
||||
#include "external/simpleCrypt/simplecrypt.h"
|
||||
|
||||
#ifdef WITH_KWALLET
|
||||
#include "passwordStorageEngines/kwallet.h"
|
||||
#endif
|
||||
|
||||
namespace Core
|
||||
{
|
||||
|
@ -116,7 +118,10 @@ private:
|
|||
Shared::Availability state;
|
||||
NetworkAccess network;
|
||||
uint8_t waitingForAccounts;
|
||||
|
||||
#ifdef WITH_KWALLET
|
||||
PSE::KWallet kwallet;
|
||||
#endif
|
||||
|
||||
private slots:
|
||||
void addAccount(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue