示例#1
0
 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;
 }
示例#2
0
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);

}
示例#3
0
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);
}