+#ifdef Q_OS_MAC
+#include "mac_startup.h"
+#endif
+
+void showWindow(QtSingleApplication &app, const QString &pkgDataDir) {
+ MainWindow *mainWin = new MainWindow();
+
+#ifndef APP_MAC
+ QIcon appIcon;
+ if (!pkgDataDir.isEmpty()) {
+ appIcon = IconUtils::icon(Constants::UNIX_NAME);
+ } else {
+ QString dataDir = qApp->applicationDirPath() + "/data";
+ const int iconSizes[] = {16, 22, 32, 48, 64, 128, 256, 512};
+ for (int i = 0; i < 8; i++) {
+ QString size = QString::number(iconSizes[i]);
+ QString png = dataDir + '/' + size + 'x' + size + '/' + Constants::UNIX_NAME +
+ QLatin1String(".png");
+ appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
+ }
+ }
+ if (appIcon.isNull()) appIcon.addFile(":/images/app.png");
+ mainWin->setWindowIcon(appIcon);
+#endif
+
+ mainWin->connect(&app, SIGNAL(messageReceived(const QString &)), mainWin,
+ SLOT(messageReceived(const QString &)));
+ app.setActivationWindow(mainWin, true);
+
+ mainWin->show();
+}