commit 0fb677e8291aadf2ab93aaeec251679372308d20
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Tue Apr 1 14:49:36 2025 +0200
Streamline SetColor::setStateOfResetButtons
The initial motivation for this change was to remove the "else
return;" which was described as unreachable by Coverity Scan.
The code has been further changed to avoid the duplicated code block
which is prone to subtle errors. It is my hope that the new code is
more readable.
---
src/frontends/qt/GuiPrefs.cpp | 60 ++++++++++++++++++-------------------------
1 file changed, 25 insertions(+), 35 deletions(-)
diff --git a/src/frontends/qt/GuiPrefs.cpp b/src/frontends/qt/GuiPrefs.cpp
index fe534e4c45..6a19c204a0 100644
--- a/src/frontends/qt/GuiPrefs.cpp
+++ b/src/frontends/qt/GuiPrefs.cpp
@@ -4325,45 +4325,35 @@ void SetColor::setColor(QColor const &color)
void SetColor::setStateOfResetButtons(bool doingUndo)
{
- QStandardItem *reset_item;
int const row = item_.row();
- Column column = (Column)item_.column();
-
- if (column != LightColorColumn && column != DarkColorColumn &&
- column != LightColorResetColumn && column !=
DarkColorResetColumn)
+ Column const column = (Column)item_.column();
+
+ Column colorcolumn, resetcolumn;
+ switch (column) {
+ case LightColorColumn:
+ case LightColorResetColumn:
+ colorcolumn = LightColorColumn;
+ resetcolumn = LightColorResetColumn;
+ break;
+ case DarkColorColumn:
+ case DarkColorResetColumn:
+ colorcolumn = DarkColorColumn;
+ resetcolumn = DarkColorResetColumn;
+ break;
+ default:
return;
+ }
- QColor theme_color;
- QColor color_to_compare;
- if (doingUndo)
- color_to_compare = QColor(old_color_);
+ QColor const color_to_compare = doingUndo ? QColor(old_color_) :
new_color_;
+ QColor const theme_color = parent_->getCurrentThemeColor(row,
colorcolumn);
+ QStandardItem const * reset_item = colorsTV_model_.item(row,
resetcolumn);
+ Qt::ItemFlags const flags = reset_item->flags();
+ if (color_to_compare == theme_color)
+ parent_->colorsTV_model_.item(row, resetcolumn)->
+ setFlags(flags & ~Qt::ItemIsEnabled);
else
- color_to_compare = new_color_;
-
- if (column == LightColorColumn || column == LightColorResetColumn) {
- theme_color = parent_->getCurrentThemeColor(row,
LightColorColumn);
- reset_item = colorsTV_model_.item(row, LightColorResetColumn);
- Qt::ItemFlags const flags = reset_item->flags();
- if (color_to_compare == theme_color)
- parent_->colorsTV_model_.item(row,
LightColorResetColumn)->
- setFlags(flags & ~Qt::ItemIsEnabled);
- else
- parent_->colorsTV_model_.item(row,
LightColorResetColumn)->
- setFlags(flags | Qt::ItemIsEnabled);
-
- } else if (column == DarkColorColumn || column == DarkColorResetColumn)
{
- theme_color = parent_->getCurrentThemeColor(row,
DarkColorColumn);
- reset_item = colorsTV_model_.item(row, DarkColorResetColumn);
- Qt::ItemFlags const flags = reset_item->flags();
- if (color_to_compare == theme_color)
- parent_->colorsTV_model_.item(row,
DarkColorResetColumn)->
- setFlags(flags & ~Qt::ItemIsEnabled);
- else
- parent_->colorsTV_model_.item(row,
DarkColorResetColumn)->
- setFlags(flags | Qt::ItemIsEnabled);
- parent_->colorsTV->update();
-
- } else return;
+ parent_->colorsTV_model_.item(row, resetcolumn)->
+ setFlags(flags | Qt::ItemIsEnabled);
changed();
}
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs