From 7fef2e5a68721cf5f6ac8c106c4629bb469e2a0c Mon Sep 17 00:00:00 2001 From: Alfred Reynolds Date: Wed, 8 Sep 2021 11:23:39 +1200 Subject: [PATCH] - Move new overlay color string into appconfig struct --- src/appconfig.cpp | 11 ++++++++++- src/appconfig.h | 1 + src/main.cpp | 12 +++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/appconfig.cpp b/src/appconfig.cpp index f495870..724700a 100644 --- a/src/appconfig.cpp +++ b/src/appconfig.cpp @@ -117,6 +117,15 @@ Config loadConfiguration(const std::string &configFilePath, const Config ¤ } +AppConfig loadConfiguration(const std::string &configFilePath, const AppConfig ¤tConfig) { + AppConfig userConfig = currentConfig; + // make sure to only update the base members, preserve the ones from the copy above + (Config &)userConfig = loadConfiguration(configFilePath, (const Config &)userConfig); + + return userConfig; +} + + QString getAppConfigFilePath(const std::string &configPath) { std::string userConfigFolder = "~/.config/slide/"; std::string systemConfigFolder = "/etc/slide"; @@ -217,7 +226,7 @@ AppConfig loadAppConfiguration(const AppConfig &commandLineConfig) { } AppConfig loadedConfig = loadConfiguration(jsonFile.toStdString(), commandLineConfig); - + QString val; QFile file; file.setFileName(jsonFile); diff --git a/src/appconfig.h b/src/appconfig.h index c219434..fce2c20 100644 --- a/src/appconfig.h +++ b/src/appconfig.h @@ -56,6 +56,7 @@ struct AppConfig : public Config { AppConfig( const Config &inConfig ) : Config(inConfig) {} std::string configPath = ""; std::string overlay = ""; + QString overlayHexRGB = "#FFFFFF"; QVector paths; bool debugMode = false; diff --git a/src/main.cpp b/src/main.cpp index afe5968..2b54d1b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,9 +23,6 @@ void usage(std::string programName) { std::cerr << "Usage: " << programName << " [-t rotation_seconds] [-a aspect('l','p','a', 'm')] [-o background_opacity(0..255)] [-b blur_radius] -p image_folder [-r] [-s] [-v] [--verbose] [--stretch] [-c config_file_path]" << std::endl; } -QString overlayHexRGB = QString("#FFFFFF"); -QRegularExpression hexRGBMatcher("^#([0-9A-Fa-f]{3}){1,2}$"); - bool parseCommandLine(AppConfig &appConfig, int argc, char *argv[]) { int opt; int debugInt = 0; @@ -90,7 +87,7 @@ bool parseCommandLine(AppConfig &appConfig, int argc, char *argv[]) { appConfig.overlay = optarg; break; case 'h': - overlayHexRGB = QString::fromStdString(optarg); + appConfig.overlayHexRGB = QString::fromStdString(optarg); break; case 'v': appConfig.debugMode = true; @@ -132,15 +129,16 @@ void ConfigureWindowFromSettings(MainWindow &w, const AppConfig &appConfig) w.setBackgroundOpacity(appConfig.backgroundOpacity); } - if (!overlayHexRGB.isEmpty()) + if (!appConfig.overlayHexRGB.isEmpty()) { - if(!hexRGBMatcher.match(overlayHexRGB).hasMatch()) + QRegularExpression hexRGBMatcher("^#([0-9A-Fa-f]{3}){1,2}$"); + if(!hexRGBMatcher.match(appConfig.overlayHexRGB).hasMatch()) { std::cout << "Error: hex rgb string expected. e.g. #FFFFFF or #FFF" << std::endl; } else { - w.setOverlayHexRGB(overlayHexRGB); + w.setOverlayHexRGB(appConfig.overlayHexRGB); } }