105 lines
3.4 KiB
C++
105 lines
3.4 KiB
C++
#include "pifile.h"
|
|
#include "pijson.h"
|
|
#include "piqt_connection_edit.h"
|
|
#include "pivaluetree_conversions.h"
|
|
#include "pivaluetree_edit.h"
|
|
|
|
#include <QApplication>
|
|
#include <QFileDialog>
|
|
#include <QScrollArea>
|
|
#include <QTimer>
|
|
#include <QTranslator>>
|
|
#include <evalspinbox.h>
|
|
#include <piintrospection_server.h>
|
|
#include <qad_types.h>
|
|
#include <qpiconfig.h>
|
|
|
|
int main(int argc, char * argv[]) {
|
|
QApplication a(argc, argv);
|
|
auto * qtr = new QTranslator();
|
|
qtr->load("c:/work/test_ru.qm");
|
|
a.installTranslator(qtr);
|
|
|
|
PIValueTree root, group, array;
|
|
root.addChild({"bool", false});
|
|
root.addChild({
|
|
"integer",
|
|
256,
|
|
{{PIValueTree::Attribute::minimum, -100}, {PIValueTree::Attribute::maximum, 200}, {PIValueTree::Attribute::singleStep, 5}}
|
|
});
|
|
root.addChild({"Label here", PIVariant(), {{PIValueTree::Attribute::isLabel, true}}});
|
|
root.addChild({"string", "str"});
|
|
group.addChild({"substr", "str2"});
|
|
group.addChild({"real", 12.3});
|
|
group.setName("group");
|
|
array.setAttribute(PIValueTree::Attribute::arrayType, "string");
|
|
array.setAttribute(PIValueTree::Attribute::arrayResize, true);
|
|
array.setAttribute(PIValueTree::Attribute::arrayMinCount, 0);
|
|
array.setAttribute(PIValueTree::Attribute::arrayMaxCount, 10);
|
|
array.setName("array");
|
|
array.addChild({"0", "1E+2"});
|
|
array.addChild({"1", -5});
|
|
array.addChild({"3", 0.1});
|
|
root.addChild(group);
|
|
root.addChild(array);
|
|
PIString json = PIValueTreeConversions::toJSON(root).toJSON(PIJSON::Tree);
|
|
// piCout << PIValueTreeConversions::fromJSON(PIJSON::fromJSON(json));
|
|
|
|
PIFile f("C:/work/config.conf", PIIODevice::ReadOnly);
|
|
auto vt = PIValueTreeConversions::fromText(&f);
|
|
PIVariantTypes::Enum en;
|
|
en << "first"
|
|
<< "second";
|
|
en << PIVariantTypes::Enumerator(10, "TEN");
|
|
en.selectValue(1);
|
|
vt.addChild({"Enum", en});
|
|
// piCout << PIValueTreeConversions::toText(vt);
|
|
|
|
QScrollArea area;
|
|
area.setWidgetResizable(true);
|
|
PIValueTreeEdit e;
|
|
e.setGroupingEnabled(false);
|
|
e.setFullEditMode(true);
|
|
e.setGeometry(500, 400, 100, 50);
|
|
// e.setValue(PIValueTreeConversions::fromJSON(PIJSON::fromJSON(PIValueTreeConversions::toJSON(vt).toJSON())));
|
|
e.setValue(vt);
|
|
area.setWidget(&e);
|
|
area.show();
|
|
// piCout << PIValueTreeConversions::toText(e.value()); //.toJSON(PIJSON::Tree);
|
|
|
|
QTimer timer;
|
|
QObject::connect(&timer, &QTimer::timeout, [&]() { e.rollback(); });
|
|
// timer.start(5);
|
|
// QTimer::singleShot(1000, [&e](){e.setValue(50);});
|
|
// QTimer::singleShot(2000, [&e, vt]() {
|
|
// e.setValue(PIValueTreeConversions::fromText(PIValueTreeConversions::toText(vt) + "\n[]\nAHAHA = 123\n"));
|
|
//});
|
|
// QTimer::singleShot(3000, [&e]() { e.setFullEditMode(false); });
|
|
return a.exec();
|
|
|
|
/*
|
|
PIINTROSPECTION_START(piconnedit)
|
|
QApplication a(argc, argv);
|
|
enableHighDPI();
|
|
ConnectionEdit w;
|
|
if (a.arguments().size() > 1) {
|
|
QPIConfig cfg(a.arguments()[1]);
|
|
QByteArray model = cfg.getValue("connectionmodel").toByteArray();
|
|
if (!model.isEmpty()) w.setModel(model);
|
|
} else
|
|
w.recreateConnection();
|
|
if (w.exec() == QDialog::Accepted) {
|
|
QString c = QFileDialog::getSaveFileName(&w, "Save config to file", a.applicationDirPath(), "*.conf");
|
|
if (!c.isEmpty()) {
|
|
QFile f(c);
|
|
if (f.open(QIODevice::WriteOnly)) {
|
|
QTextStream ts(&f);
|
|
ts << w.configuration();
|
|
ts << "connectionmodel = " << QByteArray2QString(w.model()) << "\n";
|
|
f.close();
|
|
}
|
|
}
|
|
}
|
|
return 0;*/
|
|
}
|