@@ -43,14 +43,33 @@ QPushButton* create_button(int id, ButtonEvent event) {
4343 button->setStyleSheet (QString (" background-color: none;" ));
4444 return button;
4545}
46- QPushButton* create_color_button (QColor color ){
46+ QPushButton* create_color_button (QColor fcolor, bool read_only ){
4747 QPushButton* button = new QPushButton ();
4848 button->setFixedSize (butsize, butsize);
49+ QColor color = fcolor;
4950 button->setStyleSheet (QString (
5051 " background-color: " +color.name ()+" ;"
5152 " border-radius: 12px;"
5253 ));
53- QObject::connect (button, &QPushButton::clicked, [=]() {
54+ static size_t time = get_epoch ();
55+
56+ QObject::connect (button, &QPushButton::pressed, [=]() mutable {
57+ time = get_epoch ();
58+ printf (" %ld %ld\n " , get_epoch (), time);
59+ });
60+
61+ QObject::connect (button, &QPushButton::released, [=]() mutable {
62+ size_t diff = get_epoch () - time;
63+ if (diff > 500000 && ! read_only){
64+ QColor newColor = QColorDialog::getColor (drawing->penColor , NULL , _ (" Select Color" ));
65+ if (newColor.isValid ()) {
66+ color = newColor;
67+ button->setStyleSheet (QString (
68+ " background-color: " +color.name ()+" ;"
69+ " border-radius: 12px;"
70+ ));
71+ }
72+ }
5473 drawing->penColor = color;
5574 set_string (" color" , drawing->penColor .name ());
5675 if (drawing->getPen () == ERASER){
0 commit comments