83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
#include "etable.h"
|
|
#include "gutil/qgui.h"
|
|
#include "main.h"
|
|
#include <QSpinBox>
|
|
#include <QLineEdit>
|
|
#include <QPainter>
|
|
|
|
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;
|
|
}
|