From afee2488cb5806b9ad28af36ddbc38ea62313591 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 21 Apr 2012 16:22:28 -0400 Subject: [PATCH] Optimize a bit the handling of local layout validation. This handles empty cases better than what was before. Patch from Scott Kostyshak. --- src/frontends/qt4/GuiDocument.cpp | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index 9f3f7ea0dc..5fed8df61d 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -606,13 +606,26 @@ void LocalLayout::apply(BufferParams & params) void LocalLayout::textChanged() { - static const QString unknown = qt_("Press button to check validity..."); + static const QString message = + qt_("Press button to check validity..."); + string const layout = + fromqstr(locallayoutTE->document()->toPlainText().trimmed()); - is_valid_ = false; - validLB->setText(unknown); - validatePB->setEnabled(true); - convertPB->setEnabled(false); - changed(); + if (layout.empty()) { + is_valid_ = true; + validatePB->setEnabled(false); + validLB->setText(""); + convertPB->hide(); + convertLB->hide(); + changed(); + } else if (!validatePB->isEnabled()) { + // if that's already enabled, we shouldn't need to do anything. + is_valid_ = false; + validLB->setText(message); + validatePB->setEnabled(true); + convertPB->setEnabled(false); + changed(); + } } @@ -649,13 +662,7 @@ void LocalLayout::validate() { string const layout = fromqstr(locallayoutTE->document()->toPlainText().trimmed()); - if (layout.empty()) { - is_valid_ = true; - validatePB->setEnabled(false); - validLB->setText(""); - convertPB->hide(); - convertLB->hide(); - } else { + if (!layout.empty()) { TextClass::ReturnValues const ret = TextClass::validate(layout); is_valid_ = (ret == TextClass::OK) || (ret == TextClass::OK_OLDFORMAT); validatePB->setEnabled(false); -- 2.39.2