X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fmain.cpp;h=131c17cb664a031c7ec0f676ab1a6319d2815fa6;hb=e5ab28f93dda6e878973f57276db5edab68d13bc;hp=b2df305140a7de4aa178a08c48cfb2b953497109;hpb=57c25e20a8f10a98a18dbc2b64ce55cf87d4fd7c;p=minitube diff --git a/src/main.cpp b/src/main.cpp index b2df305..131c17c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,51 +1,102 @@ +/* $BEGIN_LICENSE + +This file is part of Minitube. +Copyright 2009, Flavio Tordini + +Minitube is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Minitube is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Minitube. If not, see . + +$END_LICENSE */ + #include +#if QT_VERSION >= 0x050000 +#include +#endif #include #include "constants.h" -#include "MainWindow.h" +#include "mainwindow.h" #include "searchparams.h" -#ifdef Q_WS_MAC +#include "iconutils.h" +#ifdef APP_EXTRA +#include "extra.h" +#endif +#ifdef Q_OS_MAC #include "mac_startup.h" -#include "macfullscreen.h" #endif -#ifdef APP_WIN -#include "local/win/qtwin.h" + +void showWindow(QtSingleApplication &app, const QString &dataDir) { + MainWindow *mainWin = new MainWindow(); + mainWin->show(); + +#ifndef APP_MAC + QIcon appIcon; + if (QDir(dataDir).exists()) { + 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 + ".png"; + appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i])); + } + } + if (appIcon.isNull()) appIcon.addFile(":/images/app.png"); + mainWin->setWindowIcon(appIcon); #endif -#include "iconloader/qticonloader.h" + + mainWin->connect(&app, SIGNAL(messageReceived(const QString &)), + mainWin, SLOT(messageReceived(const QString &))); + app.setActivationWindow(mainWin, true); +} int main(int argc, char **argv) { -#ifdef Q_WS_MAC +#ifdef Q_OS_MAC mac::MacMain(); + // QFont::insertSubstitution(".Helvetica Neue DeskInterface", "Helvetica Neue"); #endif QtSingleApplication app(argc, argv); - if (app.sendMessage("Wake up!")) + QString message = app.arguments().size() > 1 ? app.arguments().at(1) : QString(); + if (message == QLatin1String("--help")) { + MainWindow::printHelp(); + return 0; + } + if (app.sendMessage(message)) return 0; app.setApplicationName(Constants::NAME); app.setOrganizationName(Constants::ORG_NAME); app.setOrganizationDomain(Constants::ORG_DOMAIN); -#ifndef APP_MAC + app.setApplicationVersion(Constants::VERSION); + app.setAttribute(Qt::AA_DontShowIconsInMenus); +#ifndef APP_WIN app.setWheelScrollLines(1); #endif -#ifdef APP_MAC - QFile file(":/mac.css"); - file.open(QFile::ReadOnly); - app.setStyleSheet(QLatin1String(file.readAll())); -#endif - -#ifdef APP_WIN - QFile file(":/win.css"); - file.open(QFile::ReadOnly); - app.setStyleSheet(QLatin1String(file.readAll())); +#ifdef APP_EXTRA + Extra::appSetup(&app); +#else + QFile cssFile(":/style.css"); + cssFile.open(QFile::ReadOnly); + QString styleSheet = QLatin1String(cssFile.readAll()); + app.setStyleSheet(styleSheet); #endif - const QString locale = QLocale::system().name(); - // qt translations QTranslator qtTranslator; - qtTranslator.load("qt_" + locale, + qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTranslator); @@ -55,67 +106,32 @@ int main(int argc, char **argv) { #else QString dataDir = ""; #endif - QString localeDir = qApp->applicationDirPath() + QDir::separator() + "locale"; +#ifdef APP_MAC + QString localeDir = qApp->applicationDirPath() + "/../Resources/locale"; +#else + QString localeDir = qApp->applicationDirPath() + "/locale"; +#endif if (!QDir(localeDir).exists()) { - localeDir = dataDir + QDir::separator() + "locale"; + localeDir = dataDir + "/locale"; } // qDebug() << "Using locale dir" << localeDir << locale; QTranslator translator; - translator.load(locale, localeDir); + translator.load(QLocale::system(), QString(), QString(), localeDir); app.installTranslator(&translator); +#if QT_VERSION < 0x050000 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); - - MainWindow mainWin; - mainWin.setWindowTitle(Constants::NAME); - -#ifdef Q_WS_MAC - mac::SetupFullScreenWindow(mainWin.winId()); -#endif - -// no window icon on Mac -#ifndef APP_MAC - QIcon appIcon; - if (QDir(dataDir).exists()) { - appIcon = QtIconLoader::icon(Constants::UNIX_NAME); - } else { - 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 + ".png"; - appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i])); - } - } - if (appIcon.isNull()) { - appIcon.addFile(":/images/app.png"); - } - mainWin.setWindowIcon(appIcon); #endif -#ifdef APP_WIN - if (QtWin::isCompositionEnabled()) { - QtWin::extendFrameIntoClientArea(&mainWin); - mainWin.setContentsMargins(0, 0, 0, 0); - } - app.setFont(QFont("Segoe UI", 9)); -#endif - - mainWin.show(); - - app.setActivationWindow(&mainWin, true); + // Seed random number generator + qsrand(QDateTime::currentDateTime().toTime_t()); // all string literals are UTF-8 - QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); - - if (app.arguments().size() > 1) { - QString query = app.arguments().at(1); - SearchParams *searchParams = new SearchParams(); - searchParams->setKeywords(query); - mainWin.showMedia(searchParams); - } + // QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); - // Seed random number generator - qsrand(QDateTime::currentDateTime().toTime_t()); +#ifdef APP_INTEGRITY + if (Extra::integrityCheck()) +#endif + showWindow(app, dataDir); return app.exec(); }