Skip to content

Commit 2078b0a

Browse files
committed
if press color button, pen color will set.
if long press color button, first change color then set.
1 parent bb35d6c commit 2078b0a

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

src/SetupWidgets.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,10 @@ void setupWidgets(){
144144
floatingWidget->addWidget(toolButtons[NEXT]);
145145
floatingWidget->addWidget(toolButtons[PAGEMENU]);
146146
floatingWidget->addWidget(closeButton);
147-
floatingWidget->addWidget(create_color_button(QColor("#0078d7")));
148-
floatingWidget->addWidget(create_color_button(QColor("#00ae4d")));
149-
floatingWidget->addWidget(create_color_button(QColor("#ffc000")));
150-
floatingWidget->addWidget(create_color_button(QColor("#ff0000")));
147+
floatingWidget->addWidget(create_color_button(QColor("#0078d7"), false));
148+
floatingWidget->addWidget(create_color_button(QColor("#00ae4d"), false));
149+
floatingWidget->addWidget(create_color_button(QColor("#ffc000"), false));
150+
floatingWidget->addWidget(create_color_button(QColor("#ff0000"), false));
151151
// disable minify if fual enabled
152152
toolButtons[MINIFY]->setEnabled(!get_bool("fuar"));
153153

@@ -306,7 +306,7 @@ void setupWidgets(){
306306

307307
// Color button offset is 100
308308
for (int i = 0; i < num_of_color; i++) {
309-
toolButtons[i+100] = create_color_button(colors[i]);
309+
toolButtons[i+100] = create_color_button(colors[i], true);
310310
gridLayout->addWidget(toolButtons[i+100], (i+1) / rowsize, (i+1) % rowsize, Qt::AlignCenter);
311311
}
312312
colorDialog->setLayout(gridLayout);

src/widgets/Button.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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){

src/widgets/Button.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ typedef std::function<void()> ButtonEvent;
1212

1313
QPushButton* create_button(int id, ButtonEvent event);
1414
QPushButton* create_button_text(const char* icon, ButtonEvent event);
15-
QPushButton* create_color_button(QColor color);
15+
QPushButton* create_color_button(QColor color, bool read_only);
1616

1717
void set_icon(const char* name, QPushButton* button);
1818
void set_icon_combined(const char* name, const char* subname, QPushButton * button);

0 commit comments

Comments
 (0)