8 #include "ui_plotwidget_editor.h" 10 #include <QVBoxLayout> 12 #include <QListWidgetItem> 14 #include <QMouseEvent> 15 #include <QPushButton> 16 #include <QDialogButtonBox> 20 const double MAX_DOUBLE = std::numeric_limits<double>::max() / 2;
23 : QDialog(parent), ui(new
Ui::PlotWidgetEditor), _plotwidget_origin(plotwidget)
27 installEventFilter(
this);
43 auto layout =
new QVBoxLayout();
44 ui->framePlotPreview->setLayout(layout);
53 restoreGeometry(settings.value(
"PlotwidgetEditor.geometry").toByteArray());
57 ui->radioLines->setChecked(
true);
61 ui->radioPoints->setChecked(
true);
65 ui->radioSticks->setChecked(
true);
69 ui->radioBoth->setChecked(
true);
72 ui->lineLimitMax->setValidator(
new QDoubleValidator(
this));
73 ui->lineLimitMin->setValidator(
new QDoubleValidator(
this));
81 ui->checkBoxMin->setChecked(
true);
82 ui->lineLimitMin->setText(QString::number(ylimits.min));
86 ui->lineLimitMin->setText(QString::number(suggested_limits.
min));
91 ui->checkBoxMax->setChecked(
true);
92 ui->lineLimitMax->setText(QString::number(ylimits.max));
96 ui->lineLimitMax->setText(QString::number(suggested_limits.
max));
102 if (
ui->listWidget->count() != 0)
104 ui->listWidget->item(0)->setSelected(
true);
111 settings.setValue(
"PlotwidgetEditor.geometry", saveGeometry());
119 auto selected =
ui->listWidget->selectedItems();
120 if (selected.size() != 1)
124 auto item = selected.front();
127 auto row_widget =
dynamic_cast<EditorRowWidget*
>(
ui->listWidget->itemWidget(item));
128 auto name = row_widget->text();
129 if (row_widget->color() != c)
131 row_widget->setColor(c);
140 auto wheel_layout =
new QVBoxLayout();
141 wheel_layout->setMargin(0);
142 wheel_layout->setSpacing(5);
143 ui->widgetWheel->setLayout(wheel_layout);
160 QSignalBlocker
block(
ui->editColotText);
161 ui->editColotText->setText(col.name());
169 int row_count =
ui->listWidget->count();
170 for (
int row = 0; row < row_count; row++)
172 auto item =
ui->listWidget->item(row);
173 auto widget =
ui->listWidget->itemWidget(item);
178 ui->listWidget->takeItem(row);
180 widget->deleteLater();
194 ui->widgetColor->setEnabled(
false);
198 ui->frameLimits->setEnabled(
false);
199 ui->frameStyle->setEnabled(
false);
207 for (
auto& it : colors)
209 auto alias = it.first;
210 auto color = it.second;
211 auto item =
new QListWidgetItem();
213 item->setData(Qt::UserRole, it.first);
215 ui->listWidget->addItem(item);
217 item->setSizeHint(plot_row->sizeHint());
218 ui->listWidget->setItemWidget(item, plot_row);
235 if (
ui->checkBoxMax->isChecked() && !
ui->lineLimitMax->text().isEmpty())
238 double val =
ui->lineLimitMax->text().toDouble(&ok);
245 if (
ui->checkBoxMin->isChecked() && !
ui->lineLimitMin->text().isEmpty())
248 double val =
ui->lineLimitMin->text().toDouble(&ok);
258 ui->lineLimitMin->setText(QString::number(ymax));
259 ui->lineLimitMax->setText(QString::number(ymin));
271 if (text.size() == 7 && text[0] ==
'#' && QColor::isValidColor(text))
313 ui->lineLimitMax->setEnabled(checked);
319 ui->lineLimitMin->setEnabled(checked);
334 ui->lineLimitMin->setText(QString::number(limits.
min));
335 ui->lineLimitMax->setText(QString::number(limits.
max));
364 setMouseTracking(
true);
365 const QSize button_size(20, 20);
367 auto layout =
new QHBoxLayout();
369 _text =
new QLabel(text,
this);
378 auto icon = QIcon(
":/resources/svg/trash.svg");
379 _delete_button->setStyleSheet(
"QPushButton:hover{ border: 0px;}");
386 layout->addWidget(
_text);
408 return _text->text();
413 setStyleSheet(QString(
"color: %1;").
arg(color.name()));
424 auto selected = ui->listWidget->selectedItems();
425 if (selected.size() == 0 || ui->listWidget->count() == 0)
427 ui->widgetColor->setEnabled(
false);
428 ui->editColotText->setText(
"#000000");
432 ui->widgetColor->setEnabled(
true);
434 if (selected.size() != 1)
439 auto item = selected.front();
440 auto row_widget =
dynamic_cast<EditorRowWidget*
>(ui->listWidget->itemWidget(item));
443 ui->editColotText->setText(row_widget->color().name());
auto arg(const Char *name, const T &arg) -> detail::named_arg< Char, T >
NLOHMANN_BASIC_JSON_TPL_DECLARATION void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL &j1, nlohmann::NLOHMANN_BASIC_JSON_TPL &j2) noexcept(//NOLINT(readability-inconsistent-declaration-parameter-name) is_nothrow_move_constructible< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value &&//NOLINT(misc-redundant-expression) is_nothrow_move_assignable< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value)
exchanges the values of two JSON objects
static void block(LexState *ls)