2 #include <qtsingleapplication.h>
4 #include "mainwindow.h"
5 #include "searchparams.h"
6 #include "iconloader/qticonloader.h"
11 #include "mac_startup.h"
14 int main(int argc, char **argv) {
20 QtSingleApplication app(argc, argv);
21 QString message = app.arguments().size() > 1 ? app.arguments().at(1) : "";
22 if (message == "--help") {
23 MainWindow::printHelp();
26 if (app.sendMessage(message))
29 app.setApplicationName(Constants::NAME);
30 app.setOrganizationName(Constants::ORG_NAME);
31 app.setOrganizationDomain(Constants::ORG_DOMAIN);
33 app.setWheelScrollLines(1);
35 app.setAttribute(Qt::AA_DontShowIconsInMenus);
38 Extra::appSetup(&app);
40 QFile cssFile(":/style.css");
41 cssFile.open(QFile::ReadOnly);
42 QString styleSheet = QLatin1String(cssFile.readAll());
43 app.setStyleSheet(styleSheet);
47 QTranslator qtTranslator;
48 qtTranslator.load("qt_" + QLocale::system().name(),
49 QLibraryInfo::location(QLibraryInfo::TranslationsPath));
50 app.installTranslator(&qtTranslator);
54 QString dataDir = QLatin1String(PKGDATADIR);
58 QString localeDir = qApp->applicationDirPath() + "/locale";
59 if (!QDir(localeDir).exists()) {
60 localeDir = dataDir + "/locale";
62 // qDebug() << "Using locale dir" << localeDir << locale;
63 QTranslator translator;
64 translator.load(QLocale::system(), localeDir);
65 app.installTranslator(&translator);
66 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
69 mainWin.setWindowTitle(Constants::NAME);
72 Extra::windowSetup(&mainWin);
75 // no window icon on Mac
78 if (QDir(dataDir).exists()) {
79 appIcon = QtIconLoader::icon(Constants::UNIX_NAME);
81 dataDir = qApp->applicationDirPath() + "/data";
82 const int iconSizes [] = { 16, 22, 32, 48, 64, 128, 256, 512 };
83 for (int i = 0; i < 8; i++) {
84 QString size = QString::number(iconSizes[i]);
85 QString png = dataDir + "/" + size + "x" + size + "/" + Constants::UNIX_NAME + ".png";
86 appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
89 if (appIcon.isNull()) {
90 appIcon.addFile(":/images/app.png");
92 mainWin.setWindowIcon(appIcon);
97 mainWin.connect(&app, SIGNAL(messageReceived(const QString &)), &mainWin, SLOT(messageReceived(const QString &)));
98 app.setActivationWindow(&mainWin, true);
100 // all string literals are UTF-8
101 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
103 if (app.arguments().size() > 1) {
104 QString query = app.arguments().at(1);
105 if (query.startsWith("--")) {
106 mainWin.messageReceived(query);
109 SearchParams *searchParams = new SearchParams();
110 searchParams->setKeywords(query);
111 mainWin.showMedia(searchParams);
115 // Seed random number generator
116 qsrand(QDateTime::currentDateTime().toTime_t());