forked from qt-creator/qt-creator
QtQuickToolBar: disable gradient editing in PropertyChanges
Editing gradients in PropertyChanges is not allowed. Task-number: QTCREATORBUG-2969
This commit is contained in:
@@ -362,6 +362,7 @@ bool ContextPaneWidget::setType(const QStringList &types)
|
||||
}
|
||||
if (types.contains("Rectangle")) {
|
||||
m_currentWidget = m_rectangleWidget;
|
||||
m_rectangleWidget->enabableGradientEditing(!isPropertyChanges());
|
||||
m_rectangleWidget->show();
|
||||
resize(sizeHint());
|
||||
return true;
|
||||
|
||||
@@ -99,6 +99,10 @@ public:
|
||||
bool setType(const QStringList &types);
|
||||
bool acceptsType(const QStringList &types);
|
||||
QWidget* currentWidget() const { return m_currentWidget; }
|
||||
void setIsPropertyChanges(bool b)
|
||||
{ m_isPropertyChanges = b; }
|
||||
bool isPropertyChanges() const
|
||||
{ return m_isPropertyChanges; }
|
||||
|
||||
public slots:
|
||||
void onTogglePane();
|
||||
@@ -143,6 +147,7 @@ private:
|
||||
QString m_colorName;
|
||||
QPoint m_originalPos;
|
||||
bool m_pinned;
|
||||
bool m_isPropertyChanges;
|
||||
};
|
||||
|
||||
} //QmlDesigner
|
||||
|
||||
@@ -45,7 +45,8 @@ ContextPaneWidgetRectangle::ContextPaneWidgetRectangle(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::ContextPaneWidgetRectangle),
|
||||
m_gradientLineDoubleClicked(false),
|
||||
m_gradientTimer(-1)
|
||||
m_gradientTimer(-1),
|
||||
m_enableGradientEditing(true)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -112,7 +113,7 @@ void ContextPaneWidgetRectangle::setProperties(QmlJS::PropertyReader *propertyRe
|
||||
ui->gradientLabel->setEnabled(true);
|
||||
ui->gradientLine->setEnabled(true);
|
||||
|
||||
if (m_hasGradient) {
|
||||
if (m_hasGradient && isGradientEditingEnabled()) {
|
||||
bool isBound;
|
||||
ui->colorGradient->setChecked(true);
|
||||
ui->gradientLine->setGradient(propertyReader->parseGradient("gradient", &isBound));
|
||||
@@ -122,8 +123,8 @@ void ContextPaneWidgetRectangle::setProperties(QmlJS::PropertyReader *propertyRe
|
||||
ui->colorColorButton->setColor("invalidColor");
|
||||
}
|
||||
} else {
|
||||
//ui->gradientLine->setEnabled(false);
|
||||
//ui->gradientLabel->setEnabled(false);
|
||||
ui->gradientLine->setEnabled(false);
|
||||
ui->gradientLabel->setEnabled(false);
|
||||
setColor();
|
||||
}
|
||||
|
||||
@@ -132,6 +133,12 @@ void ContextPaneWidgetRectangle::setProperties(QmlJS::PropertyReader *propertyRe
|
||||
m_gradientTimer = -1;
|
||||
}
|
||||
|
||||
ui->colorGradient->setEnabled(isGradientEditingEnabled());
|
||||
}
|
||||
|
||||
void ContextPaneWidgetRectangle::enabableGradientEditing(bool b)
|
||||
{
|
||||
m_enableGradientEditing = b;
|
||||
}
|
||||
|
||||
void ContextPaneWidgetRectangle::onBorderColorButtonToggled(bool flag)
|
||||
@@ -194,6 +201,7 @@ void ContextPaneWidgetRectangle::onGradientClicked()
|
||||
stops.append(QGradientStop(0, ui->colorColorButton->convertedColor()));
|
||||
stops.append(QGradientStop(1, Qt::white));
|
||||
gradient.setStops(stops);
|
||||
ui->gradientLine->setEnabled(true);
|
||||
ui->gradientLine->setGradient(gradient);
|
||||
}
|
||||
}
|
||||
@@ -201,15 +209,19 @@ void ContextPaneWidgetRectangle::onGradientClicked()
|
||||
void ContextPaneWidgetRectangle::onColorNoneClicked()
|
||||
{
|
||||
if (ui->colorNone->isChecked()) {
|
||||
ui->colorGradient->setEnabled(isGradientEditingEnabled());
|
||||
emit removeAndChangeProperty("gradient", "color", "transparent", true);
|
||||
}
|
||||
ui->colorGradient->setEnabled(isGradientEditingEnabled());
|
||||
}
|
||||
|
||||
void ContextPaneWidgetRectangle::onColorSolidClicked()
|
||||
{
|
||||
if (ui->colorSolid->isChecked()) {
|
||||
ui->gradientLine->setEnabled(false);
|
||||
emit removeAndChangeProperty("gradient", "color", "\"black\"", true);
|
||||
}
|
||||
ui->colorGradient->setEnabled(isGradientEditingEnabled());
|
||||
}
|
||||
|
||||
void ContextPaneWidgetRectangle::onBorderNoneClicked()
|
||||
|
||||
@@ -57,6 +57,7 @@ public:
|
||||
explicit ContextPaneWidgetRectangle(QWidget *parent = 0);
|
||||
~ContextPaneWidgetRectangle();
|
||||
void setProperties(QmlJS::PropertyReader *propertyReader);
|
||||
void enabableGradientEditing(bool);
|
||||
|
||||
public slots:
|
||||
void onBorderColorButtonToggled(bool);
|
||||
@@ -82,12 +83,15 @@ protected:
|
||||
|
||||
private:
|
||||
void setColor();
|
||||
bool isGradientEditingEnabled() const
|
||||
{ return m_enableGradientEditing; }
|
||||
Ui::ContextPaneWidgetRectangle *ui;
|
||||
bool m_hasBorder;
|
||||
bool m_hasGradient;
|
||||
bool m_none;
|
||||
bool m_gradientLineDoubleClicked;
|
||||
int m_gradientTimer;
|
||||
bool m_enableGradientEditing;
|
||||
};
|
||||
|
||||
} //QmlDesigner
|
||||
|
||||
@@ -147,6 +147,8 @@ void QuickToolBar::apply(TextEditor::BaseTextEditor *editor, Document::Ptr docum
|
||||
|
||||
const Interpreter::ObjectValue *scopeObject = document->bind()->findQmlObject(node);
|
||||
|
||||
bool isPropertyChanges = false;
|
||||
|
||||
if (!lookupContext.isNull() && scopeObject) {
|
||||
m_prototypes.clear();
|
||||
foreach (const Interpreter::ObjectValue *object,
|
||||
@@ -155,6 +157,7 @@ void QuickToolBar::apply(TextEditor::BaseTextEditor *editor, Document::Ptr docum
|
||||
}
|
||||
|
||||
if (m_prototypes.contains("PropertyChanges")) {
|
||||
isPropertyChanges = true;
|
||||
const Interpreter::ObjectValue *targetObject = getPropertyChangesTarget(node, lookupContext);
|
||||
m_prototypes.clear();
|
||||
if (targetObject) {
|
||||
@@ -230,6 +233,8 @@ void QuickToolBar::apply(TextEditor::BaseTextEditor *editor, Document::Ptr docum
|
||||
offset = QPoint(400 - reg.boundingRect().width() + 10 ,0);
|
||||
QPoint p3 = editor->editorWidget()->mapToParent(editor->editorWidget()->viewport()->mapToParent(reg.boundingRect().topRight()) + offset);
|
||||
p2.setX(p1.x());
|
||||
contextWidget()->setIsPropertyChanges(isPropertyChanges);
|
||||
if (!update)
|
||||
contextWidget()->setType(m_prototypes);
|
||||
if (!update)
|
||||
contextWidget()->activate(p3 , p1, p2, QuickToolBarSettings::get().pinContextPane);
|
||||
|
||||
Reference in New Issue
Block a user