Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorLabelFilterGroup Class Reference

#include <kis_color_label_button.h>

+ Inheritance diagram for KisColorLabelFilterGroup:

Public Slots

void reset ()
 
void setAllVisibility (const bool vis)
 

Public Member Functions

QList< QAbstractButton * > checkedViableButtons () const
 
int countCheckedViableButtons () const
 
int countViableButtons () const
 
QSet< int > getActiveLabels () const
 
 KisColorLabelFilterGroup (QObject *parent)
 
int minimumRequiredChecked () const
 
void setMinimumRequiredChecked (int checkedBtns)
 
void setViableLabels (const QList< int > &viableLabels)
 
void setViableLabels (const QSet< int > &buttons)
 
QList< QAbstractButton * > viableButtons () const
 
 ~KisColorLabelFilterGroup ()
 

Private Member Functions

void disableAll ()
 

Private Attributes

int minimumCheckedButtons
 
QSet< int > viableColorLabels
 

Detailed Description

Definition at line 48 of file kis_color_label_button.h.

Constructor & Destructor Documentation

◆ KisColorLabelFilterGroup()

KisColorLabelFilterGroup::KisColorLabelFilterGroup ( QObject * parent)

Definition at line 199 of file kis_color_label_button.cpp.

200 : QButtonGroup(parent)
202{
203}

◆ ~KisColorLabelFilterGroup()

KisColorLabelFilterGroup::~KisColorLabelFilterGroup ( )

Definition at line 205 of file kis_color_label_button.cpp.

206{
207}

Member Function Documentation

◆ checkedViableButtons()

QList< QAbstractButton * > KisColorLabelFilterGroup::checkedViableButtons ( ) const

Definition at line 259 of file kis_color_label_button.cpp.

259 {
260 QList<QAbstractButton*> checkedButtons = viableButtons();
261
262 KritaUtils::filterContainer(checkedButtons, [](QAbstractButton* btn){
263 return (btn->isChecked());
264 });
265
266 return checkedButtons;
267}
QList< QAbstractButton * > viableButtons() const
auto filterContainer(C &container, KeepIfFunction keepIf) -> decltype(bool(keepIf(container[0])), void())

References KritaUtils::filterContainer(), and viableButtons().

◆ countCheckedViableButtons()

int KisColorLabelFilterGroup::countCheckedViableButtons ( ) const

Definition at line 269 of file kis_color_label_button.cpp.

269 {
270 return checkedViableButtons().count();
271}
QList< QAbstractButton * > checkedViableButtons() const

References checkedViableButtons().

◆ countViableButtons()

int KisColorLabelFilterGroup::countViableButtons ( ) const

Definition at line 273 of file kis_color_label_button.cpp.

273 {
274 return viableColorLabels.count();
275}

References viableColorLabels.

◆ disableAll()

void KisColorLabelFilterGroup::disableAll ( )
private

Definition at line 293 of file kis_color_label_button.cpp.

293 {
294 Q_FOREACH( QAbstractButton* btn, buttons() ) {
295 btn->setDisabled(true);
296 }
297}
QString buttons(const T &ev)

References buttons().

◆ getActiveLabels()

QSet< int > KisColorLabelFilterGroup::getActiveLabels ( ) const

Definition at line 247 of file kis_color_label_button.cpp.

247 {
248 QSet<int> checkedLabels = QSet<int>();
249
250 Q_FOREACH( int index, viableColorLabels ) {
251 if (button(index)->isChecked()) {
252 checkedLabels.insert(index);
253 }
254 }
255
256 return checkedLabels.count() == viableColorLabels.count() && minimumRequiredChecked() > 0 ? QSet<int>() : checkedLabels;
257}
QString button(const QWheelEvent &ev)

References button(), minimumRequiredChecked(), and viableColorLabels.

◆ minimumRequiredChecked()

int KisColorLabelFilterGroup::minimumRequiredChecked ( ) const

Definition at line 282 of file kis_color_label_button.cpp.

283{
285}

References minimumCheckedButtons.

◆ reset

void KisColorLabelFilterGroup::reset ( )
slot

Definition at line 287 of file kis_color_label_button.cpp.

287 {
288 Q_FOREACH( QAbstractButton* btn, viableButtons() ) {
289 btn->setChecked(true);
290 }
291}

References viableButtons().

◆ setAllVisibility

void KisColorLabelFilterGroup::setAllVisibility ( const bool vis)
slot

Definition at line 299 of file kis_color_label_button.cpp.

300{
301 Q_FOREACH( QAbstractButton* btn, buttons() ) {
302 btn->setVisible(vis);
303 }
304}

References buttons().

◆ setMinimumRequiredChecked()

void KisColorLabelFilterGroup::setMinimumRequiredChecked ( int checkedBtns)

Definition at line 277 of file kis_color_label_button.cpp.

278{
279 minimumCheckedButtons = checkedBtns;
280}

References minimumCheckedButtons.

◆ setViableLabels() [1/2]

void KisColorLabelFilterGroup::setViableLabels ( const QList< int > & viableLabels)

Definition at line 240 of file kis_color_label_button.cpp.

241{
242 QSet<int> uniqueViableLabels;
243 uniqueViableLabels = QSet<int>(viableLabels.cbegin(), viableLabels.cend());
244 setViableLabels(uniqueViableLabels);
245}
void setViableLabels(const QSet< int > &buttons)

References setViableLabels().

◆ setViableLabels() [2/2]

void KisColorLabelFilterGroup::setViableLabels ( const QSet< int > & buttons)

Definition at line 219 of file kis_color_label_button.cpp.

219 {
220 setAllVisibility(false);
221 disableAll();
222 QSet<int> removed = viableColorLabels.subtract(labels);
223
224 viableColorLabels = labels;
225
226 if (viableColorLabels.count() > 1) {
227 setAllVisibility(true);
228 Q_FOREACH( int index, viableColorLabels) {
229 if (button(index)) {
230 button(index)->setEnabled(true);
231 }
232 }
233 }
234
235 Q_FOREACH( int index, removed ) {
236 button(index)->setChecked(true);
237 }
238}
void setAllVisibility(const bool vis)

References button(), disableAll(), setAllVisibility(), and viableColorLabels.

◆ viableButtons()

QList< QAbstractButton * > KisColorLabelFilterGroup::viableButtons ( ) const

Definition at line 209 of file kis_color_label_button.cpp.

209 {
211
212 Q_FOREACH( int index, viableColorLabels ) {
213 viableButtons.append(button(index));
214 }
215
216 return viableButtons;
217}

References button(), viableButtons(), and viableColorLabels.

Member Data Documentation

◆ minimumCheckedButtons

int KisColorLabelFilterGroup::minimumCheckedButtons
private

Definition at line 73 of file kis_color_label_button.h.

◆ viableColorLabels

QSet<int> KisColorLabelFilterGroup::viableColorLabels
private

Definition at line 72 of file kis_color_label_button.h.


The documentation for this class was generated from the following files: