git-svn-id: svn://db.shs.com.ru/libs@164 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -141,8 +141,8 @@ bool CDType::calculate(PIEvaluator * e, PIVector<const CDType * > stack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PIVector<CDType::Enumerator> CDType::parseEnumComment(PIString c) {
|
PIVariantTypes::Enum CDType::parseEnumComment(PIString c) {
|
||||||
PIVector<CDType::Enumerator> ret;
|
PIVariantTypes::Enum ret;
|
||||||
if (c.isEmpty()) return ret;
|
if (c.isEmpty()) return ret;
|
||||||
if (type_ == "e") {
|
if (type_ == "e") {
|
||||||
PIStringList sl = c.inBrackets('{', '}').split(",");
|
PIStringList sl = c.inBrackets('{', '}').split(",");
|
||||||
@@ -157,11 +157,11 @@ PIVector<CDType::Enumerator> CDType::parseEnumComment(PIString c) {
|
|||||||
s.cutLeft(ind + 1).trim();
|
s.cutLeft(ind + 1).trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret << CDType::Enumerator(cval, s);
|
ret << PIVariantTypes::Enumerator(cval, s);
|
||||||
++cval;
|
++cval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
piCout << c << "=" << ret;
|
//piCout << c << "=" << ret;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,11 +317,11 @@ void CDSection::write(PIIODevice * d, const PIString & prefix) {
|
|||||||
d->write(l.toUTF8());
|
d->write(l.toUTF8());
|
||||||
l.clear(); l << ck.index() << ".v = " << ck.value() << " #" << ck.type() << " " << ck.name() << " \n";
|
l.clear(); l << ck.index() << ".v = " << ck.value() << " #" << ck.type() << " " << ck.name() << " \n";
|
||||||
d->write(l.toUTF8());
|
d->write(l.toUTF8());
|
||||||
if (!ck.enumValues().isEmpty()) {
|
if (!ck.enumValues().enum_list.isEmpty()) {
|
||||||
l.clear(); l << ck.index() << ".ev = {";
|
l.clear(); l << ck.index() << ".ev = {";
|
||||||
//PIVector<CDType::Enumerator> el = ck.enumValues();
|
//PIVector<CDType::Enumerator> el = ck.enumValues();
|
||||||
piForeachC (CDType::Enumerator & e, ck.enumValues())
|
piForeachC (PIVariantTypes::Enumerator & e, ck.enumValues().enum_list)
|
||||||
l << e.first << " - " << e.second << ", ";
|
l << e.value << " - " << e.name << ", ";
|
||||||
l.cutRight(2);
|
l.cutRight(2);
|
||||||
l << "} \n";
|
l << "} \n";
|
||||||
d->write(l.toUTF8());
|
d->write(l.toUTF8());
|
||||||
@@ -497,11 +497,11 @@ PIVector<CDType * > CDSection::children(bool recursive) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PIVector<CDType::Enumerator> CDSection::enumValues() const {
|
PIVariantTypes::Enum CDSection::enumValues() const {
|
||||||
PIVector<CDType::Enumerator> ret;
|
PIVariantTypes::Enum ret;
|
||||||
PIMap<int, CDType>::const_iterator i;
|
PIMap<int, CDType>::const_iterator i;
|
||||||
for (i = k.begin(); i != k.end(); ++i)
|
for (i = k.begin(); i != k.end(); ++i)
|
||||||
ret << CDType::Enumerator(i.key(), i.value().name());
|
ret << PIVariantTypes::Enumerator(i.key(), i.value().name());
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "pistring.h"
|
#include "pistring.h"
|
||||||
#include "pimap.h"
|
#include "pimap.h"
|
||||||
|
#include "pivarianttypes.h"
|
||||||
|
|
||||||
class PIIODevice;
|
class PIIODevice;
|
||||||
class PIEvaluator;
|
class PIEvaluator;
|
||||||
@@ -18,7 +19,6 @@ class CDType {
|
|||||||
friend class CDSection;
|
friend class CDSection;
|
||||||
public:
|
public:
|
||||||
enum cdT {cdNull, cdK, cdX, cdC};
|
enum cdT {cdNull, cdK, cdX, cdC};
|
||||||
typedef PIPair<int, PIString> Enumerator;
|
|
||||||
CDType();
|
CDType();
|
||||||
CDType(int i, const PIString & n, const PIString & t, const PIString & v, const PIString & f, const PIString & c, cdT cd_t);
|
CDType(int i, const PIString & n, const PIString & t, const PIString & v, const PIString & f, const PIString & c, cdT cd_t);
|
||||||
int index() const {return index_;}
|
int index() const {return index_;}
|
||||||
@@ -35,19 +35,19 @@ public:
|
|||||||
void setFormula(const PIString & formula);
|
void setFormula(const PIString & formula);
|
||||||
void setComment(const PIString & comment) {comment_ = comment;}
|
void setComment(const PIString & comment) {comment_ = comment;}
|
||||||
operator double() const {return value_d;}
|
operator double() const {return value_d;}
|
||||||
const PIVector<CDType::Enumerator> & enumValues() const {return enum_values;}
|
const PIVariantTypes::Enum & enumValues() const {return enum_values;}
|
||||||
void setEnumValues(const PIVector<CDType::Enumerator> & ev) {enum_values = ev;}
|
void setEnumValues(const PIVariantTypes::Enum & ev) {enum_values = ev;}
|
||||||
const PIString & errorString() const {return error_;}
|
const PIString & errorString() const {return error_;}
|
||||||
PIDeque<int> path() const {return path_;}
|
PIDeque<int> path() const {return path_;}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool calculate(PIEvaluator * e, PIVector<const CDType * > stack = PIVector<const CDType * >());
|
bool calculate(PIEvaluator * e, PIVector<const CDType * > stack = PIVector<const CDType * >());
|
||||||
PIVector<CDType::Enumerator> parseEnumComment(PIString c);
|
PIVariantTypes::Enum parseEnumComment(PIString c);
|
||||||
cdT cd_type_;
|
cdT cd_type_;
|
||||||
int index_;
|
int index_;
|
||||||
PIString name_, type_;
|
PIString name_, type_;
|
||||||
PIString value_s, formula_, comment_, error_;
|
PIString value_s, formula_, comment_, error_;
|
||||||
PIVector<CDType::Enumerator> enum_values;
|
PIVariantTypes::Enum enum_values;
|
||||||
CDSection * parent;
|
CDSection * parent;
|
||||||
PIDeque<int> path_;
|
PIDeque<int> path_;
|
||||||
double value_d;
|
double value_d;
|
||||||
@@ -85,7 +85,7 @@ public:
|
|||||||
void calculate();
|
void calculate();
|
||||||
void makePath(PIDeque<int> p = PIDeque<int>());
|
void makePath(PIDeque<int> p = PIDeque<int>());
|
||||||
PIVector<CDType * > children(bool recursive = true) const;
|
PIVector<CDType * > children(bool recursive = true) const;
|
||||||
PIVector<CDType::Enumerator> enumValues() const;
|
PIVariantTypes::Enum enumValues() const;
|
||||||
|
|
||||||
PIString name;
|
PIString name;
|
||||||
PIString alias;
|
PIString alias;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ if(DEFINED ENV{QNX_HOST})
|
|||||||
else()
|
else()
|
||||||
add_library(${PROJECT_NAME} SHARED ${CPPS})
|
add_library(${PROJECT_NAME} SHARED ${CPPS})
|
||||||
endif()
|
endif()
|
||||||
set(LIBS ${QT_QTCORE_LIBRARY} ${PIP_LIBRARY})
|
set(LIBS ${QT_QTCORE_LIBRARY} ${PIP_LIBRARY} qad_utils)
|
||||||
target_link_libraries(${PROJECT_NAME} ${LIBS})
|
target_link_libraries(${PROJECT_NAME} ${LIBS})
|
||||||
if(LIB)
|
if(LIB)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|||||||
@@ -2,6 +2,24 @@
|
|||||||
#include "qvariantedit.h"
|
#include "qvariantedit.h"
|
||||||
|
|
||||||
|
|
||||||
|
const QAD::Enum PI2QADEnum(const PIVariantTypes::Enum & el) {
|
||||||
|
QAD::Enum ret;
|
||||||
|
piForeachC (PIVariantTypes::Enumerator & e, el.enum_list)
|
||||||
|
ret << QAD::Enumerator(e.value, PI2QString(e.name));
|
||||||
|
ret.selectValue(el.selectedValue());
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const PIVariantTypes::Enum QAD2PIEnum(const QAD::Enum & el) {
|
||||||
|
PIVariantTypes::Enum ret;
|
||||||
|
foreach (const QAD::Enumerator & e, el.enum_list)
|
||||||
|
ret << PIVariantTypes::Enumerator(e.value, Q2PIString(e.name));
|
||||||
|
ret.selectValue(el.selectedValue());
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const QVariant PI2QVariant(const PIVariant & v) {
|
const QVariant PI2QVariant(const PIVariant & v) {
|
||||||
switch (v.type()) {
|
switch (v.type()) {
|
||||||
case PIVariant::pivBool: return QVariant(v.toBool());
|
case PIVariant::pivBool: return QVariant(v.toBool());
|
||||||
@@ -22,6 +40,9 @@ const QVariant PI2QVariant(const PIVariant & v) {
|
|||||||
case PIVariant::pivTime: return QVariant(PI2QTime(v.toTime()));
|
case PIVariant::pivTime: return QVariant(PI2QTime(v.toTime()));
|
||||||
case PIVariant::pivDate: return QVariant(PI2QDate(v.toDate()));
|
case PIVariant::pivDate: return QVariant(PI2QDate(v.toDate()));
|
||||||
case PIVariant::pivDateTime: return QVariant(PI2QDateTime(v.toDateTime()));
|
case PIVariant::pivDateTime: return QVariant(PI2QDateTime(v.toDateTime()));
|
||||||
|
case PIVariant::pivEnum: return QVariant::fromValue(PI2QADEnum(v.toEnum()));
|
||||||
|
case PIVariant::pivFile: return QVariant::fromValue(PI2QADFile(v.toFile()));
|
||||||
|
case PIVariant::pivDir: return QVariant::fromValue(PI2QADDir(v.toDir()));
|
||||||
//case PIVariant::pivSystemTime: return QVariant(v.to());
|
//case PIVariant::pivSystemTime: return QVariant(v.to());
|
||||||
default: return QVariant();
|
default: return QVariant();
|
||||||
}
|
}
|
||||||
@@ -43,7 +64,10 @@ const PIVariant Q2PIVariant(const QVariant & v) {
|
|||||||
case QVariant::Time: return PIVariant(Q2PITime(v.toTime()));
|
case QVariant::Time: return PIVariant(Q2PITime(v.toTime()));
|
||||||
case QVariant::Date: return PIVariant(Q2PIDate(v.toDate()));
|
case QVariant::Date: return PIVariant(Q2PIDate(v.toDate()));
|
||||||
case QVariant::DateTime: return PIVariant(Q2PIDateTime(v.toDateTime()));
|
case QVariant::DateTime: return PIVariant(Q2PIDateTime(v.toDateTime()));
|
||||||
default: return PIVariant();
|
default: break;
|
||||||
}
|
}
|
||||||
|
if (v.canConvert<QAD::Enum>()) return PIVariant(QAD2PIEnum(v.value<QAD::Enum>()));
|
||||||
|
if (v.canConvert<QAD::File>()) return PIVariant(QAD2PIFile(v.value<QAD::File>()));
|
||||||
|
if (v.canConvert<QAD::Dir>()) return PIVariant(QAD2PIDir(v.value<QAD::Dir>()));
|
||||||
return PIVariant();
|
return PIVariant();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include "pimathmatrix.h"
|
#include "pimathmatrix.h"
|
||||||
#include "pitime.h"
|
#include "pitime.h"
|
||||||
#include "pivariant.h"
|
#include "pivariant.h"
|
||||||
|
#include "qad_types.h"
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QPointF>
|
#include <QPointF>
|
||||||
@@ -47,6 +48,14 @@ inline const PIDate Q2PIDate(const QDate & v) {return PIDate(v.year(), v.month()
|
|||||||
inline const PITime Q2PITime(const QTime & v) {return PITime(v.hour(), v.minute(), v.second(), v.msec());}
|
inline const PITime Q2PITime(const QTime & v) {return PITime(v.hour(), v.minute(), v.second(), v.msec());}
|
||||||
inline const PIDateTime Q2PIDateTime(const QDateTime & v) {return PIDateTime(Q2PIDate(v.date()), Q2PITime(v.time()));}
|
inline const PIDateTime Q2PIDateTime(const QDateTime & v) {return PIDateTime(Q2PIDate(v.date()), Q2PITime(v.time()));}
|
||||||
|
|
||||||
|
|
||||||
|
const QAD::Enum PI2QADEnum(const PIVariantTypes::Enum & el);
|
||||||
|
inline const QAD::File PI2QADFile(const PIVariantTypes::File & v) {return QAD::File(PI2QString(v.file), PI2QString(v.filter), v.is_abs);}
|
||||||
|
inline const QAD::Dir PI2QADDir(const PIVariantTypes::Dir & v) {return QAD::Dir(PI2QString(v.dir), v.is_abs);}
|
||||||
|
const PIVariantTypes::Enum QAD2PIEnum(const QAD::Enum & el);
|
||||||
|
inline const PIVariantTypes::File QAD2PIFile(const QAD::File & v) {return PIVariantTypes::File(Q2PIString(v.file), Q2PIString(v.filter), v.is_abs);}
|
||||||
|
inline const PIVariantTypes::Dir QAD2PIDir(const QAD::Dir & v) {return PIVariantTypes::Dir(Q2PIString(v.dir), v.is_abs);}
|
||||||
|
|
||||||
const QVariant PI2QVariant(const PIVariant & v);
|
const QVariant PI2QVariant(const PIVariant & v);
|
||||||
|
|
||||||
const PIVariant Q2PIVariant(const QVariant & v);
|
const PIVariant Q2PIVariant(const QVariant & v);
|
||||||
|
|||||||
@@ -64,6 +64,12 @@ QStringList QAD::Enum::names() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QAD::Enum & QAD::Enum::operator <<(const QAD::Enumerator & v) {
|
||||||
|
enum_list << v;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QAD::Enum & QAD::Enum::operator <<(const QString & v) {
|
QAD::Enum & QAD::Enum::operator <<(const QString & v) {
|
||||||
enum_list << Enumerator(enum_list.size(), v);
|
enum_list << Enumerator(enum_list.size(), v);
|
||||||
return *this;
|
return *this;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ namespace QAD {
|
|||||||
QString enum_name;
|
QString enum_name;
|
||||||
QString selected;
|
QString selected;
|
||||||
QList<Enumerator> enum_list;
|
QList<Enumerator> enum_list;
|
||||||
|
Enum & operator <<(const Enumerator & v);
|
||||||
Enum & operator <<(const QString & v);
|
Enum & operator <<(const QString & v);
|
||||||
Enum & operator <<(const QStringList & v);
|
Enum & operator <<(const QStringList & v);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "qpointedit.h"
|
#include "qpointedit.h"
|
||||||
|
#include "float.h"
|
||||||
|
|
||||||
|
|
||||||
QPointEdit::QPointEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRight, this) {
|
QPointEdit::QPointEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRight, this) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QEvent>
|
#include <QEvent>
|
||||||
#include "float.h"
|
|
||||||
|
|
||||||
|
|
||||||
class QPointEdit: public QWidget
|
class QPointEdit: public QWidget
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "qrectedit.h"
|
#include "qrectedit.h"
|
||||||
|
#include "float.h"
|
||||||
|
|
||||||
|
|
||||||
QRectEdit::QRectEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRight, this) {
|
QRectEdit::QRectEdit(QWidget * parent): QWidget(parent), lay(QBoxLayout::LeftToRight, this) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QEvent>
|
#include <QEvent>
|
||||||
#include "float.h"
|
|
||||||
|
|
||||||
|
|
||||||
class QRectEdit: public QWidget
|
class QRectEdit: public QWidget
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "spinslider.h"
|
#include "spinslider.h"
|
||||||
|
#include <qmath.h>
|
||||||
|
|
||||||
|
|
||||||
SpinSlider::SpinSlider(QWidget * parent): QWidget(parent) {
|
SpinSlider::SpinSlider(QWidget * parent): QWidget(parent) {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include <QSlider>
|
#include <QSlider>
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <qmath.h>
|
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|||||||
@@ -11,14 +11,6 @@
|
|||||||
using namespace CDUtils;
|
using namespace CDUtils;
|
||||||
|
|
||||||
|
|
||||||
QList<QAD::Enumerator> CDEnum2QADEnum(const PIVector<CDType::Enumerator> & el) {
|
|
||||||
QList<QAD::Enumerator> ret;
|
|
||||||
piForeachC (CDType::Enumerator & e, el)
|
|
||||||
ret << QAD::Enumerator(e.first, PI2QString(e.second));
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CDKItemModel::CDKItemModel(QObject *parent) : QAbstractItemModel(parent) {
|
CDKItemModel::CDKItemModel(QObject *parent) : QAbstractItemModel(parent) {
|
||||||
root = 0;
|
root = 0;
|
||||||
internalRebuild();
|
internalRebuild();
|
||||||
@@ -233,8 +225,7 @@ QVariant CDKItem::value(CDType t, int role) const {
|
|||||||
if (t.type() == "n") return t.toInt();
|
if (t.type() == "n") return t.toInt();
|
||||||
if (t.type() == "b") return t.toBool();
|
if (t.type() == "b") return t.toBool();
|
||||||
if (t.type() == "e") {
|
if (t.type() == "e") {
|
||||||
QAD::Enum et;
|
QAD::Enum et = PI2QADEnum(t.enumValues());
|
||||||
et.enum_list = CDEnum2QADEnum(t.enumValues());
|
|
||||||
et.selectValue(t.toInt());
|
et.selectValue(t.toInt());
|
||||||
if (role == Qt::EditRole) return QVariant::fromValue<QAD::Enum>(et);
|
if (role == Qt::EditRole) return QVariant::fromValue<QAD::Enum>(et);
|
||||||
else return et.selectedName();
|
else return et.selectedName();
|
||||||
|
|||||||
Reference in New Issue
Block a user