1
0
mirror of https://github.com/Swordfish90/cool-retro-term.git synced 2026-02-08 00:32:27 +00:00

Change the single application library with a better one.

This commit is contained in:
Filippo Scognamiglio
2026-01-06 18:43:28 +01:00
parent f58710c76f
commit f809041f85
5 changed files with 18 additions and 17 deletions

6
.gitmodules vendored
View File

@@ -2,6 +2,6 @@
path = qmltermwidget
url = https://github.com/Swordfish90/qmltermwidget
branch = unstable
[submodule "singleapplication"]
path = singleapplication
url = https://github.com/itay-grudev/SingleApplication.git
[submodule "KDSingleApplication"]
path = KDSingleApplication
url = https://github.com/KDAB/KDSingleApplication.git

1
KDSingleApplication Submodule

Submodule KDSingleApplication added at 1848dd64e8

View File

@@ -1,8 +1,7 @@
QT += qml quick widgets sql quickcontrols2
DEFINES += QAPPLICATION_CLASS=QApplication
TARGET = cool-retro-term
include(../singleapplication/singleapplication.pri)
include(../KDSingleApplication/kdsingleapplication.pri)
DESTDIR = $$OUT_PWD/../

View File

@@ -8,7 +8,7 @@
#include <QIcon>
#include <QQuickStyle>
#include <singleapplication.h>
#include <kdsingleapplication.h>
#include <QDebug>
#include <stdlib.h>
@@ -80,12 +80,18 @@ int main(int argc, char *argv[])
return 0;
}
SingleApplication app(argc, argv, true);
QApplication app(argc, argv);
app.setAttribute(Qt::AA_MacDontSwapCtrlAndMeta, true);
app.setApplicationName(QStringLiteral("cool-retro-term"));
app.setOrganizationName(QStringLiteral("cool-retro-term"));
app.setOrganizationDomain(QStringLiteral("cool-retro-term"));
if (app.isSecondary()) {
app.sendMessage("new-window");
return 0;
KDSingleApplication singleApp(QStringLiteral("cool-retro-term"));
if (!singleApp.isPrimaryInstance()) {
if (singleApp.sendMessage("new-window"))
return 0;
qWarning() << "KDSingleApplication: primary not reachable, continuing as independent instance.";
}
QQmlApplicationEngine engine;
@@ -101,9 +107,6 @@ int main(int argc, char *argv[])
app.setWindowIcon(QIcon(":../icons/32x32/cool-retro-term.png"));
#endif
app.setOrganizationName("cool-retro-term");
app.setOrganizationDomain("cool-retro-term");
// Manage command line arguments from the cpp side
QStringList args = app.arguments();
@@ -150,9 +153,8 @@ int main(int argc, char *argv[])
QMetaObject::invokeMethod(rootObject, "createWindow", Qt::QueuedConnection);
};
QObject::connect(&app, &SingleApplication::receivedMessage, &app,
[&requestNewWindow](quint32 instanceId, QByteArray message) {
Q_UNUSED(instanceId);
QObject::connect(&singleApp, &KDSingleApplication::messageReceived, &app,
[&requestNewWindow](const QByteArray &message) {
if (message.isEmpty() || message == QByteArray("new-window"))
requestNewWindow();
});