Wed, 20 Mar 2013 21:19:35 +0200
Turned the test palette action into a set color action for mass object coloring.
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
1 | /* |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
2 | * LDForge: LDraw parts authoring CAD |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
3 | * Copyright (C) 2013 Santeri `arezey` Piippo |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
4 | * |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
5 | * This program is free software: you can redistribute it and/or modify |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
6 | * it under the terms of the GNU General Public License as published by |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
7 | * the Free Software Foundation, either version 3 of the License, or |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
8 | * (at your option) any later version. |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
9 | * |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
10 | * This program is distributed in the hope that it will be useful, |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
13 | * GNU General Public License for more details. |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
14 | * |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU General Public License |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
17 | */ |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
18 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
19 | #include "common.h" |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
20 | #include "gui.h" |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
21 | #include <qgraphicsscene.h> |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
22 | #include <qgraphicsview.h> |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
23 | #include <qicon.h> |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
24 | #include <qboxlayout.h> |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
25 | #include <qgraphicsitem.h> |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
26 | #include <qevent.h> |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
27 | #include "zz_colorSelectDialog.h" |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
28 | #include "colors.h" |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
29 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
30 | static const short g_dNumColumns = 8; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
31 | static const short g_dNumRows = 10; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
32 | static const short g_dSquareSize = 32; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
33 | static const long g_lWidth = (g_dNumColumns * g_dSquareSize); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
34 | static const long g_lHeight = (g_dNumRows * g_dSquareSize); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
35 | static const long g_lMaxHeight = ((MAX_COLORS / g_dNumColumns) * g_dSquareSize); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
36 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
37 | // ============================================================================= |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
38 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
39 | // ============================================================================= |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
40 | ColorSelectDialog::ColorSelectDialog (short dDefault, QWidget* parent) : QDialog (parent) { |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
41 | qScene = new QGraphicsScene; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
42 | qView = new QGraphicsView (qScene); |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
43 | dSelColor = dDefault; |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
44 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
45 | // not really an icon but eh |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
46 | qScene->setBackgroundBrush (QPixmap ("icons/checkerboard.png")); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
47 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
48 | qScene->setSceneRect (0, 0, g_lWidth, g_lMaxHeight); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
49 | qView->setSceneRect (0, 0, g_lWidth, g_lMaxHeight); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
50 | |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
51 | drawScene (); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
52 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
53 | IMPLEMENT_DIALOG_BUTTONS |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
54 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
55 | // Set the size of the view |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
56 | const long lWidth = g_lWidth + 21; // HACK |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
57 | qView->setMaximumWidth (lWidth); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
58 | qView->setMinimumWidth (lWidth); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
59 | qView->setMaximumHeight (g_lHeight); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
60 | qView->setMinimumHeight (g_lHeight); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
61 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
62 | qColorInfo = new QLabel; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
63 | drawColorInfo (); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
64 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
65 | QHBoxLayout* qLayout = new QHBoxLayout; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
66 | qLayout->addWidget (qColorInfo); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
67 | qLayout->addWidget (qButtons); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
68 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
69 | QVBoxLayout* qLayout2 = new QVBoxLayout; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
70 | qLayout2->addWidget (qView); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
71 | qLayout2->addLayout (qLayout); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
72 | setLayout (qLayout2); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
73 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
74 | setWindowIcon (QIcon ("icons/palette.png")); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
75 | setWindowTitle (APPNAME_DISPLAY " - choose a color"); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
76 | } |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
77 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
78 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
79 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
80 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
81 | void ColorSelectDialog::drawScene () { |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
82 | const double fPenWidth = 1.0f; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
83 | QPen qPen (Qt::black, fPenWidth, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
84 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
85 | // Draw the color rectangles. |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
86 | qScene->clear (); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
87 | for (short i = 0; i < MAX_COLORS; ++i) { |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
88 | color* meta = g_LDColors[i]; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
89 | if (!meta) |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
90 | continue; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
91 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
92 | const double x = (i % g_dNumColumns) * g_dSquareSize; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
93 | const double y = (i / g_dNumColumns) * g_dSquareSize; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
94 | const double w = (g_dSquareSize) - (fPenWidth / 2); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
95 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
96 | QColor qColor (meta->zColor.chars ()); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
97 | qColor.setAlpha (meta->fAlpha * 255.0); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
98 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
99 | uchar ucLuma = (0.2126f * qColor.red()) + |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
100 | (0.7152f * qColor.green()) + (0.0722 * qColor.blue()); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
101 | bool bDark = (ucLuma < 80); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
102 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
103 | qScene->addRect (x, y, w, w, qPen, qColor); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
104 | QGraphicsTextItem* qText = qScene->addText (str::mkfmt ("%lu", i).chars()); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
105 | qText->setDefaultTextColor ((bDark) ? Qt::white : Qt::black); |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
106 | qText->setPos (x, y); |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
107 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
108 | if (i == dSelColor) { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
109 | QGraphicsPixmapItem* qCursorPic; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
110 | qCursorPic = qScene->addPixmap (QPixmap ("icons/colorcursor.png")); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
111 | qCursorPic->setPos (x, y); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
112 | } |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
113 | } |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
114 | } |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
115 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
116 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
117 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
118 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
119 | void ColorSelectDialog::drawColorInfo () { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
120 | if (dSelColor == -1) { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
121 | qColorInfo->setText ("---"); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
122 | return; |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
123 | } |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
124 | |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
125 | qColorInfo->setText (str::mkfmt ("%d - %s", |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
126 | dSelColor, g_LDColors[dSelColor]->zName.chars())); |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
127 | } |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
128 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
129 | // ============================================================================= |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
130 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
131 | // ============================================================================= |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
132 | void ColorSelectDialog::mousePressEvent (QMouseEvent* event) { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
133 | QPointF qPoint = qView->mapToScene (event->pos ()); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
134 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
135 | ulong x = ((ulong)qPoint.x () - (g_dSquareSize / 2)) / g_dSquareSize; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
136 | ulong y = ((ulong)qPoint.y () - (g_dSquareSize / 2)) / g_dSquareSize; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
137 | ulong idx = (y * g_dNumColumns) + x; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
138 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
139 | color* col = g_LDColors[idx]; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
140 | if (!col) |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
141 | return; |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
142 | |
49
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
143 | dSelColor = idx; |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
144 | drawScene (); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
145 | drawColorInfo (); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
146 | } |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
147 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
148 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
149 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
150 | // ============================================================================= |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
151 | bool ColorSelectDialog::staticDialog (short& dValue, short dDefault, QWidget* parent) { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
152 | ColorSelectDialog dlg (dDefault, parent); |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
153 | |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
154 | if (dlg.exec () && dlg.dSelColor != -1) { |
242f6ea0f5e5
Finished with the color selection dialog
Santeri Piippo <crimsondusk64@gmail.com>
parents:
48
diff
changeset
|
155 | dValue = dlg.dSelColor; |
48
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
156 | return true; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
157 | } |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
158 | |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
159 | return false; |
113eb6446c61
Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
160 | } |