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