-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.cpp
More file actions
64 lines (55 loc) · 2.35 KB
/
Copy pathmain.cpp
File metadata and controls
64 lines (55 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <QApplication>
#include <QDir>
#include <QLocale>
#include <QLockFile>
#include <QStandardPaths>
#include <QTranslator>
#include "mainwindow.h"
#ifndef VERSION
#define VERSION "?.?.?.?"
#endif
int main(int argc, char *argv[])
{
// Set Qt platform to XCB (X11) if not already set and we're in X11 environment
if (qEnvironmentVariableIsEmpty("QT_QPA_PLATFORM")) {
if (!qEnvironmentVariableIsEmpty("DISPLAY") && qEnvironmentVariableIsEmpty("WAYLAND_DISPLAY")) {
qputenv("QT_QPA_PLATFORM", "xcb");
}
}
QApplication app(argc, argv);
const QString user = QProcessEnvironment::systemEnvironment().value("USER");
const QString runtimeDir = qEnvironmentVariableIsEmpty("XDG_RUNTIME_DIR")
? QStandardPaths::writableLocation(QStandardPaths::CacheLocation)
: qEnvironmentVariable("XDG_RUNTIME_DIR");
QDir().mkpath(runtimeDir);
const QString lockPath = QString("%1/mx-usb-unmounter_%2.lock").arg(runtimeDir, user);
QLockFile lockfile(lockPath);
if (!lockfile.tryLock()) {
qint64 pid = -1;
QString host;
QString appName;
const bool hasInfo = lockfile.getLockInfo(&pid, &host, &appName);
qWarning() << "Another instance is already running. Lock file:" << lockPath
<< (hasInfo ? QStringLiteral("Owner PID: %1").arg(pid)
: QStringLiteral("Owner PID: unknown"))
<< (hasInfo ? QStringLiteral("Host: %1").arg(host)
: QStringLiteral("Host: unknown"))
<< (hasInfo ? QStringLiteral("App: %1").arg(appName)
: QStringLiteral("App: unknown"));
return EXIT_FAILURE;
}
QApplication::setWindowIcon(QIcon::fromTheme(QApplication::applicationName()));
QApplication::setOrganizationName("MX-Linux");
QApplication::setApplicationVersion(VERSION);
QTranslator qtTran;
if (qtTran.load(QString("qt_") + QLocale::system().name())) {
QApplication::installTranslator(&qtTran);
}
QTranslator appTran;
if (appTran.load(QString("mx-usb-unmounter_") + QLocale::system().name(), "/usr/share/mx-usb-unmounter/locale")) {
QApplication::installTranslator(&appTran);
}
MainWindow w(argv[1]);
w.hide();
return QApplication::exec();
}