SingleApplication

This commit is contained in:
tobtoht
2022-03-03 23:27:54 +01:00
parent a8d33099a2
commit df1eef8399
6 changed files with 30 additions and 1 deletions
+4
View File
@@ -23,6 +23,9 @@ endif()
find_package(Qt5 REQUIRED COMPONENTS ${QT5_COMPONENTS})
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
add_subdirectory(third-party/singleapplication)
add_subdirectory(openpgp)
qt5_add_resources(RESOURCES assets.qrc assets_tor.qrc)
@@ -250,6 +253,7 @@ target_link_libraries(feather
${ZLIB_LIBRARIES}
${LIBZIP_LIBRARIES}
${ZBAR_LIBRARIES}
SingleApplication::SingleApplication
)
if(DEVICE_TREZOR_READY)
+15
View File
@@ -115,6 +115,21 @@ void WindowManager::showWarningMessageBox(const QString &title, const QString &m
msgBox.exec();
}
void WindowManager::raise() {
if (!m_windows.isEmpty()) {
m_windows.first()->bringToFront();
}
else if (m_wizard) {
m_wizard->show();
m_wizard->raise();
m_wizard->activateWindow();
}
else {
// This shouldn't happen
this->close();
}
}
// ######################## WALLET OPEN ########################
void WindowManager::tryOpenWallet(const QString &path, const QString &password) {
+1
View File
@@ -26,6 +26,7 @@ public:
void showWizard(WalletWizard::Page startPage);
void changeSkin(const QString &skinName);
void restartApplication(const QString &binaryFilename);
void raise();
signals:
void torSettingsChanged();
+6 -1
View File
@@ -5,6 +5,7 @@
#include <QApplication>
#include <QtCore>
#include <QtGui>
#include <singleapplication.h>
#include "cli.h"
#include "config-feather.h"
@@ -117,7 +118,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
QApplication::setDesktopSettingsAware(true); // use system font
QApplication::setApplicationVersion(FEATHER_VERSION);
QApplication app(argc, argv);
SingleApplication app(argc, argv);
QApplication::setQuitOnLastWindowClosed(false);
QApplication::setApplicationName("FeatherWallet");
@@ -224,5 +225,9 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
WindowManager windowManager;
QObject::connect(&app, &SingleApplication::instanceStarted, [&windowManager]() {
windowManager.raise();
});
return QApplication::exec();
}