go to document settings > local layout enter a space the "bug" is that you have to validate. This seems unnecessary.
Suppose someone accidentally entered some text (maybe they thought it was the preamble) and then realized he was in the wrong spot and erased everything. If an unobservant (doesn't see the text "Please validate!") user doesn't realize that he has to validate an empty entry, he might just click a different tab. If he does this, and makes further changes, he will be unable to press the okPB and has to figure out that he needs to go back to local layout and validate. Further, even if the user validates an empty string, "Use Class Defaults" is now the default button and the user might wonder if he just changed something by accident. This patch makes it so you do not have to validate an empty entry. It does this by moving the check for an empty entry from validate() to textChanged(). I keep a simple check of an empty string in validate() because validate() is called when you open document settings. If this check were removed, and if you were to enter a few empty lines and click on OK and then go back to document settings you would see "Layout is valid!". This is not that bad because it is true that it's valid, but this text didn't show before so it would be inconsistent. An alternative patch would force the user to validate before changing the tab. A different alternative patch would not disable the okPB if the text has not been validated but when the okPB is pressed it would display a message along the lines of <<you need to go to the "local layout" tab and press the "validate" button>> Comments? Thanks, Scott
diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index 9f3f7ea..bd0dd10 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -606,12 +606,22 @@ void LocalLayout::apply(BufferParams & params) void LocalLayout::textChanged() { - static const QString unknown = qt_("Press button to check validity..."); - - is_valid_ = false; - validLB->setText(unknown); - validatePB->setEnabled(true); - convertPB->setEnabled(false); + string const layout = + fromqstr(locallayoutTE->document()->toPlainText().trimmed()); + if (layout.empty()) { + is_valid_ = true; + validatePB->setEnabled(false); + validLB->setText(""); + convertPB->hide(); + convertLB->hide(); + } else { + static const QString unknown = qt_("Press button to check validity..."); + + is_valid_ = false; + validLB->setText(unknown); + validatePB->setEnabled(true); + convertPB->setEnabled(false); + } changed(); } @@ -649,13 +659,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);