From b21759953e4488bde1cb4f1cc00f8e814f582801 Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Sun, 17 Jan 2021 11:48:02 +0100 Subject: Save ansi colors to configs --- src/documentstyle.cpp | 14 +++++++++++++- src/documentstyle.hpp | 2 ++ src/renderers/renderhelpers.cpp | 26 ++------------------------ 3 files changed, 17 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/documentstyle.cpp b/src/documentstyle.cpp index 31795d6..474f947 100644 --- a/src/documentstyle.cpp +++ b/src/documentstyle.cpp @@ -134,7 +134,11 @@ DocumentStyle::DocumentStyle(bool do_init) : theme(Fixed), cross_scheme_link_color(0x09, 0x60, 0xa7), internal_link_prefix("→ "), external_link_prefix("⇒ "), - margin(55.0) + margin(55.0), + ansi_colors({"black", "darkred", "darkgreen", "darkgoldenrod", + "darkblue", "darkmagenta", "darkcyan", "lightgray", + "gray", "red", "green", "goldenrod", + "lightblue", "magenta", "cyan", "white"}) { if (do_init) this->initialiseDefaultFonts(); } @@ -217,6 +221,8 @@ bool DocumentStyle::save(QSettings &settings) const settings.setValue("margins", margin); + settings.setValue("ansi_colors", ansi_colors); + { settings.beginGroup("Standard"); settings.setValue("font", standard_font.toString()); @@ -303,6 +309,12 @@ bool DocumentStyle::load(QSettings &settings) margin = settings.value("margins", 55).toInt(); + QStringList default_colors = {"black", "darkred", "darkgreen", "darkgoldenrod", + "darkblue", "darkmagenta", "darkcyan", "lightgray", + "gray", "red", "green", "goldenrod", + "lightblue", "magenta", "cyan", "white"}; + ansi_colors = settings.value("ansi_colors", default_colors).toStringList(); + { settings.beginGroup("Standard"); standard_font.fromString(settings.value("font", standard_font.toString()).toString()); diff --git a/src/documentstyle.hpp b/src/documentstyle.hpp index 930c3bd..cb8bd55 100644 --- a/src/documentstyle.hpp +++ b/src/documentstyle.hpp @@ -51,6 +51,8 @@ struct DocumentStyle double margin; + QStringList ansi_colors; + bool save(QSettings & settings) const; bool load(QSettings & settings); diff --git a/src/renderers/renderhelpers.cpp b/src/renderers/renderhelpers.cpp index 270fce5..8f7b580 100644 --- a/src/renderers/renderhelpers.cpp +++ b/src/renderers/renderhelpers.cpp @@ -9,6 +9,7 @@ * https://en.wikipedia.org/wiki/VT52#Escape_sequences */ #include "renderhelpers.hpp" +#include "kristall.hpp" #include #include @@ -27,30 +28,7 @@ void setColor(QTextCharFormat& format, unsigned char n, bool bg=false) if (n < 16) { // The normal pre-defined typical 16 colors. - /// @TODO these should probably be configurable. - static const Qt::GlobalColor colorcodes[] = { - // The normal pre-defined typical 8 colors. - Qt::black, - Qt::darkRed, - Qt::darkGreen, - Qt::darkYellow, - Qt::darkBlue, - Qt::darkMagenta, - Qt::darkCyan, - Qt::lightGray, - - // bold/intense? versions of the normal 8 colors. - Qt::gray, - Qt::red, - Qt::green, - Qt::yellow, - Qt::blue, - Qt::magenta, - Qt::cyan, - Qt::white - }; - - color = QColor(colorcodes[n]); + color = QColor(kristall::document_style.ansi_colors[n]); } else if (n < 232) { -- cgit v1.2.3