From e3a87fbb9b8e1bbd99f5eb37be7c2f8b0b09721c Mon Sep 17 00:00:00 2001 From: andrey Date: Tue, 6 Jul 2021 17:36:40 +0300 Subject: [PATCH] EComboBox and StringListEdit improvments --- icons/list-edit-apply.png | Bin 0 -> 37203 bytes libs/qglview/propertyeditor.cpp | 6 +- libs/widgets/ecombobox.cpp | 8 ++- libs/widgets/ecombobox.h | 2 +- libs/widgets/lang/qad_widgets_en.ts | 82 +++++++++++++++++----------- libs/widgets/lang/qad_widgets_ru.ts | 82 +++++++++++++++++----------- libs/widgets/qad_widgets.qrc | 81 +++++++++++++-------------- libs/widgets/qvariantedit.cpp | 58 ++++++++++---------- libs/widgets/qvariantedit.h | 5 +- 9 files changed, 178 insertions(+), 146 deletions(-) create mode 100644 icons/list-edit-apply.png diff --git a/icons/list-edit-apply.png b/icons/list-edit-apply.png new file mode 100644 index 0000000000000000000000000000000000000000..fffaa9858af3745d70e44c0439a9668125649f11 GIT binary patch literal 37203 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

9CK>jOLdS{fgLo%I#eTjlXj} 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 literal 0 HcmV?d00001 diff --git a/libs/qglview/propertyeditor.cpp b/libs/qglview/propertyeditor.cpp index cce7e95..ed0f81b 100644 --- a/libs/qglview/propertyeditor.cpp +++ b/libs/qglview/propertyeditor.cpp @@ -231,11 +231,11 @@ void Delegate::changedFlag() { int row = 0; qulonglong val = 0; QList chldr; - mi = p.child(row, 1); + mi = model->index(row, 1, p); while (mi.isValid()) { chldr << mi; model->setData(mi, !mi.data(Qt::UserRole + 4).toBool(), Qt::UserRole + 4); - mi = p.child(++row, 1); + mi =model->index(++row, 1, p); } bool cc = cmi.data(Qt::UserRole + 3).toBool(); qulonglong cv = cmi.data(Qt::UserRole).toULongLong(); @@ -358,8 +358,8 @@ void PropertyEditor::rebuild() { tli->setFont(0, font_b); setItemBackColor(tli, Qt::darkGray); setItemForeColor(tli, Qt::white); + tli->setFirstColumnSpanned(true); addTopLevelItem(tli); - setFirstItemColumnSpanned(tli, true); tli->setExpanded(true); for (int i = ps; i < pe; ++i) { props << o->property(i); diff --git a/libs/widgets/ecombobox.cpp b/libs/widgets/ecombobox.cpp index c8125ab..cee4ce6 100644 --- a/libs/widgets/ecombobox.cpp +++ b/libs/widgets/ecombobox.cpp @@ -1,12 +1,11 @@ -#include #include -#include #include +#include #include "ecombobox.h" #include "qad_types.h" -class EModel: public QStandardItemModel { +class QAD_WIDGETS_EXPORT EModel: public QStandardItemModel { public: EModel(QObject * parent = 0): QStandardItemModel(parent) { #if QT_VERSION < 0x050000 @@ -21,10 +20,12 @@ protected: } #if QT_VERSION >= 0x050000 Qt::DropActions supportedDragActions() const {return Qt::MoveAction;} + Qt::DropActions supportedDropActions() const {return Qt::MoveAction;} #endif }; + EComboBox::EComboBox(QWidget * parent): QComboBox(parent) { setView(&iv); setModel(new EModel()); @@ -52,6 +53,7 @@ EComboBox::EComboBox(QWidget * parent): QComboBox(parent) { header.layout()->addWidget(&filter); header.setParent(iv.header()); connect(&filter, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString))); + connect(model(), &EModel::layoutChanged, this, &EComboBox::rowsChanged); } diff --git a/libs/widgets/ecombobox.h b/libs/widgets/ecombobox.h index 4d1c88e..fd58ee1 100644 --- a/libs/widgets/ecombobox.h +++ b/libs/widgets/ecombobox.h @@ -52,7 +52,7 @@ private slots: void filterChanged(const QString & text, bool first = false); signals: - + void rowsChanged(); }; #endif // ECOMBOBOX_H diff --git a/libs/widgets/lang/qad_widgets_en.ts b/libs/widgets/lang/qad_widgets_en.ts index 0bf28b5..93e4d3a 100644 --- a/libs/widgets/lang/qad_widgets_en.ts +++ b/libs/widgets/lang/qad_widgets_en.ts @@ -5,7 +5,7 @@ CLineEdit - + Clear @@ -233,8 +233,8 @@ EComboBox - - + + Filter @@ -242,8 +242,8 @@ EvalSpinBox - - + + Clear @@ -251,32 +251,32 @@ MatrixEdit - + Cols: - + Rows: - + Null - + 0 - + Identity - + I @@ -284,23 +284,24 @@ PathEdit - + All files(*) - - + + Choose - + Select directory - + + Select file @@ -378,8 +379,8 @@ - - + + Press F1 for details @@ -525,57 +526,57 @@ QPIConfigWidget - + Name - + Value - + Type - + Comment - + Add item ... - + Add node ... - + Convert to item - + Convert to node - + Remove - + Expand all - + Collapse all @@ -625,7 +626,7 @@ QVariantEdit - + Invalid value @@ -655,23 +656,38 @@ StringListEdit + + + Apply + + - + Add - + Remove - + Clear + + + Clear All + + + + + Clear All? + + diff --git a/libs/widgets/lang/qad_widgets_ru.ts b/libs/widgets/lang/qad_widgets_ru.ts index e933d26..cce04c7 100644 --- a/libs/widgets/lang/qad_widgets_ru.ts +++ b/libs/widgets/lang/qad_widgets_ru.ts @@ -5,7 +5,7 @@ CLineEdit - + Clear Сбросить @@ -233,8 +233,8 @@ EComboBox - - + + Filter Фильтр @@ -242,8 +242,8 @@ EvalSpinBox - - + + Clear Очистить @@ -251,32 +251,32 @@ MatrixEdit - + Cols: Колонки: - + Rows: Строки: - + Null Обнулить - + 0 - + Identity Единичная - + I @@ -284,23 +284,24 @@ PathEdit - + All files(*) Все файлы(*) - - + + Choose Выберите - + Select directory Выберите директорию - + + Select file Выберите файл @@ -308,8 +309,8 @@ QCodeEdit - - + + Press F1 for details Нажмите F1 для справочной информации @@ -525,57 +526,57 @@ QPIConfigWidget - + Name Имя - + Value Значение - + Type Тип - + Comment Описание - + Add item ... Добавить поле ... - + Add node ... Добавить секцию ... - + Convert to item Преобразовать в значение - + Convert to node Преобразовать в секцию - + Remove Удалить - + Expand all Свернуть все - + Collapse all Развернуть все @@ -625,7 +626,7 @@ QVariantEdit - + Invalid value Неверное значение @@ -655,23 +656,38 @@ StringListEdit + + + Apply + Применить + - + Add Добавить - + Remove Удалить - + Clear Очистить + + + Clear All + Очистить всё + + + + Clear All? + Очистить всё? + diff --git a/libs/widgets/qad_widgets.qrc b/libs/widgets/qad_widgets.qrc index eb6398f..781f937 100644 --- a/libs/widgets/qad_widgets.qrc +++ b/libs/widgets/qad_widgets.qrc @@ -1,42 +1,43 @@ - - ../../icons/edit-clear-locationbar-rtl.png - ../../icons/edit-copy.png - ../../icons/edit-paste.png - ../../icons/edit-find.png - ../../icons/edit-delete.png - ../../icons/edit-clear.png - ../../icons/dialog-ok-apply.png - ../../icons/dialog-warning.png - ../../icons/tools-wizard.png - ../../icons/go-next.png - ../../icons/go-previous.png - ../../icons/item.png - ../../icons/item-add.png - ../../icons/node.png - ../../icons/node-add.png - ../../icons/list-add.png - ../../icons/document-new.png - ../../icons/document-edit.png - ../../icons/document-close.png - ../../icons/document-save.png - ../../icons/document-save-as.png - ../../icons/document-save-all.png - ../../icons/document-revert.png - ../../icons/document-open.png - ../../icons/document-open-recent.png - ../../icons/alpha.png - ../../icons/chardialog.png - ../../icons/clineedit.png - ../../icons/colorbutton.png - ../../icons/ecombobox.png - ../../icons/evalspinbox.png - ../../icons/qcodeedit.png - ../../icons/qpiconsole.png - ../../icons/qvariantedit.png - ../../icons/spinslider.png - ../../icons/code-word.png - ../../icons/f1.png - ../../icons/scroll_spin.png - + +../../icons/edit-clear-locationbar-rtl.png +../../icons/edit-copy.png +../../icons/edit-paste.png +../../icons/edit-find.png +../../icons/edit-delete.png +../../icons/edit-clear.png +../../icons/dialog-ok-apply.png +../../icons/dialog-warning.png +../../icons/tools-wizard.png +../../icons/go-next.png +../../icons/go-previous.png +../../icons/item.png +../../icons/item-add.png +../../icons/node.png +../../icons/node-add.png +../../icons/list-add.png +../../icons/list-edit-apply.png +../../icons/document-new.png +../../icons/document-edit.png +../../icons/document-close.png +../../icons/document-save.png +../../icons/document-save-as.png +../../icons/document-save-all.png +../../icons/document-revert.png +../../icons/document-open.png +../../icons/document-open-recent.png +../../icons/alpha.png +../../icons/chardialog.png +../../icons/clineedit.png +../../icons/colorbutton.png +../../icons/ecombobox.png +../../icons/evalspinbox.png +../../icons/qcodeedit.png +../../icons/qpiconsole.png +../../icons/qvariantedit.png +../../icons/spinslider.png +../../icons/code-word.png +../../icons/f1.png +../../icons/scroll_spin.png + diff --git a/libs/widgets/qvariantedit.cpp b/libs/widgets/qvariantedit.cpp index 5f7d8a9..9842354 100644 --- a/libs/widgets/qvariantedit.cpp +++ b/libs/widgets/qvariantedit.cpp @@ -1,14 +1,7 @@ #include "qvariantedit.h" #include #include - - -StringListEdit::~StringListEdit() { - delete combo; - delete butt_add; - delete butt_del; - delete butt_clear; -} +#include QStringList StringListEdit::value() const { @@ -19,10 +12,15 @@ QStringList StringListEdit::value() const { void StringListEdit::setValue(const QStringList & v) { + int pi = combo->currentIndex(); combo->clear(); if (!v.isEmpty()) { combo->addItems(v); - combo->setCurrentIndex(0); + if (pi < combo->count() && pi >= 0) { + combo->setCurrentIndex(pi); + } else { + combo->setCurrentIndex(0); + } } } @@ -47,36 +45,44 @@ void StringListEdit::clear() { } -StringListEdit::StringListEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRight, this) { +StringListEdit::StringListEdit(QWidget * parent): QWidget(parent) { + lay = new QBoxLayout(QBoxLayout::LeftToRight); combo = new EComboBox(this); combo->setEditable(true); combo->setLineEdit(new CLineEdit); combo->setInsertPolicy(QComboBox::NoInsert); + butt_apply = new QPushButton(this); butt_add = new QPushButton(this); butt_del = new QPushButton(this); butt_clear = new QPushButton(this); - /*butt_add->setIconSize(QSize(16, 16)); - butt_del->setIconSize(QSize(16, 16)); - butt_clear->setIconSize(QSize(16, 16));*/ + butt_apply->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); butt_add->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); butt_del->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); butt_clear->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); + butt_apply->setIcon(QIcon(":/icons/list-edit-apply.png")); butt_add->setIcon(QIcon(":/icons/list-add.png")); - butt_del->setIcon(QIcon(":/icons/edit-delete.png")); + butt_del->setIcon(QIcon(":/icons/list-remove.png")); butt_clear->setIcon(QIcon(":/icons/edit-clear.png")); + butt_apply->setToolTip(tr("Apply")); butt_add->setToolTip(tr("Add")); butt_del->setToolTip(tr("Remove")); butt_clear->setToolTip(tr("Clear")); - lay.setContentsMargins(0, 0, 0, 0); - lay.setSpacing(2); - lay.addWidget(combo); - lay.addWidget(butt_add); - lay.addWidget(butt_del); - lay.addWidget(butt_clear); + lay->setContentsMargins(0, 0, 0, 0); + lay->setSpacing(2); + lay->addWidget(combo); + lay->addWidget(butt_apply); + lay->addWidget(butt_add); + lay->addWidget(butt_del); + lay->addWidget(butt_clear); + setLayout(lay); connect(combo->lineEdit(), SIGNAL(returnPressed()), this, SLOT(editItem())); + connect(combo, SIGNAL(rowsChanged()), this, SIGNAL(valueChanged())); + connect(butt_apply, SIGNAL(clicked(bool)), this, SLOT(editItem())); connect(butt_add, SIGNAL(clicked(bool)), this, SLOT(addItem())); connect(butt_del, SIGNAL(clicked(bool)), this, SLOT(delItem())); - connect(butt_clear, SIGNAL(clicked(bool)), this, SLOT(clear())); + connect(butt_clear, &QPushButton::clicked, [this](){ + if (QMessageBox::question(this, tr("Clear All"), tr("Clear All?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) clear(); + }); } @@ -95,6 +101,7 @@ void StringListEdit::editItem() { int ci = combo->currentIndex(); if (ci < 0) return; combo->setItemText(ci, combo->currentText()); + emit valueChanged(); } @@ -104,14 +111,11 @@ PathEdit::PathEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRig is_dir = is_abs = is_save = false; filter = tr("All files(*)"); line = new CLineEdit(this); - //line->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); butt_select = new QPushButton(this); - //butt_select->setIconSize(QSize(16, 16)); butt_select->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); butt_select->setIcon(QIcon(":/icons/document-open.png")); butt_select->setToolTip(tr("Choose") + " ..."); lay.setContentsMargins(0, 0, 0, 0); - //lay.setSpacing(2); lay.addWidget(line); lay.addWidget(butt_select); connect(line, SIGNAL(textChanged(QString)), this, SIGNAL(valueChanged())); @@ -188,7 +192,6 @@ QVariantEdit::~QVariantEdit() { void QVariantEdit::resizeEvent(QResizeEvent * e) { - //_resize(); QWidget::resizeEvent(e); } @@ -275,8 +278,6 @@ void QVariantEdit::_recreate(const QVariant & new_value) { case QMetaType::Double: #endif _espin = new EvalSpinBox(this); - //_spin->setDecimals(5); - //_spin->setRange(-1E+199, 1E+199); _cur_edit = _espin; connect(_espin, SIGNAL(valueChanged(double)), this, SLOT(_changed())); break; @@ -409,10 +410,8 @@ void QVariantEdit::_recreate(const QVariant & new_value) { } } } - //qDebug() << _cur_edit; if (_cur_edit) { _resize(); - //_cur_edit->show(); } _value = new_value; } @@ -610,7 +609,6 @@ void QVariantEdit::_newPath() { _value = _value.toString(); connect(_path, SIGNAL(valueChanged()), this, SLOT(_changed())); _resize(); - //_cur_edit->show(); } diff --git a/libs/widgets/qvariantedit.h b/libs/widgets/qvariantedit.h index 4bd466a..434e1fb 100644 --- a/libs/widgets/qvariantedit.h +++ b/libs/widgets/qvariantedit.h @@ -39,16 +39,15 @@ class QAD_WIDGETS_EXPORT StringListEdit: public QWidget Q_OBJECT public: StringListEdit(QWidget * parent = 0); - ~StringListEdit(); QStringList value() const; private: virtual void changeEvent(QEvent * e); - QBoxLayout lay; + QBoxLayout * lay; EComboBox * combo; - QPushButton * butt_add, * butt_del, * butt_clear; + QPushButton * butt_apply, * butt_add, * butt_del, * butt_clear; public slots: void setValue(const QStringList & v);