commit 0fb677e8291aadf2ab93aaeec251679372308d20
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
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
lyx-cvs@lists.lyx.org
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to