QmlDesigner: fixing transparency for context pane

This commit is contained in:
Thomas Hartmann
2010-07-20 10:23:59 +02:00
parent c66354cf9b
commit d2948c1901
2 changed files with 20 additions and 7 deletions

View File

@@ -61,7 +61,7 @@ void ContextPaneWidgetRectangle::setProperties(QmlJS::PropertyReader *propertyRe
ui->borderColorButton->setColor(propertyReader->readProperty("border.color").toString()); ui->borderColorButton->setColor(propertyReader->readProperty("border.color").toString());
m_hasBorder = true; m_hasBorder = true;
} else { } else {
ui->borderColorButton->setColor(QLatin1String("black")); ui->borderColorButton->setColor(QLatin1String("transparent"));
} }
if (propertyReader->hasProperty(QLatin1String("border.width"))) if (propertyReader->hasProperty(QLatin1String("border.width")))
@@ -76,12 +76,13 @@ void ContextPaneWidgetRectangle::setProperties(QmlJS::PropertyReader *propertyRe
if (m_hasGradient) { if (m_hasGradient) {
ui->colorGradient->setChecked(true); ui->colorGradient->setChecked(true);
ui->gradientLine->setEnabled(true); //ui->gradientLine->setEnabled(true);
ui->gradientLabel->setEnabled(true); //ui->gradientLabel->setEnabled(true);
ui->gradientLine->setGradient(propertyReader->parseGradient("gradient")); ui->gradientLine->setGradient(propertyReader->parseGradient("gradient"));
} else { } else {
ui->gradientLine->setEnabled(false); //ui->gradientLine->setEnabled(false);
ui->gradientLabel->setEnabled(false); //ui->gradientLabel->setEnabled(false);
setColor();
} }
if (m_gradientTimer > 0) { if (m_gradientTimer > 0) {
@@ -99,7 +100,7 @@ void ContextPaneWidgetRectangle::onBorderColorButtonToggled(bool flag)
} }
ContextPaneWidget *parentContextWidget = qobject_cast<ContextPaneWidget*>(parentWidget()); ContextPaneWidget *parentContextWidget = qobject_cast<ContextPaneWidget*>(parentWidget());
QPoint p = mapToGlobal(ui->borderColorButton->pos()); QPoint p = mapToGlobal(ui->borderColorButton->pos());
parentContextWidget->colorDialog()->setupColor(ui->borderColorButton->color()); parentContextWidget->colorDialog()->setupColor(ui->borderColorButton->convertedColor());
p = parentContextWidget->colorDialog()->parentWidget()->mapFromGlobal(p); p = parentContextWidget->colorDialog()->parentWidget()->mapFromGlobal(p);
parentContextWidget->onShowColorDialog(flag, p); parentContextWidget->onShowColorDialog(flag, p);
} }
@@ -112,7 +113,7 @@ void ContextPaneWidgetRectangle::onColorButtonToggled(bool flag )
} }
ContextPaneWidget *parentContextWidget = qobject_cast<ContextPaneWidget*>(parentWidget()); ContextPaneWidget *parentContextWidget = qobject_cast<ContextPaneWidget*>(parentWidget());
QPoint p = mapToGlobal(ui->colorColorButton->pos()); QPoint p = mapToGlobal(ui->colorColorButton->pos());
parentContextWidget->colorDialog()->setupColor(ui->colorColorButton->color()); parentContextWidget->colorDialog()->setupColor(ui->colorColorButton->convertedColor());
p = parentContextWidget->colorDialog()->parentWidget()->mapFromGlobal(p); p = parentContextWidget->colorDialog()->parentWidget()->mapFromGlobal(p);
parentContextWidget->onShowColorDialog(flag, p); parentContextWidget->onShowColorDialog(flag, p);
} }
@@ -231,4 +232,15 @@ void ContextPaneWidgetRectangle::changeEvent(QEvent *e)
} }
} }
void ContextPaneWidgetRectangle::setColor()
{
QLinearGradient gradient;
QGradientStops stops;
QColor color = ui->colorColorButton->convertedColor();
stops.append(QGradientStop(0, color));
stops.append(QGradientStop(1, color));
gradient.setStops(stops);
ui->gradientLine->setGradient(gradient);
}
} //QmlDesigner } //QmlDesigner

View File

@@ -47,6 +47,7 @@ protected:
void timerEvent(QTimerEvent *event); void timerEvent(QTimerEvent *event);
private: private:
void setColor();
Ui::ContextPaneWidgetRectangle *ui; Ui::ContextPaneWidgetRectangle *ui;
bool m_hasBorder; bool m_hasBorder;
bool m_hasGradient; bool m_hasGradient;