#include "etable.h" #include "gutil/qgui.h" #include "main.h" #include #include #include ETable::ETable(EBase *multiWin) : EBase(multiWin) { mType = EBase::Table; } ETable::ETable(const JObj &json, EBase *multiWin) : EBase(multiWin) { mType = EBase::Table; setBaseAttr(json); url = json["url"].toString(); } void ETable::paint(QPainter *painter, const QStyleOptionGraphicsItem *a, QWidget *b) { auto inner = innerRect(); painter->setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform); //painter->drawImage(QRectF(inner.width()/2, inner.height()/2, maskW, maskH), holder()); EBase::paint(painter, a, b); } QWidget* ETable::attrWgt() { auto wgtAttr = new QWidget; auto vBox = new VBox(wgtAttr); vBox->setContentsMargins(6, 0, 6, 0); if(mMultiWin) vBox->setSpacing(3); addBaseAttrWgt(vBox); auto hBox = new HBox(vBox); hBox->addLabel(translate("","Basic Properties")); auto line = new QFrame; line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); hBox->addWidget(line, 1); hBox = new HBox(vBox); hBox->addSpacing(6); hBox->addLabel("URL:"); auto url_fd = new QLineEdit(url); hBox->addWidget(url_fd); connect(url_fd, &QLineEdit::textChanged, this, [this](const QString &text) { url = text; }); hBox = new HBox(vBox); auto lb = hBox->addLabel(tr("Refresh every")+":"); lb->setMinimumWidth(70); lb->setAlignment(Qt::AlignVCenter|Qt::AlignRight); auto edRefresh = new QSpinBox; edRefresh->setRange(0, 99999); edRefresh->setValue(refresh); connect(edRefresh, &QSpinBox::valueChanged, this, [=](int value) { refresh = value; }); hBox->addWidget(edRefresh); hBox->addSpacing(-3); hBox->addLabel("s"); hBox->addStretch(); vBox->addStretch(); return wgtAttr; } JObj ETable::attrJson() const { JObj obj; addBaseAttr(obj); obj["elementType"] = "Table"; obj["url"] = url; obj["zoom"] = zoom; obj["refreshSec"] = refresh; obj["offX"] = _x; obj["offY"] = _y; obj["scaleX"] = scaleX; obj["scaleY"] = scaleY; return obj; }