git-svn-id: svn://db.shs.com.ru/libs@31 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2015-08-26 12:24:04 +00:00
parent 8b5dca853a
commit fc937a3cd2
6 changed files with 148 additions and 108 deletions

View File

@@ -3,6 +3,8 @@
#include "ui_graphic_conf.h"
__GraphicRegistrator__ __graphic_registrator__;
ELineEdit::ELineEdit(QWidget * parent): CLineEdit(parent) {
last_ret = complexd_0;
@@ -487,6 +489,23 @@ void Graphic::setOnlyExpandX(bool yes) {
}
Graphic::GraphicsData Graphic::graphicsData() const {
GraphicsData ret;
ret.resize(graphics.size());
for (int i = 0; i < graphics.size(); ++i)
ret[i] = graphics[i].polyline;
return ret;
}
void Graphic::setGraphicsData(const Graphic::GraphicsData & gd) {
setGraphicsCount(gd.size());
for (int i = 0; i < gd.size(); ++i)
setGraphicData(gd[i], i, false);
updateGraphics();
}
void Graphic::setButtons(Graphic::Buttons b) {
buttons_ = b;
ui->buttonAutofit->setVisible(b.testFlag(Autofit));

View File

@@ -115,11 +115,14 @@ class Graphic: public QFrame
Q_PROPERTY(int histogramMinIntervals READ histogramMinIntervals WRITE setHistogramMinIntervals)
Q_PROPERTY(int histogramMaxIntervals READ histogramMaxIntervals WRITE setHistogramMaxIntervals)
Q_PROPERTY(double histogramMinDeltaMultiplier READ histogramMinDeltaMultiplier WRITE setHistogramMinDeltaMultiplier)
Q_PROPERTY(Graphic::GraphicsData graphicsData READ graphicsData WRITE setGraphicsData)
public:
Graphic(QWidget * parent = 0);
~Graphic();
typedef QVector<QVector<QPointF> > GraphicsData;
enum GraphicAction {gaNone, gaZoomInRect, gaZoomRangeX, gaZoomRangeY, gaMove};
enum Button {NoButtons = 0x0,
AllButtons = 0xFFFFFFFF,
@@ -195,6 +198,7 @@ public:
Graduation graduationY() const {return grad_y;}
double graduationStepX() const {return gridx;}
double graduationStepY() const {return gridy;}
GraphicsData graphicsData() const;
QWidget * viewport() const {return canvas;}
QByteArray save();
void load(QByteArray ba);
@@ -264,6 +268,7 @@ public slots:
void setHistogramMinIntervals(int value) {min_int = value; updateGraphics();}
void setHistogramMaxIntervals(int value) {max_int = value; updateGraphics();}
void setHistogramMinDeltaMultiplier(double value) {mdm = value; updateGraphics();}
void setGraphicsData(const GraphicsData & gd);
void setGridNumbersMultiplierX(double value) {grid_numbers_x = value; updateGraphics();}
void setGridNumbersMultiplierY(double value) {grid_numbers_y = value; updateGraphics();}
@@ -409,8 +414,21 @@ signals:
};
Q_DECLARE_METATYPE(Graphic::GraphicsData)
Q_DECLARE_OPERATORS_FOR_FLAGS(Graphic::Buttons)
//inline QDataStream & operator <<(QDataStream & s, const Graphic::GraphicsData & v) {s << v; return s;}
//inline QDataStream & operator >>(QDataStream & s, Graphic::GraphicsData & v) {s >> v; return s;}
class __GraphicRegistrator__ {
public:
__GraphicRegistrator__() {
qRegisterMetaType<Graphic::GraphicsData>("Graphic::GraphicsData");
qRegisterMetaTypeStreamOperators<Graphic::GraphicsData>("Graphic::GraphicsData");
}
};
QT_END_NAMESPACE
QT_END_HEADER