Knob::Knob( knobTypes _knob_num, QWidget * _parent, const QString & _name ) : DEFAULT_KNOB_INITIALIZER_LIST, m_knobNum( _knob_num ) { initUi( _name ); } Knob::Knob( QWidget * _parent, const QString & _name ) : DEFAULT_KNOB_INITIALIZER_LIST, m_knobNum( knobBright_26 ) { initUi( _name ); } #undef DEFAULT_KNOB_INITIALIZER_LIST void Knob::initUi( const QString & _name ) { if( s_textFloat == NULL ) { s_textFloat = new TextFloat; } setWindowTitle( _name ); onKnobNumUpdated(); setTotalAngle( 270.0f ); setInnerRadius( 1.0f ); setOuterRadius( 10.0f ); setFocusPolicy( Qt::ClickFocus ); // This is a workaround to enable style sheets for knobs which are not styled knobs. // // It works as follows: the palette colors that are assigned as the line color previously // had been hard coded in the drawKnob method for the different knob types. Now the // drawKnob method uses the line color to draw the lines. By assigning the palette colors // as the line colors here the knob lines will be drawn in this color unless the stylesheet // overrides that color. switch (knobNum()) { case knobSmall_17: case knobBright_26: case knobDark_28: setlineColor(QApplication::palette().color( QPalette::Active, QPalette::WindowText )); break; case knobVintage_32: setlineColor(QApplication::palette().color( QPalette::Active, QPalette::Shadow )); break; default: break; } doConnections(); } void Knob::onKnobNumUpdated() { if( m_knobNum != knobStyled ) { QString knobFilename; switch (m_knobNum) { case knobDark_28: knobFilename = "knob01"; break; case knobBright_26: knobFilename = "knob02"; break; case knobSmall_17: knobFilename = "knob03"; break; case knobVintage_32: knobFilename = "knob05"; break; case knobStyled: // only here to stop the compiler from complaining break; } // If knobFilename is still empty here we should get the fallback pixmap of size 1x1 m_knobPixmap = new QPixmap( embed::getIconPixmap( knobFilename.toUtf8().constData() ) ); setFixedSize( m_knobPixmap->width(), m_knobPixmap->height() ); } } Knob::~Knob() { if( m_knobPixmap ) { delete m_knobPixmap; } } void Knob::setLabel( const QString & txt ) { m_label = txt; if( m_knobPixmap ) { setFixedSize( qMax<int>( m_knobPixmap->width(), QFontMetrics( pointSizeF( font(), 6.5) ).width( m_label ) ), m_knobPixmap->height() + 10 ); } update(); }
void Circle3DOverlay::setProperties(const QScriptValue &properties) { Planar3DOverlay::setProperties(properties); QScriptValue startAt = properties.property("startAt"); if (startAt.isValid()) { setStartAt(startAt.toVariant().toFloat()); } QScriptValue endAt = properties.property("endAt"); if (endAt.isValid()) { setEndAt(endAt.toVariant().toFloat()); } QScriptValue outerRadius = properties.property("outerRadius"); if (outerRadius.isValid()) { setOuterRadius(outerRadius.toVariant().toFloat()); } QScriptValue innerRadius = properties.property("innerRadius"); if (innerRadius.isValid()) { setInnerRadius(innerRadius.toVariant().toFloat()); } QScriptValue hasTickMarks = properties.property("hasTickMarks"); if (hasTickMarks.isValid()) { setHasTickMarks(hasTickMarks.toVariant().toBool()); } QScriptValue majorTickMarksAngle = properties.property("majorTickMarksAngle"); if (majorTickMarksAngle.isValid()) { setMajorTickMarksAngle(majorTickMarksAngle.toVariant().toFloat()); } QScriptValue minorTickMarksAngle = properties.property("minorTickMarksAngle"); if (minorTickMarksAngle.isValid()) { setMinorTickMarksAngle(minorTickMarksAngle.toVariant().toFloat()); } QScriptValue majorTickMarksLength = properties.property("majorTickMarksLength"); if (majorTickMarksLength.isValid()) { setMajorTickMarksLength(majorTickMarksLength.toVariant().toFloat()); } QScriptValue minorTickMarksLength = properties.property("minorTickMarksLength"); if (minorTickMarksLength.isValid()) { setMinorTickMarksLength(minorTickMarksLength.toVariant().toFloat()); } QScriptValue majorTickMarksColor = properties.property("majorTickMarksColor"); if (majorTickMarksColor.isValid()) { QScriptValue red = majorTickMarksColor.property("red"); QScriptValue green = majorTickMarksColor.property("green"); QScriptValue blue = majorTickMarksColor.property("blue"); if (red.isValid() && green.isValid() && blue.isValid()) { _majorTickMarksColor.red = red.toVariant().toInt(); _majorTickMarksColor.green = green.toVariant().toInt(); _majorTickMarksColor.blue = blue.toVariant().toInt(); } } QScriptValue minorTickMarksColor = properties.property("minorTickMarksColor"); if (minorTickMarksColor.isValid()) { QScriptValue red = minorTickMarksColor.property("red"); QScriptValue green = minorTickMarksColor.property("green"); QScriptValue blue = minorTickMarksColor.property("blue"); if (red.isValid() && green.isValid() && blue.isValid()) { _minorTickMarksColor.red = red.toVariant().toInt(); _minorTickMarksColor.green = green.toVariant().toInt(); _minorTickMarksColor.blue = blue.toVariant().toInt(); } } }