2 #include <qtsingleapplication.h>
4 #include "MainWindow.h"
5 #include "searchparams.h"
7 #include "local/mac/mac_startup.h"
10 #include "local/win/qtwin.h"
13 int main(int argc, char **argv) {
19 QtSingleApplication app(argc, argv);
20 if (app.sendMessage("Wake up!"))
23 app.setApplicationName(Constants::APP_NAME);
24 app.setOrganizationName(Constants::ORG_NAME);
25 app.setOrganizationDomain(Constants::ORG_DOMAIN);
27 app.setWheelScrollLines(1);
30 const QString locale = QLocale::system().name();
33 QTranslator qtTranslator;
34 qtTranslator.load("qt_" + locale,
35 QLibraryInfo::location(QLibraryInfo::TranslationsPath));
36 app.installTranslator(&qtTranslator);
40 QString dataDir = QLatin1String(PKGDATADIR);
44 QString localeDir = qApp->applicationDirPath() + QDir::separator() + "locale";
45 if (!QFile::exists(localeDir)) {
46 localeDir = dataDir + QDir::separator() + "locale";
48 // qDebug() << "Using locale dir" << localeDir << locale;
49 QTranslator translator;
50 translator.load(locale, localeDir);
51 app.installTranslator(&translator);
52 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
55 mainWin.setWindowTitle(Constants::APP_NAME);
57 // no window icon on Mac
59 if (!QFile::exists(dataDir)) {
60 dataDir = qApp->applicationDirPath() + "/data";
62 const int iconSizes [] = { 16, 22, 24, 32, 48, 64, 128, 256 };
64 for (int i = 0; i < 8; i++) {
65 QString size = QString::number(iconSizes[i]);
66 QString png = dataDir + "/" + size + "x" + size + "/minitube.png";
68 appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
70 mainWin.setWindowIcon(appIcon);
74 if (QtWin::isCompositionEnabled()) {
75 QtWin::extendFrameIntoClientArea(&mainWin);
76 mainWin.setContentsMargins(0, 0, 0, 0);
78 app.setFont(QFont("Segoe UI", 9));
83 app.setActivationWindow(&mainWin, true);
85 // all string literals are UTF-8
86 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
88 if (app.arguments().size() > 1) {
89 QString query = app.arguments().at(1);
90 SearchParams *searchParams = new SearchParams();
91 searchParams->setKeywords(query);
92 mainWin.showMedia(searchParams);