diff --git a/cockatrice/src/interface/widgets/general/display/color_bar.cpp b/cockatrice/src/interface/widgets/general/display/color_bar.cpp index 5c9376b3d..ba513e6b6 100644 --- a/cockatrice/src/interface/widgets/general/display/color_bar.cpp +++ b/cockatrice/src/interface/widgets/general/display/color_bar.cpp @@ -62,6 +62,11 @@ void ColorBar::paintEvent(QPaintEvent *) for (const QString &key : sortedKeys) { int value = colors[key]; double ratio = double(value) / total; + + if (ratio <= minRatioThreshold) { + continue; + } + int segmentWidth = int(ratio * w); // Ensure the segment width is at least 1 to avoid degenerate rectangles diff --git a/cockatrice/src/interface/widgets/general/display/color_bar.h b/cockatrice/src/interface/widgets/general/display/color_bar.h index 92b92fb4c..252a8ddc1 100644 --- a/cockatrice/src/interface/widgets/general/display/color_bar.h +++ b/cockatrice/src/interface/widgets/general/display/color_bar.h @@ -14,6 +14,10 @@ public: explicit ColorBar(const QMap &colors, QWidget *parent = nullptr); void setColors(const QMap &colors); + void setMinPercentThreshold(double treshold) + { + minRatioThreshold = treshold / 100.0; // store as ratio + } QSize minimumSizeHint() const override; protected: @@ -29,6 +33,7 @@ protected: private: QMap colors; bool isHovered = false; + double minRatioThreshold = 0.0; // 0.05 means 5% QColor colorFromName(const QString &name) const; QString tooltipForPosition(int x) const; diff --git a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp index 64c2b0cac..2f8491ccb 100644 --- a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp +++ b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp @@ -96,6 +96,7 @@ ArchidektApiResponseDeckEntryDisplayWidget::ArchidektApiResponseDeckEntryDisplay auto colors = response.getColors(); ColorBar *colorBar = new ColorBar(colors, this); + colorBar->setMinPercentThreshold(3); colorBar->setFixedHeight(22); headerLayout->addWidget(colorBar);