forked from qt-creator/qt-creator
Utils: Fix enable update for explicitly disabled StringAspects
The generic update that is triggered on all major interactions did not take a explicitly set disabled flag into account. Change-Id: I026bc0817ce534e92cfdd631beebcb80ddf7e6dd Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -289,6 +289,11 @@ void BaseAspect::setToolTip(const QString &tooltip)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool BaseAspect::isEnabled() const
|
||||||
|
{
|
||||||
|
return d->m_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
void BaseAspect::setEnabled(bool enabled)
|
void BaseAspect::setEnabled(bool enabled)
|
||||||
{
|
{
|
||||||
d->m_enabled = enabled;
|
d->m_enabled = enabled;
|
||||||
@@ -625,11 +630,11 @@ public:
|
|||||||
bool m_fileDialogOnly = false;
|
bool m_fileDialogOnly = false;
|
||||||
bool m_useResetButton = false;
|
bool m_useResetButton = false;
|
||||||
|
|
||||||
template<class Widget> void updateWidgetFromCheckStatus(Widget *w)
|
template<class Widget> void updateWidgetFromCheckStatus(StringAspect *aspect, Widget *w)
|
||||||
{
|
{
|
||||||
const bool enabled = !m_checker || m_checker->value();
|
const bool enabled = !m_checker || m_checker->value();
|
||||||
if (m_uncheckedSemantics == StringAspect::UncheckedSemantics::Disabled)
|
if (m_uncheckedSemantics == StringAspect::UncheckedSemantics::Disabled)
|
||||||
w->setEnabled(enabled);
|
w->setEnabled(enabled && aspect->isEnabled());
|
||||||
else
|
else
|
||||||
w->setReadOnly(!enabled);
|
w->setReadOnly(!enabled);
|
||||||
}
|
}
|
||||||
@@ -1028,7 +1033,7 @@ void StringAspect::addToLayout(LayoutBuilder &builder)
|
|||||||
d->m_pathChooserDisplay->setFileDialogOnly(d->m_fileDialogOnly);
|
d->m_pathChooserDisplay->setFileDialogOnly(d->m_fileDialogOnly);
|
||||||
d->m_pathChooserDisplay->setOpenTerminalHandler(d->m_openTerminal);
|
d->m_pathChooserDisplay->setOpenTerminalHandler(d->m_openTerminal);
|
||||||
d->m_pathChooserDisplay->setFilePath(FilePath::fromString(displayedString));
|
d->m_pathChooserDisplay->setFilePath(FilePath::fromString(displayedString));
|
||||||
d->updateWidgetFromCheckStatus(d->m_pathChooserDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_pathChooserDisplay.data());
|
||||||
addLabeledItem(builder, d->m_pathChooserDisplay);
|
addLabeledItem(builder, d->m_pathChooserDisplay);
|
||||||
useMacroExpander(d->m_pathChooserDisplay->lineEdit());
|
useMacroExpander(d->m_pathChooserDisplay->lineEdit());
|
||||||
if (isAutoApply()) {
|
if (isAutoApply()) {
|
||||||
@@ -1044,7 +1049,7 @@ void StringAspect::addToLayout(LayoutBuilder &builder)
|
|||||||
if (d->m_validator)
|
if (d->m_validator)
|
||||||
d->m_lineEditDisplay->setValidationFunction(d->m_validator);
|
d->m_lineEditDisplay->setValidationFunction(d->m_validator);
|
||||||
d->m_lineEditDisplay->setTextKeepingActiveCursor(displayedString);
|
d->m_lineEditDisplay->setTextKeepingActiveCursor(displayedString);
|
||||||
d->updateWidgetFromCheckStatus(d->m_lineEditDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_lineEditDisplay.data());
|
||||||
addLabeledItem(builder, d->m_lineEditDisplay);
|
addLabeledItem(builder, d->m_lineEditDisplay);
|
||||||
useMacroExpander(d->m_lineEditDisplay);
|
useMacroExpander(d->m_lineEditDisplay);
|
||||||
if (isAutoApply()) {
|
if (isAutoApply()) {
|
||||||
@@ -1070,7 +1075,7 @@ void StringAspect::addToLayout(LayoutBuilder &builder)
|
|||||||
d->m_textEditDisplay->setAcceptRichText(d->m_acceptRichText);
|
d->m_textEditDisplay->setAcceptRichText(d->m_acceptRichText);
|
||||||
d->m_textEditDisplay->setTextInteractionFlags(Qt::TextEditorInteraction);
|
d->m_textEditDisplay->setTextInteractionFlags(Qt::TextEditorInteraction);
|
||||||
d->m_textEditDisplay->setText(displayedString);
|
d->m_textEditDisplay->setText(displayedString);
|
||||||
d->updateWidgetFromCheckStatus(d->m_textEditDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_textEditDisplay.data());
|
||||||
addLabeledItem(builder, d->m_textEditDisplay);
|
addLabeledItem(builder, d->m_textEditDisplay);
|
||||||
useMacroExpander(d->m_textEditDisplay);
|
useMacroExpander(d->m_textEditDisplay);
|
||||||
if (isAutoApply()) {
|
if (isAutoApply()) {
|
||||||
@@ -1144,19 +1149,19 @@ void StringAspect::update()
|
|||||||
|
|
||||||
if (d->m_pathChooserDisplay) {
|
if (d->m_pathChooserDisplay) {
|
||||||
d->m_pathChooserDisplay->setFilePath(FilePath::fromString(displayedString));
|
d->m_pathChooserDisplay->setFilePath(FilePath::fromString(displayedString));
|
||||||
d->updateWidgetFromCheckStatus(d->m_pathChooserDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_pathChooserDisplay.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->m_lineEditDisplay) {
|
if (d->m_lineEditDisplay) {
|
||||||
d->m_lineEditDisplay->setTextKeepingActiveCursor(displayedString);
|
d->m_lineEditDisplay->setTextKeepingActiveCursor(displayedString);
|
||||||
d->updateWidgetFromCheckStatus(d->m_lineEditDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_lineEditDisplay.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->m_textEditDisplay) {
|
if (d->m_textEditDisplay) {
|
||||||
const QString old = d->m_textEditDisplay->document()->toPlainText();
|
const QString old = d->m_textEditDisplay->document()->toPlainText();
|
||||||
if (displayedString != old)
|
if (displayedString != old)
|
||||||
d->m_textEditDisplay->setText(displayedString);
|
d->m_textEditDisplay->setText(displayedString);
|
||||||
d->updateWidgetFromCheckStatus(d->m_textEditDisplay.data());
|
d->updateWidgetFromCheckStatus(this, d->m_textEditDisplay.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->m_labelDisplay) {
|
if (d->m_labelDisplay) {
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ public:
|
|||||||
bool isAutoApply() const;
|
bool isAutoApply() const;
|
||||||
void setAutoApply(bool on);
|
void setAutoApply(bool on);
|
||||||
|
|
||||||
|
bool isEnabled() const;
|
||||||
void setEnabled(bool enabled);
|
void setEnabled(bool enabled);
|
||||||
|
|
||||||
void setReadOnly(bool enabled);
|
void setReadOnly(bool enabled);
|
||||||
|
|
||||||
QString labelText() const;
|
QString labelText() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user