diff --git a/src/iv/ivmain.cpp b/src/iv/ivmain.cpp index 69509071dc..5a1dd3d25c 100644 --- a/src/iv/ivmain.cpp +++ b/src/iv/ivmain.cpp @@ -19,6 +19,8 @@ #include #include +#include +#include #include "imageviewer.h" #include @@ -58,6 +60,11 @@ getargs(int argc, char* argv[]) ap.arg("--rawcolor") .help("Do not automatically transform to RGB"); + ap.arg("--dark") + .help("Start in dark mode") + .dest("dark") + .store_true(); + ap.arg("--display") .help("OCIO display") .metavar("STRING") @@ -109,6 +116,26 @@ main(int argc, char* argv[]) // Q_INIT_RESOURCE(iv); QApplication app(argc, argv); + // Apply dark mode if requested + if (ap["dark"].get()) { + app.setStyle(QStyleFactory::create("Fusion")); + QPalette darkPalette; + darkPalette.setColor(QPalette::Window, QColor(53, 53, 53)); + darkPalette.setColor(QPalette::WindowText, Qt::white); + darkPalette.setColor(QPalette::Base, QColor(25, 25, 25)); + darkPalette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); + darkPalette.setColor(QPalette::ToolTipBase, Qt::white); + darkPalette.setColor(QPalette::ToolTipText, Qt::white); + darkPalette.setColor(QPalette::Text, Qt::white); + darkPalette.setColor(QPalette::Button, QColor(53, 53, 53)); + darkPalette.setColor(QPalette::ButtonText, Qt::white); + darkPalette.setColor(QPalette::BrightText, Qt::red); + darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::HighlightedText, Qt::black); + app.setPalette(darkPalette); + } + std::string color_space = ap["image-color-space"].as_string(""); std::string display = ap["display"].as_string(""); std::string view = ap["view"].as_string("");