HAL
comment_color_picker.cpp
Go to the documentation of this file.
2 #include <QDebug>
3 #include <QRadioButton>
4 #include <QDialogButtonBox>
5 
6 namespace hal
7 {
8 
10  mRedColor(QColor(Qt::red)), mGreenColor(QColor(Qt::green)), mYellowColor(QColor(Qt::yellow))
11  {
12  mDefaultColor = QColor("#A9B7C6");
13 
14  mLayout = new QVBoxLayout(this);
15  QPixmap pix(16,16);
16 
17  mRedButton = new QRadioButton("Red", this);
18  pix.fill(mRedColor);
19  mRedButton->setIcon(pix);
20  mRedButton->setChecked(true);
21  //mRedButton->setStyleSheet("background-color: blue;");
22 
23  mYellowButton = new QRadioButton("Yellow", this);
24  pix.fill(mYellowColor);
25  mYellowButton->setIcon(pix);
26 
27  mGreenButton = new QRadioButton("Green", this);
28  pix.fill(mGreenColor);
29  mGreenButton->setIcon(pix);
30 
31 
32  mDefaultButton = new QRadioButton("Default", this);
33  pix.fill(mDefaultColor); // stylesheet dependent
34  mDefaultButton->setIcon(pix);
35 
37 
38  mLayout->addWidget(mRedButton);
39  mLayout->addWidget(mYellowButton);
40  mLayout->addWidget(mGreenButton);
41  mLayout->addWidget(mDefaultButton);
42  mLayout->addStretch();
43  mLayout->addWidget(btnBox);
44 
45  connect(btnBox, &QDialogButtonBox::accepted, this, &CommentColorPicker::handleOkClicked);
46  connect(btnBox, &QDialogButtonBox::rejected, this, &CommentColorPicker::handleCancelClicked);
47 
48  // hacky as hell
49 // show();
50 // setFixedSize(size());
51 // hide();
52 
53  }
54 
56  {
57  switch (color)
58  {
59  case Color::Red: mRedButton->setChecked(true); break;
60  case Color::Yellow: mYellowButton->setChecked(true); break;
61  case Color::Green: mGreenButton->setChecked(true); break;
62  default: mDefaultButton->setChecked(true);
63  }
64  }
65 
67  {
68  if(mRedButton->isChecked())
69  return mRedColor;
70  if(mYellowButton->isChecked())
71  return mYellowColor;
72  if(mGreenButton->isChecked())
73  return mGreenColor;
74  if(mDefaultButton->isChecked())
75  return mDefaultColor;
76  Q_ASSERT(1==0); // all legal cases covered by if-statements above
77  return QColor();
78  }
79 
80  void CommentColorPicker::handleOkClicked()
81  {
83  }
84 
85  void CommentColorPicker::handleCancelClicked()
86  {
88  }
89 
90 
91 }
CommentColorPicker(QWidget *parent=nullptr)
void setInitColor(CommentColorPicker::Color color)
void setChecked(bool)
void setIcon(const QIcon &icon)
void addStretch(int stretch)
void addWidget(QWidget *widget, int stretch, Qt::Alignment alignment)
virtual void done(int r)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void fill(const QColor &color)