[LyX/master] Do not rely on hardcoded color when determining boxbgcolor
Juergen Spitzmueller
spitz at lyx.org
Wed Jan 20 13:14:48 UTC 2021
commit ee475b62fad9c899e80aba8543cf680fedf1c5ed
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Wed Jan 20 14:15:48 2021 +0100
Do not rely on hardcoded color when determining boxbgcolor
---
src/Buffer.cpp | 1 +
src/BufferParams.cpp | 6 ++++--
src/BufferParams.h | 2 ++
src/frontends/qt/GuiDocument.cpp | 5 +++++
src/insets/InsetBox.cpp | 3 +--
5 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index c59d73a..119e26d 100644
--- a/src/Buffer.cpp
+++ b/src/Buffer.cpp
@@ -948,6 +948,7 @@ int Buffer::readHeader(Lexer & lex)
params().notefontcolor = RGBColor(0xCC, 0xCC, 0xCC);
params().isnotefontcolor = false;
params().boxbgcolor = RGBColor(0xFF, 0, 0);
+ params().isboxbgcolor = false;
params().html_latex_start.clear();
params().html_latex_end.clear();
params().html_math_img_scale = 1.0;
diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index d044fab..46d5658 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -461,9 +461,10 @@ BufferParams::BufferParams()
fontcolor = lyx::rgbFromHexName("#000000");
isfontcolor = false;
// light gray is the default font color for greyed-out notes
- isnotefontcolor = false;
notefontcolor = lyx::rgbFromHexName("#cccccc");
+ isnotefontcolor = false;
boxbgcolor = lyx::rgbFromHexName("#ff0000");
+ isboxbgcolor = false;
compressed = lyxrc.save_compressed;
for (int iter = 0; iter < 4; ++iter) {
user_defined_bullet(iter) = ITEMIZE_DEFAULTS[iter];
@@ -1060,6 +1061,7 @@ string BufferParams::readToken(Lexer & lex, string const & token,
string color = lex.getString();
boxbgcolor = lyx::rgbFromHexName(color);
lcolor.setColor("boxbgcolor", color);
+ isboxbgcolor = true;
} else if (token == "\\paperwidth") {
lex >> paperwidth;
} else if (token == "\\paperheight") {
@@ -1382,7 +1384,7 @@ void BufferParams::writeFile(ostream & os, Buffer const * buf) const
os << "\\fontcolor " << lyx::X11hexname(fontcolor) << '\n';
if (isnotefontcolor)
os << "\\notefontcolor " << lyx::X11hexname(notefontcolor) << '\n';
- if (boxbgcolor != lyx::rgbFromHexName("#ff0000"))
+ if (isboxbgcolor)
os << "\\boxbgcolor " << lyx::X11hexname(boxbgcolor) << '\n';
for (auto const & br : branchlist()) {
diff --git a/src/BufferParams.h b/src/BufferParams.h
index 9b12575..73bb9f6 100644
--- a/src/BufferParams.h
+++ b/src/BufferParams.h
@@ -399,6 +399,8 @@ public:
bool isnotefontcolor;
///
RGBColor boxbgcolor;
+ ///
+ bool isboxbgcolor;
/// \param index should lie in the range 0 <= \c index <= 3.
Bullet & temp_bullet(size_type index);
Bullet const & temp_bullet(size_type index) const;
diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index 81d251c..f808819 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -164,6 +164,7 @@ bool is_fontcolor;
lyx::RGBColor set_notefontcolor;
bool is_notefontcolor;
lyx::RGBColor set_boxbgcolor;
+bool is_boxbgcolor;
bool forced_fontspec_activation;
} // anonymous namespace
@@ -2292,6 +2293,7 @@ void GuiDocument::changeBoxBackgroundColor()
colorButtonStyleSheet(newColor));
// save color
set_boxbgcolor = rgbFromHexName(fromqstr(newColor.name()));
+ is_boxbgcolor = true;
change_adaptor();
}
@@ -2302,6 +2304,7 @@ void GuiDocument::deleteBoxBackgroundColor()
theApp()->getRgbColor(Color_shadedbg, set_boxbgcolor);
colorModule->boxBackgroundPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(set_boxbgcolor)));
+ is_boxbgcolor = false;
change_adaptor();
}
@@ -3521,6 +3524,7 @@ void GuiDocument::applyView()
bp_.notefontcolor = set_notefontcolor;
bp_.isnotefontcolor = is_notefontcolor;
bp_.boxbgcolor = set_boxbgcolor;
+ bp_.isboxbgcolor = is_boxbgcolor;
// numbering
if (bp_.documentClass().hasTocLevels()) {
@@ -4050,6 +4054,7 @@ void GuiDocument::paramsToDialog()
colorModule->boxBackgroundPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(bp_.boxbgcolor)));
set_boxbgcolor = bp_.boxbgcolor;
+ is_boxbgcolor = bp_.isboxbgcolor;
// numbering
int const min_toclevel = documentClass().min_toclevel();
diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp
index 9cf0169..34e33a5 100644
--- a/src/insets/InsetBox.cpp
+++ b/src/insets/InsetBox.cpp
@@ -220,8 +220,7 @@ ColorCode InsetBox::backgroundColor(PainterInfo const &) const
return getLayout().bgcolor();
if (params_.type == "Shaded") {
- // FIXME: This hardcoded color is a hack!
- if (buffer().params().boxbgcolor == lyx::rgbFromHexName("#ff0000"))
+ if (buffer().params().isboxbgcolor)
return getLayout().bgcolor();
ColorCode c = lcolor.getFromLyXName("boxbgcolor");
More information about the lyx-cvs
mailing list