]> git.sur5r.net Git - minitube/blob - src/main.cpp
window icon
[minitube] / src / main.cpp
1 #include <QtGui>
2 #include <qtsingleapplication.h>
3 #include "Constants.h"
4 #include "MainWindow.h"
5
6 int main(int argc, char **argv) {
7
8     QtSingleApplication app(argc, argv);
9     if (app.sendMessage("Wake up!"))
10         return 0;
11
12     app.setApplicationName(Constants::APP_NAME);
13     app.setOrganizationName(Constants::ORG_NAME);
14     app.setOrganizationDomain(Constants::ORG_DOMAIN);
15
16     QString locale = QLocale::system().name();
17
18     // qt translations
19     QTranslator qtTranslator;
20     qtTranslator.load("qt_" + QLocale::system().name(),
21                       QLibraryInfo::location(QLibraryInfo::TranslationsPath));
22     app.installTranslator(&qtTranslator);
23
24     // app translations
25     QString dataDir = QLatin1String(PKGDATADIR);
26     QString localeDir = dataDir + QDir::separator() + "locale";
27     // if app was not "installed" use the app directory
28     if (!QFile::exists(localeDir)) {
29         localeDir = qApp->applicationDirPath() + QDir::separator() + "locale";
30         // qDebug() << "Using locale dir" << localeDir << locale;
31     }
32     QTranslator translator;
33     translator.load(locale, localeDir);
34     app.installTranslator(&translator);
35     QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
36
37     MainWindow mainWin;
38     mainWin.setWindowTitle(Constants::APP_NAME);
39
40     if (!QFile::exists(dataDir)) {
41         dataDir = qApp->applicationDirPath() + "/data";
42     }
43     const int iconSizes [] = { 16, 22, 24, 32, 48, 64, 128, 256 };
44     QIcon appIcon;
45     for (int i = 0; i < 8; i++) {
46         QString size = QString::number(iconSizes[i]);
47         QString png = dataDir + "/" + size + "x" + size + "/minitube.png";
48         // qDebug() << png;
49         appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
50         // appIcon.addPixmap(QPixmap(png));
51     }
52     mainWin.setWindowIcon(appIcon);
53
54     mainWin.show();
55
56     app.setActivationWindow(&mainWin, true);
57
58     // all string literals are UTF-8
59     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
60
61     return app.exec();
62 }