11 #include <QColorDialog>
12 #include <QDialogButtonBox>
13 #include <QFormLayout>
14 #include <QHBoxLayout>
16 #include <QVBoxLayout>
21 auto *verticalLayout =
new QVBoxLayout();
22 verticalLayout->setSpacing(3);
23 verticalLayout->setMargin(3);
24 setLayout(verticalLayout);
25 auto *horizontalLayout =
new QHBoxLayout();
27 horizontalLayout->addWidget(
new QLabel(tr(
"Variable")));
29 variableName =
new QLineEdit(QString::fromLatin1(
"$var%1").arg(count++));
32 verticalLayout->addLayout(horizontalLayout);
38 auto *curveTab =
new QWidget();
39 auto *curveLayout =
new QFormLayout(curveTab);
40 curveLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Lookup")));
42 curveLayout->setWidget(0, QFormLayout::FieldRole,
curveLookup);
43 tabWidget->addTab(curveTab, QString(tr(
"Curve")));
48 auto *colorCurveTab =
new QWidget();
49 auto *colorCurveLayout =
new QFormLayout(colorCurveTab);
50 colorCurveLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Lookup")));
53 tabWidget->addTab(colorCurveTab, QString(tr(
"Color Curve")));
58 auto *intTab =
new QWidget();
59 auto *intFormLayout =
new QFormLayout(intTab);
60 intFormLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Default")));
61 intFormLayout->setWidget(1, QFormLayout::LabelRole,
new QLabel(tr(
"Min")));
62 intFormLayout->setWidget(2, QFormLayout::LabelRole,
new QLabel(tr(
"Max")));
64 intFormLayout->setWidget(0, QFormLayout::FieldRole,
intDefault);
65 intMin =
new QLineEdit(tr(
"0"));
66 intFormLayout->setWidget(1, QFormLayout::FieldRole,
intMin);
67 intMax =
new QLineEdit(tr(
"10"));
68 intFormLayout->setWidget(2, QFormLayout::FieldRole,
intMax);
69 tabWidget->addTab(intTab, QString(tr(
"Int")));
74 auto *floatTab =
new QWidget();
75 auto *floatFormLayout =
new QFormLayout(floatTab);
76 floatFormLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Default")));
77 floatFormLayout->setWidget(1, QFormLayout::LabelRole,
new QLabel(tr(
"Min")));
78 floatFormLayout->setWidget(2, QFormLayout::LabelRole,
new QLabel(tr(
"Max")));
80 floatFormLayout->setWidget(0, QFormLayout::FieldRole,
floatDefault);
82 floatFormLayout->setWidget(1, QFormLayout::FieldRole,
floatMin);
84 floatFormLayout->setWidget(2, QFormLayout::FieldRole,
floatMax);
86 tabWidget->addTab(floatTab, QString(tr(
"Float")));
91 auto *vectorTab =
new QWidget();
92 auto *vectorFormLayout =
new QFormLayout(vectorTab);
93 vectorFormLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Default")));
94 vectorFormLayout->setWidget(1, QFormLayout::LabelRole,
new QLabel(tr(
"Min")));
95 vectorFormLayout->setWidget(2, QFormLayout::LabelRole,
new QLabel(tr(
"Max")));
99 auto *compLayout =
new QHBoxLayout();
103 vectorFormLayout->setLayout(0, QFormLayout::FieldRole, compLayout);
105 vectorFormLayout->setWidget(1, QFormLayout::FieldRole,
vectorMin);
107 vectorFormLayout->setWidget(2, QFormLayout::FieldRole,
vectorMax);
109 tabWidget->addTab(vectorTab, QString(tr(
"Vector")));
114 auto *colorTab =
new QWidget();
115 auto *colorLayout =
new QFormLayout(colorTab);
119 colorLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Color")));
120 colorLayout->setWidget(0, QFormLayout::FieldRole,
colorWidget);
122 QPixmap colorPix(30, 30);
123 colorPix.fill(
color);
125 tabWidget->addTab(colorTab, QString(tr(
"Color")));
132 auto *swatchTab =
new QWidget();
133 auto *swatchLayout =
new QFormLayout(swatchTab);
135 swatchLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"Lookup")));
136 swatchLayout->setWidget(0, QFormLayout::FieldRole,
swatchLookup);
140 swatchLayout->setWidget(1, QFormLayout::LabelRole,
new QLabel(tr(
"Colors")));
142 swatchLayout->setWidget(2, QFormLayout::LabelRole,
new QLabel(QString()));
143 swatchLayout->setWidget(2, QFormLayout::FieldRole,
grayPaletteBtn);
144 tabWidget->addTab(swatchTab, QString(tr(
"Swatch")));
149 auto *stringTab =
new QWidget();
150 auto *stringLayout =
new QFormLayout(stringTab);
158 stringLayout->setWidget(0, QFormLayout::LabelRole,
new QLabel(tr(
"String Name")));
160 stringLayout->setWidget(1, QFormLayout::LabelRole,
new QLabel(tr(
"String Type")));
162 stringLayout->setWidget(2, QFormLayout::LabelRole,
new QLabel(tr(
"String Default")));
165 tabWidget->addTab(stringTab, QString(tr(
"String")));
170 auto* buttonBox =
new QDialogButtonBox();
171 buttonBox->setOrientation(Qt::Horizontal);
172 buttonBox->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
174 verticalLayout->addWidget(buttonBox);
176 QObject::connect(buttonBox, SIGNAL(accepted()),
this, SLOT(accept()));
177 QObject::connect(buttonBox, SIGNAL(rejected()),
this, SLOT(reject()));
184 if (
color.isValid()) {
185 QPixmap colorPix(30, 30);
186 colorPix.fill(
color);
187 (
dynamic_cast<QPushButton*
>(sender()))->setIcon(QIcon(colorPix));
193 return (
"[1,0,0],[1,.6,0],[1,1,0],[0,1,0],[0,1,1],[0,0,1],[.6,.1,.6],[1,0,1],[1,1,1],[0,0,0]");
196 "[1,1,1],[.9,.9,.9],[.8,.8,.8],[.7,.7,.7],[.6,.6,.6],[.5,.5,.5],[.4,.4,.4],[.3,.3,.3],[.2,.2,.2],[0,0,0]");
198 return (
"[1,1,1],[.5,.5,.5],[0,0,0]");
QLineEdit * vectorDefault0
QRadioButton * grayPaletteBtn
const char * initSwatch() const
void colorChooseClicked()
ExprAddDialog(int &count, QWidget *parent=nullptr)
QLineEdit * vectorDefault1
QRadioButton * rainbowPaletteBtn
QLineEdit * stringDefaultWidget
QLineEdit * stringNameWidget
QComboBox * stringTypeWidget
QLineEdit * colorCurveLookup
QLineEdit * vectorDefault2
QPushButton * colorWidget