Format every single file using .clang-format

This commit is contained in:
Vasily
2018-12-28 03:06:42 +01:00
parent 89c02642fc
commit 51057c1d79
40 changed files with 10302 additions and 6950 deletions
+333 -199
View File
@@ -12,248 +12,382 @@
INITIALIZE_EASYLOGGINGPP
void myQtMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
LOG(DEBUG) << localMsg.constData() << " (" << context.file << ":" << context.line << ")";
break;
case QtInfoMsg:
LOG(INFO) << localMsg.constData() << " (" << context.file << ":" << context.line << ")";
break;
case QtWarningMsg:
LOG(WARNING) << localMsg.constData() << " (" << context.file << ":" << context.line << ")";
break;
case QtCriticalMsg:
LOG(ERROR) << localMsg.constData() << " (" << context.file << ":" << context.line << ")";
break;
case QtFatalMsg:
LOG(FATAL) << localMsg.constData() << " (" << context.file << ":" << context.line << ")";
break;
}
void myQtMessageHandler( QtMsgType type,
const QMessageLogContext& context,
const QString& msg )
{
QByteArray localMsg = msg.toLocal8Bit();
switch ( type )
{
case QtDebugMsg:
LOG( DEBUG ) << localMsg.constData() << " (" << context.file << ":"
<< context.line << ")";
break;
case QtInfoMsg:
LOG( INFO ) << localMsg.constData() << " (" << context.file << ":"
<< context.line << ")";
break;
case QtWarningMsg:
LOG( WARNING ) << localMsg.constData() << " (" << context.file << ":"
<< context.line << ")";
break;
case QtCriticalMsg:
LOG( ERROR ) << localMsg.constData() << " (" << context.file << ":"
<< context.line << ")";
break;
case QtFatalMsg:
LOG( FATAL ) << localMsg.constData() << " (" << context.file << ":"
<< context.line << ")";
break;
}
}
void installManifest(bool cleaninstall = false) {
auto manifestQPath = QDir::cleanPath(QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("manifest.vrmanifest"));
if (QFile::exists(manifestQPath)) {
bool alreadyInstalled = false;
if (vr::VRApplications()->IsApplicationInstalled(advsettings::OverlayController::applicationKey)) {
if (cleaninstall) {
char buffer[1024];
auto appError = vr::VRApplicationError_None;
vr::VRApplications()->GetApplicationPropertyString(advsettings::OverlayController::applicationKey, vr::VRApplicationProperty_WorkingDirectory_String, buffer, 1024, &appError);
if (appError == vr::VRApplicationError_None) {
auto oldManifestQPath = QDir::cleanPath(QDir(buffer).absoluteFilePath("manifest.vrmanifest"));
if (oldManifestQPath.compare(manifestQPath, Qt::CaseInsensitive) != 0) {
vr::VRApplications()->RemoveApplicationManifest(QDir::toNativeSeparators(oldManifestQPath).toStdString().c_str());
} else {
alreadyInstalled = true;
}
}
} else {
alreadyInstalled = true;
}
}
auto apperror = vr::VRApplications()->AddApplicationManifest(QDir::toNativeSeparators(manifestQPath).toStdString().c_str());
if (apperror != vr::VRApplicationError_None) {
throw std::runtime_error(std::string("Could not add application manifest: ") + std::string(vr::VRApplications()->GetApplicationsErrorNameFromEnum(apperror)));
} else if (!alreadyInstalled || cleaninstall) {
auto app_error = vr::VRApplications()->SetApplicationAutoLaunch(advsettings::OverlayController::applicationKey, true);
if (app_error != vr::VRApplicationError_None) {
throw std::runtime_error(std::string("Could not set auto start: ") + std::string(vr::VRApplications()->GetApplicationsErrorNameFromEnum(apperror)));
}
}
} else {
throw std::runtime_error(std::string("Could not find application manifest: ") + manifestQPath.toStdString());
}
}
void removeManifest() {
auto manifestQPath = QDir::cleanPath(QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("manifest.vrmanifest"));
if (QFile::exists(manifestQPath)) {
if (vr::VRApplications()->IsApplicationInstalled(advsettings::OverlayController::applicationKey)) {
vr::VRApplications()->RemoveApplicationManifest(QDir::toNativeSeparators(manifestQPath).toStdString().c_str());
}
} else {
throw std::runtime_error(std::string("Could not find application manifest: ") + manifestQPath.toStdString());
}
}
class MyQApplication : public QApplication {
public:
using QApplication::QApplication;
virtual bool notify(QObject * receiver, QEvent * event) override {
try {
return QApplication::notify(receiver, event);
} catch (std::exception& e) {
LOG(ERROR) << "Exception thrown from an event handler: " << e.what();
}
return false;
}
};
namespace argument {
// Checks whether a specific string was passed as a launch argument.
bool CheckCommandLineArgument(int argc, char *argv[], const std::string parameter) {
// The old way was one giant loop that tested every single parameter.
// Having an individual loop for all args most likely has a very small performance
// penalty compared to the original solution,
// but the gains in readability and ease of extension of not having a hundred line+ for loop are worth it.
for (int i = 0; i < argc; i++) {
if (std::string(argv[i]) == parameter) {
return true;
void installManifest( bool cleaninstall = false )
{
auto manifestQPath
= QDir::cleanPath( QDir( QCoreApplication::applicationDirPath() )
.absoluteFilePath( "manifest.vrmanifest" ) );
if ( QFile::exists( manifestQPath ) )
{
bool alreadyInstalled = false;
if ( vr::VRApplications()->IsApplicationInstalled(
advsettings::OverlayController::applicationKey ) )
{
if ( cleaninstall )
{
char buffer[1024];
auto appError = vr::VRApplicationError_None;
vr::VRApplications()->GetApplicationPropertyString(
advsettings::OverlayController::applicationKey,
vr::VRApplicationProperty_WorkingDirectory_String,
buffer,
1024,
&appError );
if ( appError == vr::VRApplicationError_None )
{
auto oldManifestQPath
= QDir::cleanPath( QDir( buffer ).absoluteFilePath(
"manifest.vrmanifest" ) );
if ( oldManifestQPath.compare( manifestQPath,
Qt::CaseInsensitive )
!= 0 )
{
vr::VRApplications()->RemoveApplicationManifest(
QDir::toNativeSeparators( oldManifestQPath )
.toStdString()
.c_str() );
}
else
{
alreadyInstalled = true;
}
}
}
else
{
alreadyInstalled = true;
}
}
auto apperror = vr::VRApplications()->AddApplicationManifest(
QDir::toNativeSeparators( manifestQPath ).toStdString().c_str() );
if ( apperror != vr::VRApplicationError_None )
{
throw std::runtime_error(
std::string( "Could not add application manifest: " )
+ std::string(
vr::VRApplications()->GetApplicationsErrorNameFromEnum(
apperror ) ) );
}
else if ( !alreadyInstalled || cleaninstall )
{
auto app_error = vr::VRApplications()->SetApplicationAutoLaunch(
advsettings::OverlayController::applicationKey, true );
if ( app_error != vr::VRApplicationError_None )
{
throw std::runtime_error(
std::string( "Could not set auto start: " )
+ std::string( vr::VRApplications()
->GetApplicationsErrorNameFromEnum(
apperror ) ) );
}
}
}
else
{
throw std::runtime_error(
std::string( "Could not find application manifest: " )
+ manifestQPath.toStdString() );
}
}
void removeManifest()
{
auto manifestQPath
= QDir::cleanPath( QDir( QCoreApplication::applicationDirPath() )
.absoluteFilePath( "manifest.vrmanifest" ) );
if ( QFile::exists( manifestQPath ) )
{
if ( vr::VRApplications()->IsApplicationInstalled(
advsettings::OverlayController::applicationKey ) )
{
vr::VRApplications()->RemoveApplicationManifest(
QDir::toNativeSeparators( manifestQPath )
.toStdString()
.c_str() );
}
}
else
{
throw std::runtime_error(
std::string( "Could not find application manifest: " )
+ manifestQPath.toStdString() );
}
}
class MyQApplication : public QApplication
{
public:
using QApplication::QApplication;
virtual bool notify( QObject* receiver, QEvent* event ) override
{
try
{
return QApplication::notify( receiver, event );
}
catch ( std::exception& e )
{
LOG( ERROR ) << "Exception thrown from an event handler: "
<< e.what();
}
return false;
}
};
constexpr auto DESKTOP_MODE = "-desktop";
constexpr auto NO_SOUND = "-nosound";
constexpr auto NO_MANIFEST = "-nomanifest";
constexpr auto INSTALL_MANIFEST= "-installmanifest";
constexpr auto REMOVE_MANIFEST= "-removemanifest";
namespace argument
{
// Checks whether a specific string was passed as a launch argument.
bool CheckCommandLineArgument( int argc,
char* argv[],
const std::string parameter )
{
// The old way was one giant loop that tested every single parameter.
// Having an individual loop for all args most likely has a very small
// performance penalty compared to the original solution, but the gains in
// readability and ease of extension of not having a hundred line+ for loop
// are worth it.
for ( int i = 0; i < argc; i++ )
{
if ( std::string( argv[i] ) == parameter )
{
return true;
}
}
return false;
}
enum ReturnErrorCode {
constexpr auto DESKTOP_MODE = "-desktop";
constexpr auto NO_SOUND = "-nosound";
constexpr auto NO_MANIFEST = "-nomanifest";
constexpr auto INSTALL_MANIFEST = "-installmanifest";
constexpr auto REMOVE_MANIFEST = "-removemanifest";
} // namespace argument
enum ReturnErrorCode
{
SUCCESS = 0,
GENERAL_FAILURE = -1,
OPENVR_INIT_ERROR = -2,
};
int main(int argc, char *argv[]) {
int main( int argc, char* argv[] )
{
const char* logConfigFileName = "logging.conf";
const char* logConfigDefault =
"* GLOBAL:\n"
" FORMAT = \"[%level] %datetime{%Y-%M-%d %H:%m:%s}: %msg\"\n"
" FILENAME = \"AdvancedSettings.log\"\n"
" ENABLED = true\n"
" TO_FILE = true\n"
" TO_STANDARD_OUTPUT = true\n"
" MAX_LOG_FILE_SIZE = 2097152 ## 2MB\n"
"* TRACE:\n"
" ENABLED = false\n"
"* DEBUG:\n"
" ENABLED = false\n";
const char* logConfigDefault
= "* GLOBAL:\n"
" FORMAT = \"[%level] %datetime{%Y-%M-%d %H:%m:%s}: %msg\"\n"
" FILENAME = \"AdvancedSettings.log\"\n"
" ENABLED = true\n"
" TO_FILE = true\n"
" TO_STANDARD_OUTPUT = true\n"
" MAX_LOG_FILE_SIZE = 2097152 ## 2MB\n"
"* TRACE:\n"
" ENABLED = false\n"
"* DEBUG:\n"
" ENABLED = false\n";
const bool desktop_mode = argument::CheckCommandLineArgument(argc, argv, argument::DESKTOP_MODE);
const bool no_sound = argument::CheckCommandLineArgument(argc, argv, argument::NO_SOUND);
const bool no_manifest = argument::CheckCommandLineArgument(argc, argv, argument::NO_MANIFEST);
const bool install_manifest = argument::CheckCommandLineArgument(argc, argv, argument::INSTALL_MANIFEST);
const bool remove_manifest = argument::CheckCommandLineArgument(argc, argv, argument::REMOVE_MANIFEST);
const bool desktop_mode = argument::CheckCommandLineArgument(
argc, argv, argument::DESKTOP_MODE );
const bool no_sound
= argument::CheckCommandLineArgument( argc, argv, argument::NO_SOUND );
const bool no_manifest = argument::CheckCommandLineArgument(
argc, argv, argument::NO_MANIFEST );
const bool install_manifest = argument::CheckCommandLineArgument(
argc, argv, argument::INSTALL_MANIFEST );
const bool remove_manifest = argument::CheckCommandLineArgument(
argc, argv, argument::REMOVE_MANIFEST );
if (install_manifest || remove_manifest) {
if ( install_manifest || remove_manifest )
{
int exit_code = ReturnErrorCode::SUCCESS;
QCoreApplication coreApp(argc, argv);
QCoreApplication coreApp( argc, argv );
auto openvr_init_status = vr::VRInitError_None;
vr::VR_Init(&openvr_init_status, vr::VRApplication_Utility);
vr::VR_Init( &openvr_init_status, vr::VRApplication_Utility );
if (openvr_init_status == vr::VRInitError_None) {
try {
if (install_manifest) {
installManifest(true);
if ( openvr_init_status == vr::VRInitError_None )
{
try
{
if ( install_manifest )
{
installManifest( true );
}
else if (remove_manifest) {
else if ( remove_manifest )
{
removeManifest();
}
}
catch (std::exception& e) {
catch ( std::exception& e )
{
exit_code = ReturnErrorCode::GENERAL_FAILURE;
std::cerr << e.what() << std::endl;
}
}
else {
else
{
exit_code = ReturnErrorCode::OPENVR_INIT_ERROR;
std::cerr << std::string("Failed to initialize OpenVR: " + std::string(vr::VR_GetVRInitErrorAsEnglishDescription(openvr_init_status))) << std::endl;
std::cerr << std::string(
"Failed to initialize OpenVR: "
+ std::string(
vr::VR_GetVRInitErrorAsEnglishDescription(
openvr_init_status ) ) )
<< std::endl;
}
vr::VR_Shutdown();
exit(exit_code);
exit( exit_code );
}
try {
MyQApplication a(argc, argv);
a.setOrganizationName("matzman666");
a.setApplicationName("OpenVRAdvancedSettings");
a.setApplicationDisplayName(advsettings::OverlayController::applicationName);
a.setApplicationVersion(advsettings::OverlayController::applicationVersionString);
try
{
MyQApplication a( argc, argv );
a.setOrganizationName( "matzman666" );
a.setApplicationName( "OpenVRAdvancedSettings" );
a.setApplicationDisplayName(
advsettings::OverlayController::applicationName );
a.setApplicationVersion(
advsettings::OverlayController::applicationVersionString );
qInstallMessageHandler(myQtMessageHandler);
qInstallMessageHandler( myQtMessageHandler );
// Configure logger
QString logFilePath;
START_EASYLOGGINGPP(argc, argv);
el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog);
auto logconfigfile = QFileInfo(logConfigFileName).absoluteFilePath();
el::Configurations conf;
if (QFile::exists(logconfigfile)) {
conf.parseFromFile(logconfigfile.toStdString());
} else {
conf.parseFromText(logConfigDefault);
}
if (!conf.get(el::Level::Global, el::ConfigurationType::Filename)) {
logFilePath = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).absoluteFilePath("AdvancedSettings.log");
conf.set(el::Level::Global, el::ConfigurationType::Filename, QDir::toNativeSeparators(logFilePath).toStdString());
}
conf.setRemainingToDefault();
el::Loggers::reconfigureAllLoggers(conf);
LOG(INFO) << "Application started (Version " << advsettings::OverlayController::applicationVersionString << ")";
LOG(INFO) << "Log Config: " << QDir::toNativeSeparators(logconfigfile).toStdString();
if (!logFilePath.isEmpty()) {
LOG(INFO) << "Log File: " << logFilePath;
}
if (desktop_mode) {
LOG(INFO) << "Desktop mode enabled.";
}
if (no_sound) {
LOG(INFO) << "Sound effects disabled.";
}
if (no_manifest) {
LOG(INFO) << "vrmanifest disabled.";
}
// Configure logger
QString logFilePath;
START_EASYLOGGINGPP( argc, argv );
el::Loggers::addFlag(
el::LoggingFlag::DisableApplicationAbortOnFatalLog );
auto logconfigfile = QFileInfo( logConfigFileName ).absoluteFilePath();
el::Configurations conf;
if ( QFile::exists( logconfigfile ) )
{
conf.parseFromFile( logconfigfile.toStdString() );
}
else
{
conf.parseFromText( logConfigDefault );
}
if ( !conf.get( el::Level::Global, el::ConfigurationType::Filename ) )
{
logFilePath = QDir( QStandardPaths::writableLocation(
QStandardPaths::AppDataLocation ) )
.absoluteFilePath( "AdvancedSettings.log" );
conf.set( el::Level::Global,
el::ConfigurationType::Filename,
QDir::toNativeSeparators( logFilePath ).toStdString() );
}
conf.setRemainingToDefault();
el::Loggers::reconfigureAllLoggers( conf );
LOG( INFO ) << "Application started (Version "
<< advsettings::OverlayController::applicationVersionString
<< ")";
LOG( INFO ) << "Log Config: "
<< QDir::toNativeSeparators( logconfigfile ).toStdString();
if ( !logFilePath.isEmpty() )
{
LOG( INFO ) << "Log File: " << logFilePath;
}
QSettings appSettings(QSettings::IniFormat, QSettings::UserScope, a.organizationName(), a.applicationName());
advsettings::OverlayController::setAppSettings(&appSettings);
LOG(INFO) << "Settings File: " << appSettings.fileName().toStdString();
if ( desktop_mode )
{
LOG( INFO ) << "Desktop mode enabled.";
}
if ( no_sound )
{
LOG( INFO ) << "Sound effects disabled.";
}
if ( no_manifest )
{
LOG( INFO ) << "vrmanifest disabled.";
}
QQmlEngine qmlEngine;
QSettings appSettings( QSettings::IniFormat,
QSettings::UserScope,
a.organizationName(),
a.applicationName() );
advsettings::OverlayController::setAppSettings( &appSettings );
LOG( INFO ) << "Settings File: "
<< appSettings.fileName().toStdString();
advsettings::OverlayController* controller = advsettings::OverlayController::createInstance(desktop_mode, no_sound);
controller->Init(&qmlEngine);
QQmlEngine qmlEngine;
QQmlComponent component(&qmlEngine, QUrl::fromLocalFile("res/qml/mainwidget.qml"));
auto errors = component.errors();
for (auto& e : errors) {
LOG(ERROR) << "QML Error: " << e.toString().toStdString() << std::endl;
}
auto quickObj = component.create();
controller->SetWidget(qobject_cast<QQuickItem*>(quickObj), advsettings::OverlayController::applicationName, advsettings::OverlayController::applicationKey);
advsettings::OverlayController* controller
= advsettings::OverlayController::createInstance( desktop_mode,
no_sound );
controller->Init( &qmlEngine );
if (!desktop_mode && !no_manifest) {
try {
installManifest();
} catch (std::exception& e) {
LOG(ERROR) << e.what();
}
}
QQmlComponent component(
&qmlEngine, QUrl::fromLocalFile( "res/qml/mainwidget.qml" ) );
auto errors = component.errors();
for ( auto& e : errors )
{
LOG( ERROR ) << "QML Error: " << e.toString().toStdString()
<< std::endl;
}
auto quickObj = component.create();
controller->SetWidget( qobject_cast<QQuickItem*>( quickObj ),
advsettings::OverlayController::applicationName,
advsettings::OverlayController::applicationKey );
if (desktop_mode) {
auto m_pWindow = new QQuickWindow();
qobject_cast<QQuickItem*>(quickObj)->setParentItem(m_pWindow->contentItem());
m_pWindow->setGeometry(0, 0, qobject_cast<QQuickItem*>(quickObj)->width(), qobject_cast<QQuickItem*>(quickObj)->height());
m_pWindow->show();
}
if ( !desktop_mode && !no_manifest )
{
try
{
installManifest();
}
catch ( std::exception& e )
{
LOG( ERROR ) << e.what();
}
}
return a.exec();
if ( desktop_mode )
{
auto m_pWindow = new QQuickWindow();
qobject_cast<QQuickItem*>( quickObj )
->setParentItem( m_pWindow->contentItem() );
m_pWindow->setGeometry(
0,
0,
qobject_cast<QQuickItem*>( quickObj )->width(),
qobject_cast<QQuickItem*>( quickObj )->height() );
m_pWindow->show();
}
} catch (const std::exception& e) {
LOG(FATAL) << e.what();
return ReturnErrorCode::GENERAL_FAILURE;
}
return a.exec();
}
catch ( const std::exception& e )
{
LOG( FATAL ) << e.what();
return ReturnErrorCode::GENERAL_FAILURE;
}
}