small changes
This commit is contained in:
@@ -3,7 +3,7 @@ cmake_policy(SET CMP0017 NEW) # need include() with .cmake
|
||||
cmake_policy(SET CMP0072 NEW) # FindOpenGL prefers GLVND by default
|
||||
project(QAD)
|
||||
set(QAD_MAJOR 2)
|
||||
set(QAD_MINOR 11)
|
||||
set(QAD_MINOR 12)
|
||||
set(QAD_REVISION 0)
|
||||
set(QAD_SUFFIX )
|
||||
set(QAD_COMPANY SHS)
|
||||
|
||||
@@ -94,6 +94,11 @@ void PIValueTreeEdit::retranslate() {
|
||||
for (const auto & i: label_labels) {
|
||||
i.second->setText(PIVariantEditorBase::vtTr(i.first));
|
||||
}
|
||||
if (tab_widget) {
|
||||
for (int i = 0; i < tab_widget->count(); ++i) {
|
||||
tab_widget->setTabText(i, PIVariantEditorBase::vtTr(Q2PIString(tab_widget->tabBar()->tabData(i).toString())));
|
||||
}
|
||||
}
|
||||
grid->retranslate();
|
||||
}
|
||||
|
||||
@@ -345,7 +350,7 @@ PIValueTreeEdit * PIValueTreeEdit::addTreeEdit(const PIValueTree & vt) {
|
||||
rp << vt.name();
|
||||
ve->root_path = rp;
|
||||
ve->parent_tree = this;
|
||||
ve->setGrouping((Grouping)vt.attribute(Attribute::grouping, Parent).toInt());
|
||||
ve->setGrouping((Grouping)vt.attribute(Attribute::grouping, Parent).toEnum().selectedValue());
|
||||
ve->setFullEditMode(is_full_edit);
|
||||
ve->setValue(vt);
|
||||
switch (real_grouping) {
|
||||
|
||||
@@ -21,6 +21,7 @@ REGISTER_PIVARIANTEDITOR(uint, PIVariantEditors::Int);
|
||||
REGISTER_PIVARIANTEDITOR(float, PIVariantEditors::Double);
|
||||
REGISTER_PIVARIANTEDITOR(double, PIVariantEditors::Double);
|
||||
REGISTER_PIVARIANTEDITOR(PIString, PIVariantEditors::String);
|
||||
REGISTER_PIVARIANTEDITOR(PIStringList, PIVariantEditors::StringList);
|
||||
REGISTER_PIVARIANTEDITOR(PITime, PIVariantEditors::Time);
|
||||
REGISTER_PIVARIANTEDITOR(PIDate, PIVariantEditors::Date);
|
||||
REGISTER_PIVARIANTEDITOR(PIDateTime, PIVariantEditors::DateTime);
|
||||
@@ -275,6 +276,92 @@ void PIVariantEditors::String::applyAttributes(const PIVariantMap & a) {
|
||||
}
|
||||
|
||||
|
||||
// PIVariantEditors::StringList
|
||||
|
||||
PIVariantEditors::StringList::StringList() {
|
||||
combo = new EComboBox(this);
|
||||
combo->setEditable(true);
|
||||
combo->setLineEdit(new CLineEdit);
|
||||
combo->setInsertPolicy(QComboBox::NoInsert);
|
||||
layout()->setContentsMargins(0, 0, 0, 0);
|
||||
layout()->addWidget(combo);
|
||||
auto newButton = [this](QString icon, QString tooltip) {
|
||||
auto * b = new QToolButton(this);
|
||||
b->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
b->setIcon(QIcon(icon));
|
||||
b->setToolTip(tooltip);
|
||||
layout()->addWidget(b);
|
||||
return b;
|
||||
};
|
||||
butt_apply = newButton(":/icons/list-edit-apply.png", tr("Apply"));
|
||||
butt_add = newButton(":/icons/list-add.png", tr("Add"));
|
||||
butt_del = newButton(":/icons/list-remove.png", tr("Remove"));
|
||||
butt_clear = newButton(":/icons/edit-clear.png", tr("Clear"));
|
||||
connect(combo->lineEdit(), SIGNAL(returnPressed()), butt_apply, SLOT(click()));
|
||||
connect(butt_apply, &QToolButton::clicked, [this]() {
|
||||
int ci = combo->currentIndex();
|
||||
if (ci < 0) return;
|
||||
combo->setItemText(ci, combo->currentText());
|
||||
});
|
||||
connect(butt_add, &QToolButton::clicked, [this]() { combo->addItem(combo->currentText()); });
|
||||
connect(butt_del, &QToolButton::clicked, [this]() {
|
||||
if (combo->currentIndex() < 0) return;
|
||||
combo->removeItem(combo->currentIndex());
|
||||
});
|
||||
connect(butt_clear, &QToolButton::clicked, [this]() {
|
||||
if (QMessageBox::question(nullptr, tr("Clear All"), tr("Clear All?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
||||
setValue(PIStringList());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void PIVariantEditors::StringList::setValue(const PIVariant & v) {
|
||||
int pi = combo->currentIndex();
|
||||
combo->clear();
|
||||
combo->addItems(PI2QStringList(v.toStringList()));
|
||||
if (combo->count() > 0) {
|
||||
if (pi < combo->count() && pi >= 0) {
|
||||
combo->setCurrentIndex(pi);
|
||||
} else {
|
||||
combo->setCurrentIndex(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PIVariant PIVariantEditors::StringList::value() const {
|
||||
QStringList l;
|
||||
for (int i = 0; i < combo->count(); ++i)
|
||||
l << combo->itemText(i);
|
||||
return Q2PIStringList(l);
|
||||
}
|
||||
|
||||
|
||||
PIVariantMap PIVariantEditors::StringList::attributes() const {
|
||||
return {
|
||||
{Attribute::readOnly, !combo->isEditable()},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
void PIVariantEditors::StringList::applyAttributes(const PIVariantMap & a) {
|
||||
bool ro = a.value(Attribute::readOnly, !combo->isEditable()).toBool();
|
||||
combo->setEditable(!ro);
|
||||
butt_apply->setEnabled(!ro);
|
||||
butt_add->setEnabled(!ro);
|
||||
butt_del->setEnabled(!ro);
|
||||
butt_clear->setEnabled(!ro);
|
||||
}
|
||||
|
||||
|
||||
void PIVariantEditors::StringList::retranslate() {
|
||||
butt_apply->setToolTip(tr("Apply"));
|
||||
butt_add->setToolTip(tr("Add"));
|
||||
butt_del->setToolTip(tr("Remove"));
|
||||
butt_clear->setToolTip(tr("Clear"));
|
||||
}
|
||||
|
||||
|
||||
// PIVariantEditors::Color
|
||||
|
||||
PIVariantMap PIVariantEditors::Color::attributes() const {
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <QTimeEdit>
|
||||
#include <clineedit.h>
|
||||
#include <colorbutton.h>
|
||||
#include <ecombobox.h>
|
||||
#include <piqt.h>
|
||||
|
||||
namespace PIVariantEditors {
|
||||
@@ -126,6 +127,23 @@ private:
|
||||
};
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT StringList: public PIVariantEditorBase {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
StringList();
|
||||
void setValue(const PIVariant & v) override;
|
||||
PIVariant value() const override;
|
||||
PIVariantMap attributes() const override;
|
||||
|
||||
private:
|
||||
void applyAttributes(const PIVariantMap & a) override;
|
||||
void retranslate() override;
|
||||
EComboBox * combo;
|
||||
QToolButton *butt_apply, *butt_add, *butt_del, *butt_clear;
|
||||
};
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT Color: public PIVariantEditorBase {
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<file>../../icons/configure.png</file>
|
||||
<file>../../icons/border-line.png</file>
|
||||
<file>../../icons/list-add.png</file>
|
||||
<file>../../icons/list-remove.png</file>
|
||||
<file>../../icons/code-variable.png</file>
|
||||
<file>../../icons/code-struct.png</file>
|
||||
<file>../../icons/code-union.png</file>
|
||||
|
||||
@@ -40,7 +40,7 @@ QString ScrollSpinBoxPlugin::group() const {
|
||||
|
||||
|
||||
QIcon ScrollSpinBoxPlugin::icon() const {
|
||||
return QIcon();
|
||||
return QIcon(":/icons/scroll_spin.png");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user