On 05/04/2016 02:21 AM, Scott Kostyshak wrote: > On Mon, Apr 25, 2016 at 02:25:29PM -0400, Richard Heck wrote: >> On 04/25/2016 01:01 PM, Scott Kostyshak wrote: >>> On Mon, Apr 25, 2016 at 11:48:00AM -0400, Richard Heck wrote: >>>> On 04/24/2016 10:21 PM, Cyrille Artho wrote: >>>>> Scott Kostyshak wrote: >>>>>> In 2.1.x, because of a bug in our validator code, we allowed negative >>>>>> values to be input into some document settings. This bug has been fixed >>>>>> for 2.2.0dev but what that means is that if you open such a document >>>>>> with LyX 2.2.0dev, you will not be able to save any changes to document >>>>>> settings unless you correct the negative values and it is not obvious to >>>>>> the user that this must be done. I can imagine this causing some >>>>>> confusion. >>>>>> >>>>>> For more details, see: >>>>>> http://www.lyx.org/trac/ticket/10095#comment:2 >>>>>> >>>>>> I'm not sure that we want to do anything for 2.2.0, but I wanted to >>>>>> check with the list to see the thoughts of others. For example, we could >>>>>> change the validators in page margins to allow negative values, which >>>>>> seem to work as intended with LaTeX. Or we could provide a warning when >>>>>> creating the document settings dialog that explains why the "OK" button >>>>>> is disabled. >>>>>> >>>>>> Scott >>>>>> >>>>> I would unconditionally allow negative values. They are often used to >>>>> fix issues with padding that is too large or incorrect bounding boxes >>>>> in images. >>>>> >>>>> If you suddenly break documents where users relied on negative >>>>> margins/spacing to fix other problems, you create more problems than >>>>> you solve. >>>> So it seems to me that we need to correct the validator. Otherwise, we >>>> will break documents, since people can't change the document settings >>>> without "fixing" the negative values. >>> Seems reasonable to me and probably a safe change. It would be good to >>> figure out exactly which settings could suffer from this issue. >> These ones >> >> ../frontends/qt4/ [master] > grep -P 'unsigned\w*Validator' GuiDocument.cpp >> textLayoutModule->indentLE->setValidator(unsignedLengthValidator( >> textLayoutModule->skipLE->setValidator(unsignedGlueLengthValidator( >> >> pageLayoutModule->paperheightLE->setValidator(unsignedLengthValidator( >> >> pageLayoutModule->paperwidthLE->setValidator(unsignedLengthValidator( >> marginsModule->topLE->setValidator(unsignedLengthValidator( >> marginsModule->bottomLE->setValidator(unsignedLengthValidator( >> marginsModule->innerLE->setValidator(unsignedLengthValidator( >> marginsModule->outerLE->setValidator(unsignedLengthValidator( >> marginsModule->headsepLE->setValidator(unsignedLengthValidator( >> marginsModule->headheightLE->setValidator(unsignedLengthValidator( >> marginsModule->footskipLE->setValidator(unsignedLengthValidator( >> marginsModule->columnsepLE->setValidator(unsignedLengthValidator( >> >> all use unsigned validators, so the question is which ones ought to >> allow signed quantities. >> > Attached is a patch. It seems that everyone in this thread is in favor > of allowing negative values where LaTeX allows negative values. The > patch does this. > > Note however that (if I understand correctly the comments at #10095) > Jürgen disagrees with such changes. I agree with him partly that it is > not a big deal because users can always input negative values manually > by inputting custom preamble code. But I am more focused on potential > user confusion when transitioning from 2.1.x to 2.2.0; allowing valid > input is just a bonus in my opinion.
+1 from me. Richard