}
// set up the style sheet strings used to specify color for status field
-// labels [done "once", but once for each LabelledIcon that's constucted,
-// so more than 20 copies overall]
+// labels [done "once", but once for each LabelledIcon that's constructed,
+// so about 30 copies overall with 3.6's status conditions]
void NetHackQtLabelledIcon::initHighlight()
{
// note: string "green" is much darker than enum Qt::green
: (comp_mode == (lower ? SmallerIsBetter
: BiggerIsBetter)) ? hl_better
: hl_worse);
+ } else if (turn_count) {
+ // if we don't want to highlight this status field but it is
+ // currently highlighted (perhaps optional Score recently went
+ // up and has just been toggled off), remove the highlight
+ unhighlight();
}
}
}
// The field passed to xp.setLabel() for its better vs worse comparison
// gets swapped from Xp to Exp or vice versa, yielding a nonsensical
// comparison for the first status update after the 'showexp' toggle.
-// Toggling 'showscore' while Score is highlighted leaves the highlight
-// on blank space until it times out. (Time isn't highlighted and Exp
-// is combined with Xp so always updated; only Score is affected.)
//
extern "C" {
QString buf;
if (first_set) {
+ // set toggle-detection flags for optional fields
was_polyd = Upolyd ? true : false;
had_exp = ::flags.showexp ? true : false;
- // not '#ifndef SCORE_ON_BOTL' here; use the variable and the widget
+ // not conditionalized upon '#ifdef SCORE_ON_BOTL' here
had_score = ::flags.showscore ? true : false; // false when disabled
score.setLabel(""); // init if enabled, one-time set if disabled
}