Skip to content

Commit 7c290e4

Browse files
committed
ui improvement
1 parent 616f660 commit 7c290e4

File tree

5 files changed

+64
-92
lines changed

5 files changed

+64
-92
lines changed

src/SetupWidgets.cpp

Lines changed: 42 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ QWidget *modeDialog;
1212

1313
static QVBoxLayout *penSettingsLayout;
1414
static QVBoxLayout *pageSettingsLayout;
15-
static QVBoxLayout *shapeSettingsLayout;
1615

1716
void setupWidgets(){
1817
// Pen Settings Menu
@@ -25,12 +24,9 @@ void setupWidgets(){
2524

2625
// Pen button with menu
2726
toolButtons[PENMENU] = create_button(":images/pen.svg", [=](){
28-
if(floatingSettings->current_page >= 0){
29-
floatingSettings->setHide();
30-
return;
31-
}
3227
if(drawing->getPen() != PEN){
3328
setPen(PEN);
29+
setPenStyle(SPLINE);
3430
return;
3531
}
3632
floatingSettings->setPage(0);
@@ -39,12 +35,9 @@ void setupWidgets(){
3935

4036
// Eraser button with menu
4137
toolButtons[ERASERMENU] = create_button(":images/eraser.svg", [=](){
42-
if(floatingSettings->current_page >= 0){
43-
floatingSettings->setHide();
44-
return;
45-
}
4638
if(drawing->getPen() != ERASER){
4739
setPen(ERASER);
40+
setPenStyle(SPLINE);
4841
return;
4942
}
5043
floatingSettings->setPage(0);
@@ -65,19 +58,6 @@ void setupWidgets(){
6558
floatingWidget->moveAction();
6659
});
6760

68-
// Shape settings menu
69-
QWidget *shapeSettings = new QWidget();
70-
shapeSettings->setStyleSheet(QString("background-color: none;"));
71-
shapeSettingsLayout = new QVBoxLayout(shapeSettings);
72-
shapeSettingsLayout->setSpacing(0);
73-
shapeSettingsLayout->setContentsMargins(0, 0, 0, 0);
74-
floatingSettings->addPage(shapeSettings);
75-
76-
// Page menu button
77-
toolButtons[SHAPEMENU] = create_button(":images/spline.svg", [=](){
78-
floatingSettings->setPage(2);
79-
floatingWidget->moveAction();
80-
});
8161

8262
floatingSettings->setHide();
8363

@@ -86,11 +66,9 @@ void setupWidgets(){
8666

8767
floatingWidget->addWidget(toolButtons[PENMENU]);
8868
floatingWidget->addWidget(toolButtons[ERASERMENU]);
89-
floatingWidget->addWidget(toolButtons[SHAPEMENU]);
90-
floatingWidget->addWidget(toolButtons[PAGEMENU]);
9169
floatingWidget->addWidget(toolButtons[BACK]);
9270
floatingWidget->addWidget(toolButtons[NEXT]);
93-
floatingWidget->addWidget(toolButtons[CLEAR]);
71+
floatingWidget->addWidget(toolButtons[PAGEMENU]);
9472
floatingWidget->addWidget(toolButtons[MINIFY]);
9573
floatingWidget->addWidget(create_color_button(QColor("#0078d7")));
9674
floatingWidget->addWidget(create_color_button(QColor("#00ae4d")));
@@ -167,16 +145,44 @@ void setupWidgets(){
167145

168146

169147
/********** penTypes **********/
170-
QWidget *stylDialog = new QWidget();
171-
QGridLayout *styleLayout = new QGridLayout(stylDialog);
148+
QWidget *penTypeMainWidget = new QWidget();
149+
QHBoxLayout *penTypeMainLayout = new QHBoxLayout(penTypeMainWidget);
150+
151+
QWidget *styleDialog = new QWidget();
152+
QGridLayout *styleLayout = new QGridLayout(styleDialog);
153+
154+
styleLayout->addWidget(penButtons[PEN], 0, 0, Qt::AlignCenter);
155+
styleLayout->addWidget(penButtons[MARKER], 0, 1, Qt::AlignCenter);
156+
styleLayout->addWidget(penButtons[ERASER], 0, 2, Qt::AlignCenter);
157+
styleLayout->addWidget(toolButtons[CLEAR], 0, 3, Qt::AlignCenter);
158+
159+
penSettingsLayout->addWidget(styleDialog);
160+
161+
penTypeDialog = new QWidget();
162+
QGridLayout *penTypeLayout = new QGridLayout(penTypeDialog);
163+
penTypeLayout->addWidget(penButtons[NORMAL], 0, 0, Qt::AlignCenter);
164+
penTypeLayout->addWidget(penButtons[DOTLINE], 0, 1, Qt::AlignCenter);
165+
penTypeLayout->addWidget(penButtons[LINELINE], 0, 2, Qt::AlignCenter);
166+
167+
168+
penTypeMainLayout->addWidget(styleDialog);
169+
penTypeMainLayout->addWidget(penTypeDialog);
170+
171+
penSettingsLayout->addWidget(penTypeMainWidget);
172+
173+
/********** penModes **********/
174+
modeDialog = new QWidget();
175+
QGridLayout *modeLayout = new QGridLayout(modeDialog);
172176
// spline
173-
styleLayout->addWidget(penButtons[PEN], 0, 0, Qt::AlignCenter);
174-
styleLayout->addWidget(penButtons[ERASER], 0, 1, Qt::AlignCenter);
175-
styleLayout->addWidget(penButtons[MARKER], 0, 2, Qt::AlignCenter);
176-
styleLayout->addWidget(penButtons[SELECTION], 0, 3, Qt::AlignCenter);
177-
styleLayout->addWidget(toolButtons[COLORPICKER], 0, 4, Qt::AlignCenter);
177+
modeLayout->addWidget(penButtons[SPLINE], 0, 0);
178+
modeLayout->addWidget(penButtons[LINE], 0, 1);
179+
modeLayout->addWidget(penButtons[CIRCLE], 0, 2);
180+
modeLayout->addWidget(penButtons[TRIANGLE], 0, 3);
181+
modeLayout->addWidget(penButtons[RECTANGLE], 0, 4);
182+
modeLayout->addWidget(penButtons[VECTOR], 0, 5);
183+
modeLayout->addWidget(penButtons[VECTOR2], 0, 6);
178184

179-
penSettingsLayout->addWidget(stylDialog);
185+
penSettingsLayout->addWidget(modeDialog);
180186

181187

182188
/********** Color selection options **********/
@@ -185,11 +191,12 @@ void setupWidgets(){
185191
QGridLayout *gridLayout = new QGridLayout(colorDialog);
186192

187193
// Create buttons for each color
194+
gridLayout->addWidget(toolButtons[COLORPICKER], 0, 0, Qt::AlignCenter);
188195

189196
// Color button offset is 100
190197
for (int i = 0; i < num_of_color; i++) {
191198
toolButtons[i+100] = create_color_button(colors[i]);
192-
gridLayout->addWidget(toolButtons[i+100], i / rowsize, i % rowsize, Qt::AlignCenter);
199+
gridLayout->addWidget(toolButtons[i+100], (i+1) / rowsize, (i+1) % rowsize, Qt::AlignCenter);
193200
}
194201
colorDialog->setLayout(gridLayout);
195202
penSettingsLayout->addWidget(colorDialog);
@@ -200,44 +207,16 @@ void setupWidgets(){
200207
colorDialog->size().width()/2
201208
);
202209

203-
/*********** Pen menu done *********/
204-
/***********************************/
205-
/*********** Shape menu ***********/
206-
207-
/********** penModes **********/
208-
modeDialog = new QWidget();
209-
QGridLayout *modeLayout = new QGridLayout(modeDialog);
210-
// spline
211-
modeLayout->addWidget(penButtons[SPLINE], 0, 0, Qt::AlignCenter);
212-
modeLayout->addWidget(penButtons[LINE], 0, 1, Qt::AlignCenter);
213-
modeLayout->addWidget(penButtons[CIRCLE], 0, 2, Qt::AlignCenter);
214-
modeLayout->addWidget(penButtons[TRIANGLE], 0, 3, Qt::AlignCenter);
215-
modeLayout->addWidget(penButtons[RECTANGLE], 0, 4, Qt::AlignCenter);
216-
modeLayout->addWidget(penButtons[VECTOR], 1, 0, Qt::AlignCenter);
217-
modeLayout->addWidget(penButtons[VECTOR2], 1, 1);
218-
219-
shapeSettingsLayout->addWidget(modeDialog);
220-
221210

222211
/********** pen type **********/
223212

224-
penTypeDialog = new QWidget();
225-
QGridLayout *penTypeLayout = new QGridLayout(penTypeDialog);
226-
penTypeLayout->addWidget(penButtons[NORMAL], 0, 0, Qt::AlignCenter);
227-
penTypeLayout->addWidget(penButtons[DOTLINE], 0, 1, Qt::AlignCenter);
228-
penTypeLayout->addWidget(penButtons[LINELINE], 0, 2, Qt::AlignCenter);
229-
230-
shapeSettingsLayout->addWidget(penTypeDialog);
231-
232213

233214
// resize color dialog
234215
colorDialog->setFixedSize(
235216
colorDialog->size().width(),
236217
butsize*4+ padding*5
237218
);
238219

239-
/*********** Shape menu done *********/
240-
/***********************************/
241220
/************ Page Menu ************/
242221

243222
/********** page number **********/
@@ -327,6 +306,7 @@ void setupWidgets(){
327306
miscLayout->addWidget(toolButtons[SCREENSHOT], 1, 1, Qt::AlignCenter);
328307
miscLayout->addWidget(toolButtons[FULLSCREEN], 1, 2, Qt::AlignCenter);
329308
miscLayout->addWidget(toolButtons[ROTATE], 1, 3, Qt::AlignCenter);
309+
miscLayout->addWidget(penButtons[SELECTION], 1, 4, Qt::AlignCenter);
330310
if(get_bool("fuar")){
331311
toolButtons[SAVE]->setEnabled(false);
332312
toolButtons[OPEN]->setEnabled(false);

src/constants.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@
4444
#define PENMENU 16
4545
#define ERASERMENU 17
4646
#define PAGEMENU 18
47-
#define SHAPEMENU 19
48-
#define SAVE 20
49-
#define OPEN 21
50-
#define SCREENSHOT 22
47+
#define SAVE 19
48+
#define OPEN 20
49+
#define SCREENSHOT 21
5150

src/tools/mainWindow.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,8 @@ void mainWindowInit(){
263263
drawing = new DrawingWidget(mainWidget);
264264
ov = new OverView();
265265
setupTools();
266-
setupPenType();
267266
setupBackground();
267+
setupPenType();
268268
setupScreenShot();
269269
setupSaveLoad();
270270

@@ -275,4 +275,6 @@ void mainWindowInit(){
275275
mainWindow->showFullScreen();
276276
QScreen *screen = QGuiApplication::primaryScreen();
277277
mainWindow->resize(screen->size().width(), screen->size().height());
278+
279+
setPen(PEN);
278280
}

src/tools/pen.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,25 @@ static bool pen_init = false;
1313
void setPen(int type){
1414
sliderLock = true;
1515
drawing->setPen(type);
16+
17+
penButtons[PEN]->show();
18+
penButtons[MARKER]->show();
19+
penButtons[ERASER]->show();
20+
toolButtons[CLEAR]->show();
21+
1622
switch(type){
1723
case ERASER:
24+
penButtons[type]->hide();
1825
thicknessSlider->setRange(10*scale,200*scale);
1926
break;
2027
case MARKER:
28+
penButtons[type]->hide();
29+
toolButtons[CLEAR]->hide();
2130
thicknessSlider->setRange(1,50*scale);
2231
break;
2332
case PEN:
33+
penButtons[type]->hide();
34+
toolButtons[CLEAR]->hide();
2435
thicknessSlider->setRange(1,50*scale);
2536
break;
2637

@@ -121,7 +132,6 @@ void setupPenType(){
121132

122133
thicknessSlider = new QSlider(Qt::Horizontal);
123134
thicknessSlider->setSingleStep(1);
124-
setPen(PEN);
125135

126136
QObject::connect(thicknessSlider, &QSlider::valueChanged, [=](int value) {
127137
if(!sliderLock){

src/tools/update.cpp

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,16 @@ void penStyleEvent(){
1111
penTypeDialog->setVisible(getPen() != ERASER && getPen() != SELECTION);
1212
toolButtons[PENMENU]->setStyleSheet("background-color: none;");
1313
toolButtons[ERASERMENU]->setStyleSheet("background-color: none;");
14-
if(drawing->getPen() == PEN){
14+
if(drawing->getPen() != ERASER){
1515
toolButtons[PENMENU]->setStyleSheet("background-color:"+drawing->penColor.name()+";");
1616
} else if (drawing->getPen() == ERASER){
1717
toolButtons[ERASERMENU]->setStyleSheet("background-color:"+drawing->penColor.name()+";");
1818
}
19-
switch(drawing->getPenStyle()){
20-
case LINE:
21-
set_icon(":images/line.svg", toolButtons[SHAPEMENU]);
22-
break;
23-
case CIRCLE:
24-
set_icon(":images/circle.svg", toolButtons[SHAPEMENU]);
25-
break;
26-
case RECTANGLE:
27-
set_icon(":images/rectangle.svg", toolButtons[SHAPEMENU]);
28-
break;
29-
case TRIANGLE:
30-
set_icon(":images/triangle.svg", toolButtons[SHAPEMENU]);
31-
break;
32-
case VECTOR:
33-
set_icon(":images/vector.svg", toolButtons[SHAPEMENU]);
34-
break;
35-
case VECTOR2:
36-
set_icon(":images/vector2.svg", toolButtons[SHAPEMENU]);
37-
break;
38-
default:
39-
set_icon(":images/spline.svg", toolButtons[SHAPEMENU]);
40-
break;
19+
if(drawing->getPen() == MARKER){
20+
set_icon(":images/marker.svg", toolButtons[PENMENU]);
21+
} else {
22+
set_icon(":images/pen.svg", toolButtons[PENMENU]);
4123
}
42-
4324
}
4425

4526

0 commit comments

Comments
 (0)