int TableWidgetItem::foreground ( lua_State * L ) // const QBrush { QTableWidgetItem* lhs = ValueInstaller2<QTableWidgetItem>::check( L, 1 ); QBrush* res = ValueInstaller2<QBrush>::create( L ); *res = lhs->foreground(); return 1; }
void GraphPlotDialog::addNewGraphToUI(unsigned graphId) { QTableWidgetItem* graphItem = new QTableWidgetItem(QString::fromStdString(mData[graphId].name)); graphItem->setData(Qt::UserRole, QVariant(graphId)); setItemColor(graphItem); int rowCount = mUi.visibleGraph->rowCount(); mUi.visibleGraph->setRowCount(rowCount + 1); mUi.visibleGraph->setItem(rowCount, 0, graphItem); QTableWidgetItem* valueItem = new QTableWidgetItem(); valueItem->setForeground(graphItem->foreground()); valueItem->setData(Qt::UserRole, QVariant(graphId)); mUi.visibleGraph->setItem(rowCount, 1, valueItem); }
void GraphPlotDialog::childRepaint(QPaintEvent * /*event*/, QWidget *who) { if (!who) return; QPainter painter(who); unsigned h = who->height(); unsigned w = who->width(); painter.setPen(Qt::gray); painter.setBrush(Qt::darkGray); painter.drawRect(0, 0, w - 1, h - 1); int zero = h / 2; /* Draw oscilloscope * */ double offset = mGraphPlotParameters->centerAt(); double gainY = mGraphPlotParameters->yScale(); double gainX = mGraphPlotParameters->xScale(); #if 0 double oscContrast = ui.oscContrastSpinBox->value(); deque<vector<double> >::iterator it; unsigned i = 0; for (it = intensity.begin(); it != intensity.end() && i < w; ++it, i++) { vector<int> line(h); const vector<double> &slice = *it; for (unsigned j = 0; j < slice.size(); j++) { double value = slice[j]; double toShow = (value - offset) * gainY; unsigned bin = fround(zero - toShow); if (bin >= h) continue; line[bin]++; } for (unsigned j = 0; j < h; j++) { int val = line[j]; val *= oscContrast; if (val > 255) val = 255; QPen pen; pen.setColor(QColor(0, val, val)); painter.setPen(pen); painter.drawPoint(i, j); } } #endif drawGrid(painter); drawGridFixLine(painter); QPen axisPen(Qt::DashLine); axisPen.setColor(Qt::blue); painter.setPen(axisPen); painter.drawLine(0, zero, w - 1, zero); int style = mGraphPlotParameters->graphStyle(); for (int visId = 0; visId < mUi.visibleGraph->rowCount(); visId++) { QTableWidgetItem * item = mUi.visibleGraph->item(visId, 0); unsigned graphId = item->data(Qt::UserRole).toUInt(); GraphHistory &graph = mData[graphId]; QPen pen; pen.setColor(item->foreground().color()); if (mData[graphId].isSelected && mGraphPlotParameters->selectGraph()) { pen.setWidth(mGraphPlotParameters->width() + 2); } else { pen.setWidth(mGraphPlotParameters->width()); } painter.setPen(pen); unsigned i = 0; double x = 0; switch (style) { case 0: for (; i < graph.size() - 1 && x < w - 1; i++, x += gainX) { if (!graph[i].isValid || !graph[i + 1].isValid) continue; double value1 = graph[i].value; double value2 = graph[i + 1].value; double toShow1 = (value1 - offset) * gainY; double toShow2 = (value2 - offset) * gainY; painter.drawLine(fround(x), zero - toShow1, fround(x + gainX), zero - toShow2); } break; case 1: for (; i < graph.size() && x < w - 1; i++, x += gainX) { if (!graph[i].isValid) continue; double value = graph[i].value; double toShow = (value - offset) * gainY; painter.drawPoint(fround(x), zero - toShow); } } } // Calculate values for paused widget if (mUi.pauseButton->isChecked()) { int dataSize0 = mData.size() ? (int)mData[0].size() : 0; if (mGraphPlotParameters->fixGridValue()) { mGraphShowPoint = fround(mMouseClickedValue / gainX); if (mGraphShowPoint >= dataSize0) { mGraphShowPoint = dataSize0 - mGraphShowPoint - 1; } } else { if (mGraphShowPoint < 0) { mMouseClickedValue = fround((dataSize0 - mGraphShowPoint - 1) * gainX); } else { mMouseClickedValue = fround(mGraphShowPoint * gainX); } if (mMouseClickedValue >= mUi.widget->width()) { mMouseClickedValue = -1; } } } showGraphsValue(mUi.visibleGraph); showGraphsValue(mUi.invisibleGraph); }