|
19 | 19 | #include <iterator> |
20 | 20 |
|
21 | 21 | #include <QApplication> |
| 22 | +#include <QPalette> |
| 23 | +#include <QStyleFactory> |
22 | 24 |
|
23 | 25 | #include "imageviewer.h" |
24 | 26 | #include <OpenImageIO/argparse.h> |
@@ -58,6 +60,11 @@ getargs(int argc, char* argv[]) |
58 | 60 | ap.arg("--rawcolor") |
59 | 61 | .help("Do not automatically transform to RGB"); |
60 | 62 |
|
| 63 | + ap.arg("--dark") |
| 64 | + .help("Start in dark mode") |
| 65 | + .dest("dark") |
| 66 | + .store_true(); |
| 67 | + |
61 | 68 | ap.arg("--display") |
62 | 69 | .help("OCIO display") |
63 | 70 | .metavar("STRING") |
@@ -109,6 +116,26 @@ main(int argc, char* argv[]) |
109 | 116 | // Q_INIT_RESOURCE(iv); |
110 | 117 | QApplication app(argc, argv); |
111 | 118 |
|
| 119 | + // Apply dark mode if requested |
| 120 | + if (ap["dark"].get<int>()) { |
| 121 | + app.setStyle(QStyleFactory::create("Fusion")); |
| 122 | + QPalette darkPalette; |
| 123 | + darkPalette.setColor(QPalette::Window, QColor(53, 53, 53)); |
| 124 | + darkPalette.setColor(QPalette::WindowText, Qt::white); |
| 125 | + darkPalette.setColor(QPalette::Base, QColor(25, 25, 25)); |
| 126 | + darkPalette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); |
| 127 | + darkPalette.setColor(QPalette::ToolTipBase, Qt::white); |
| 128 | + darkPalette.setColor(QPalette::ToolTipText, Qt::white); |
| 129 | + darkPalette.setColor(QPalette::Text, Qt::white); |
| 130 | + darkPalette.setColor(QPalette::Button, QColor(53, 53, 53)); |
| 131 | + darkPalette.setColor(QPalette::ButtonText, Qt::white); |
| 132 | + darkPalette.setColor(QPalette::BrightText, Qt::red); |
| 133 | + darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); |
| 134 | + darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); |
| 135 | + darkPalette.setColor(QPalette::HighlightedText, Qt::black); |
| 136 | + app.setPalette(darkPalette); |
| 137 | + } |
| 138 | + |
112 | 139 | std::string color_space = ap["image-color-space"].as_string(""); |
113 | 140 | std::string display = ap["display"].as_string(""); |
114 | 141 | std::string view = ap["view"].as_string(""); |
|
0 commit comments