56 |
|
|
57 |
#define QSAMPLER_XUNIQUE "qsamplerApplication" |
#define QSAMPLER_XUNIQUE "qsamplerApplication" |
58 |
|
|
59 |
#if QT_VERSION < 0x050000 |
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) |
60 |
#ifdef CONFIG_X11 |
#ifdef CONFIG_X11 |
61 |
|
|
62 |
#include <unistd.h> /* for gethostname() */ |
#include <unistd.h> /* for gethostname() */ |
78 |
// Constructor. |
// Constructor. |
79 |
qsamplerApplication::qsamplerApplication ( int& argc, char **argv ) |
qsamplerApplication::qsamplerApplication ( int& argc, char **argv ) |
80 |
: QApplication(argc, argv), |
: QApplication(argc, argv), |
81 |
m_pQtTranslator(NULL), m_pMyTranslator(NULL), m_pWidget(NULL) |
m_pQtTranslator(nullptr), m_pMyTranslator(nullptr), m_pWidget(nullptr) |
82 |
{ |
{ |
83 |
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) |
84 |
|
QApplication::setApplicationName(QSAMPLER_TITLE); |
85 |
|
QApplication::setApplicationDisplayName(QSAMPLER_TITLE); |
86 |
|
// QSAMPLER_TITLE " - " + QObject::tr(QSAMPLER_SUBTITLE)); |
87 |
|
#endif |
88 |
// Load translation support. |
// Load translation support. |
89 |
QLocale loc; |
QLocale loc; |
90 |
if (loc.language() != QLocale::C) { |
if (loc.language() != QLocale::C) { |
139 |
} |
} |
140 |
} |
} |
141 |
#ifdef CONFIG_XUNIQUE |
#ifdef CONFIG_XUNIQUE |
142 |
#if QT_VERSION < 0x050000 |
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) |
143 |
#ifdef CONFIG_X11 |
#ifdef CONFIG_X11 |
144 |
m_pDisplay = NULL; |
m_pDisplay = nullptr; |
145 |
m_aUnique = 0; |
m_aUnique = 0; |
146 |
m_wOwner = 0; |
m_wOwner = 0; |
147 |
#endif // CONFIG_X11 |
#endif // CONFIG_X11 |
148 |
#else |
#else |
149 |
m_pMemory = NULL; |
m_pMemory = nullptr; |
150 |
m_pServer = NULL; |
m_pServer = nullptr; |
151 |
#endif |
#endif |
152 |
#endif // CONFIG_XUNIQUE |
#endif // CONFIG_XUNIQUE |
153 |
} |
} |
157 |
qsamplerApplication::~qsamplerApplication (void) |
qsamplerApplication::~qsamplerApplication (void) |
158 |
{ |
{ |
159 |
#ifdef CONFIG_XUNIQUE |
#ifdef CONFIG_XUNIQUE |
160 |
#if QT_VERSION >= 0x050000 |
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) |
161 |
if (m_pServer) { |
if (m_pServer) { |
162 |
m_pServer->close(); |
m_pServer->close(); |
163 |
delete m_pServer; |
delete m_pServer; |
164 |
m_pServer = NULL; |
m_pServer = nullptr; |
165 |
} |
} |
166 |
if (m_pMemory) { |
if (m_pMemory) { |
167 |
delete m_pMemory; |
delete m_pMemory; |
168 |
m_pMemory = NULL; |
m_pMemory = nullptr; |
169 |
} |
} |
170 |
#endif |
#endif |
171 |
#endif // CONFIG_XUNIQUE |
#endif // CONFIG_XUNIQUE |
179 |
{ |
{ |
180 |
m_pWidget = pWidget; |
m_pWidget = pWidget; |
181 |
#ifdef CONFIG_XUNIQUE |
#ifdef CONFIG_XUNIQUE |
182 |
#if QT_VERSION < 0x050000 |
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) |
183 |
#ifdef CONFIG_X11 |
#ifdef CONFIG_X11 |
184 |
m_wOwner = m_pWidget->winId(); |
m_wOwner = m_pWidget->winId(); |
185 |
if (m_pDisplay && m_wOwner) { |
if (m_pDisplay && m_wOwner) { |
198 |
bool qsamplerApplication::setup (void) |
bool qsamplerApplication::setup (void) |
199 |
{ |
{ |
200 |
#ifdef CONFIG_XUNIQUE |
#ifdef CONFIG_XUNIQUE |
201 |
#if QT_VERSION < 0x050000 |
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) |
202 |
#ifdef CONFIG_X11 |
#ifdef CONFIG_X11 |
203 |
m_pDisplay = QX11Info::display(); |
m_pDisplay = QX11Info::display(); |
204 |
if (m_pDisplay) { |
if (m_pDisplay) { |
309 |
|
|
310 |
|
|
311 |
#ifdef CONFIG_XUNIQUE |
#ifdef CONFIG_XUNIQUE |
312 |
#if QT_VERSION < 0x050000 |
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) |
313 |
#ifdef CONFIG_X11 |
#ifdef CONFIG_X11 |
314 |
|
|
315 |
void qsamplerApplication::x11PropertyNotify ( Window w ) |
void qsamplerApplication::x11PropertyNotify ( Window w ) |
375 |
if (pSocket) { |
if (pSocket) { |
376 |
const qint64 nread = pSocket->bytesAvailable(); |
const qint64 nread = pSocket->bytesAvailable(); |
377 |
if (nread > 0) { |
if (nread > 0) { |
378 |
QByteArray data = pSocket->read(nread); |
const QByteArray data = pSocket->read(nread); |
379 |
// Just make it always shows up fine... |
// Just make it always shows up fine... |
380 |
m_pWidget->hide(); |
m_pWidget->hide(); |
381 |
m_pWidget->show(); |
m_pWidget->show(); |
410 |
char cmd[80]; |
char cmd[80]; |
411 |
|
|
412 |
// Reinstall default handler; prevent race conditions... |
// Reinstall default handler; prevent race conditions... |
413 |
signal(signo, SIG_DFL); |
::signal(signo, SIG_DFL); |
414 |
|
|
415 |
static const char *shell = "/bin/sh"; |
static const char *shell = "/bin/sh"; |
416 |
static const char *format = "gdb -q --batch --pid=%d" |
static const char *format = "gdb -q --batch --pid=%d" |
426 |
|
|
427 |
// Fork child... |
// Fork child... |
428 |
if (pid == 0) { |
if (pid == 0) { |
429 |
execl(shell, shell, "-c", cmd, NULL); |
execl(shell, shell, "-c", cmd, nullptr); |
430 |
_exit(1); |
_exit(1); |
431 |
return; |
return; |
432 |
} |
} |
456 |
Q_INIT_RESOURCE(qsampler); |
Q_INIT_RESOURCE(qsampler); |
457 |
#ifdef CONFIG_STACKTRACE |
#ifdef CONFIG_STACKTRACE |
458 |
#if defined(__GNUC__) && defined(Q_OS_LINUX) |
#if defined(__GNUC__) && defined(Q_OS_LINUX) |
459 |
signal(SIGILL, stacktrace); |
::signal(SIGILL, stacktrace); |
460 |
signal(SIGFPE, stacktrace); |
::signal(SIGFPE, stacktrace); |
461 |
signal(SIGSEGV, stacktrace); |
::signal(SIGSEGV, stacktrace); |
462 |
signal(SIGABRT, stacktrace); |
::signal(SIGABRT, stacktrace); |
463 |
signal(SIGBUS, stacktrace); |
::signal(SIGBUS, stacktrace); |
464 |
#endif |
#endif |
465 |
#endif |
#endif |
466 |
qsamplerApplication app(argc, argv); |
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) |
467 |
#if QT_VERSION >= 0x050600 |
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); |
|
app.setAttribute(Qt::AA_EnableHighDpiScaling); |
|
468 |
#endif |
#endif |
469 |
|
qsamplerApplication app(argc, argv); |
470 |
|
|
471 |
#if defined(__APPLE__) // Toshi Nagata 20080105 |
#if defined(__APPLE__) // Toshi Nagata 20080105 |
472 |
{ |
{ |
473 |
// Set the plugin path to @exetutable_path/../plugins |
// Set the plugin path to @exetutable_path/../plugins |
500 |
// Dark themes grayed/disabled color group fix... |
// Dark themes grayed/disabled color group fix... |
501 |
QPalette pal(app.palette()); |
QPalette pal(app.palette()); |
502 |
if (pal.base().color().value() < 0x7f) { |
if (pal.base().color().value() < 0x7f) { |
503 |
#if QT_VERSION >= 0x050000 |
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) |
504 |
const QColor& color = pal.window().color(); |
const QColor& color = pal.window().color(); |
505 |
const int iGroups = int(QPalette::Active | QPalette::Inactive) + 1; |
const int iGroups = int(QPalette::Active | QPalette::Inactive) + 1; |
506 |
for (int i = 0; i < iGroups; ++i) { |
for (int i = 0; i < iGroups; ++i) { |