From c876d3bbefe0dc00c27ca0c12d29da5874946962 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 15 Dec 2021 21:04:28 +0100 Subject: rbutil: Merge rbutil with utils folder. rbutil uses several components from the utils folder, and can be considered part of utils too. Having it in a separate folder is an arbitrary split that doesn't help anymore these days, so merge them. This also allows other utils to easily use libtools.make without the need to navigate to a different folder. Change-Id: I3fc2f4de19e3e776553efb5dea5f779dfec0dc21 --- utils/rbutilqt/main.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 utils/rbutilqt/main.cpp (limited to 'utils/rbutilqt/main.cpp') diff --git a/utils/rbutilqt/main.cpp b/utils/rbutilqt/main.cpp new file mode 100644 index 0000000000..47c625b54d --- /dev/null +++ b/utils/rbutilqt/main.cpp @@ -0,0 +1,112 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Riebeling + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + + +#include +#include +#include +#include "rbutilqt.h" +#include "systrace.h" +#include "Logger.h" +#include "ConsoleAppender.h" +#include "FileAppender.h" + +#ifdef STATIC +#if QT_VERSION < 0x050400 +/* + * accessibility is no longer a plugin after 5.4.0: + * + */ +#include +Q_IMPORT_PLUGIN(AccessibleFactory) +#endif +#endif + + +int main( int argc, char ** argv ) { +#if QT_VERSION >= 0x050600 + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); +#endif + QApplication app( argc, argv ); +#ifdef Q_OS_WIN + qApp->setStyle(QStyleFactory::create("Fusion")); +#endif + ConsoleAppender* consoleAppender = new ConsoleAppender(); + consoleAppender->setFormat("[%{file}:%{line} %{type}] %{message}\n"); + cuteLoggerInstance()->registerAppender(consoleAppender); + SysTrace::rotateTrace(); + QString tracefile = QDir::tempPath() + "/rbutil-trace.log"; + FileAppender* fileAppender = new FileAppender(); + fileAppender->setFormat("[%{file}:%{line} %{type}] %{message}\n"); + fileAppender->setFileName(tracefile); + cuteLoggerInstance()->registerAppender(fileAppender); + LOG_INFO() << "Starting trace at" << QDateTime::currentDateTime().toString(Qt::ISODate); + +#if defined(Q_OS_MAC) + QDir dir(QApplication::applicationDirPath()); + dir.cdUp(); + dir.cd("plugins"); + QApplication::addLibraryPath(dir.absolutePath()); +#endif + QString absolutePath = QCoreApplication::instance()->applicationDirPath(); + // portable installation: + // check for a configuration file in the program folder. + QSettings *user; + if(QFileInfo(absolutePath + "/RockboxUtility.ini").isFile()) + user = new QSettings(absolutePath + "/RockboxUtility.ini", QSettings::IniFormat, nullptr); + else user = new QSettings(QSettings::IniFormat, QSettings::UserScope, "rockbox.org", "RockboxUtility"); + + QString applang = QLocale::system().name(); + QTranslator translator; + QTranslator qttrans; + // install translator + if(!user->value("lang", "").toString().isEmpty()) { + applang = user->value("lang", "").toString(); + } + if(!applang.isEmpty()) { + if(!translator.load("rbutil_" + applang, absolutePath)) + translator.load("rbutil_" + applang, ":/lang"); + if(!qttrans.load("qt_" + applang, + QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + qttrans.load("qt_" + applang, ":/lang"); + + QLocale::setDefault(QLocale(applang)); + } + delete user; + app.installTranslator(&translator); + app.installTranslator(&qttrans); + //: This string is used to indicate the writing direction. Translate it + //: to "RTL" (without quotes) for RTL languages. Anything else will get + //: treated as LTR language. + if(QObject::tr("LTR") == "RTL") + app.setLayoutDirection(Qt::RightToLeft); + + // keep a list of installed translators. Needed to be able uninstalling them + // later again (in case of translation changes) + QList translators; + translators.append(&translator); + translators.append(&qttrans); + RbUtilQt window(nullptr); + RbUtilQt::translators = translators; + window.show(); + +// app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) ); + return app.exec(); + +} -- cgit v1.2.3