Merge remote-tracking branch 'remotes/origin/dev' into feature/new-gui

This commit is contained in:
vladimir.kuznetsov 2023-06-27 13:38:06 +03:00
commit d0c9c1043c
179 changed files with 3824 additions and 4107 deletions

View file

@ -1,13 +1,18 @@
#include "amnezia_application.h"
#include <QClipboard>
#include <QFontDatabase>
#include <QQuickStyle>
#include <QMimeData>
#include <QStandardPaths>
#include <QTextDocument>
#include <QTimer>
#include <QTranslator>
#include <QQuickStyle>
#include "defines.h"
#include "core/servercontroller.h"
#include "logger.h"
#include "version.h"
#include "platforms/ios/QRCodeReaderBase.h"
@ -28,7 +33,7 @@ AmneziaApplication::AmneziaApplication(int &argc, char *argv[], bool allowSecond
setQuitOnLastWindowClosed(false);
// Fix config file permissions
#ifdef Q_OS_LINUX
#ifdef Q_OS_LINUX && !defined(Q_OS_ANDROID)
{
QSettings s(ORGANIZATION_NAME, APPLICATION_NAME);
s.setValue("permFixed", true);
@ -41,7 +46,6 @@ AmneziaApplication::AmneziaApplication(int &argc, char *argv[], bool allowSecond
QString configLoc2 = QStandardPaths::standardLocations(QStandardPaths::ConfigLocation).first() + "/"
+ ORGANIZATION_NAME + "/" + APPLICATION_NAME + "/" + APPLICATION_NAME + ".conf";
QFile::setPermissions(configLoc2, QFileDevice::ReadOwner | QFileDevice::WriteOwner);
#endif
m_settings = std::shared_ptr<Settings>(new Settings);
@ -126,16 +130,32 @@ void AmneziaApplication::init()
// m_uiLogic->showOnStartup();
// #endif
// // TODO - fix
// #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
// if (isPrimary()) {
// QObject::connect(this, &SingleApplication::instanceStarted, m_uiLogic, [this](){
// qDebug() << "Secondary instance started, showing this window instead";
// emit m_uiLogic->show();
// emit m_uiLogic->raise();
// });
// }
// #endif
#endif
// TODO - fix
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
if (isPrimary()) {
QObject::connect(this, &SingleApplication::instanceStarted, m_uiLogic, [this](){
qDebug() << "Secondary instance started, showing this window instead";
emit m_uiLogic->show();
emit m_uiLogic->raise();
});
}
#endif
// Android TextField clipboard workaround
// https://bugreports.qt.io/browse/QTBUG-113461
#ifdef Q_OS_ANDROID
QObject::connect(qApp, &QApplication::applicationStateChanged, [](Qt::ApplicationState state) {
if (state == Qt::ApplicationActive) {
if (qApp->clipboard()->mimeData()->formats().contains("text/html")) {
QTextDocument doc;
doc.setHtml(qApp->clipboard()->mimeData()->html());
qApp->clipboard()->setText(doc.toPlainText());
}
}
});
#endif
}
void AmneziaApplication::registerTypes()