Re: Need for better dialogs (was: 1.5.0beta2: bibliography nuissances window/dialog style not OK)
To Richard: please, don't forget the list in your reply ;-) Le 6 juil. 07 à 23:17, [EMAIL PROTECTED] a écrit : Le 5 juil. 07 à 16:34, Jürgen Spitzmüller a écrit : Mael Hilléreau wrote: 1. Create a new doc. 2. Run latex. 3. View the LaTeX log. 4. Switch to another buffer. Zoops! The log dialog is closed. Bug? Probably yes. I agree, but I have bad news... There are going to be many of dialogs that behave like this one. AFAIU, precisely all dialogs whose controller has a method virtual bool isBufferDependent() const returning true. You can find them in all src/frontends/controllers/ ControlXXX.h source files. BTW, there seems to be an rc1/rc2 bug for some of them (e.g. graphics dialog don't hide anymore when switching buffer, whereas it did in 1.4.4). Please could you confirm? This was changed a while ago: Buffer dependent dialogs are not automatically closed when switching buffers any longer. There was a bug report about this, in particular, concerning the TOC/outline. Does automatically means for every class of dialog? But I'm now convinced that most of these dialogs should remain hidden when another buffer is displayed. Indeed, it is senseless (despite respecting the don't close without prompt UI guideline) to keep on screen e.g. a graphics dialog when switching to another buffer (unrelated info). Right, but what this means, it seems to me, is that the isBufferDependent() function was being double-used. To be buffer dependent, in the intended sense, is to make no sense absent a buffer. That is different from being dependent upon the specific buffer displayed. Then I can confirm. There's a problem related to the use of isBufferDependent(). Into LyXView.cpp (line 168), you have this function call: // Buffer-dependent dialogs should be updated or // hidden. This should go here because some dialogs (eg ToC) // require bv_-text. getDialogs().updateBufferDependent(true); Then, if you go to Dialogs.cpp, Dialogs::updateBufferDependent() (line 214), you can see that isBufferDependent() leads to hiding buffer dependent dialogs (assuming that dialog-controller ().initialiseParams() will always return false, which is the case for log dialogs). I checked that if you modify isBufferDependent() for LaTeX logs (hence into ControlLog.h) so that it returns true when belonging to a LaTeX log dialog, then it is no more hidden when switching buffer (but this isn't sufficient because there are update issues to deal with...). I'm curious to know how one should specify that a buffer dependent dialog has to hide/keep displayed when switching to another buffer. As for the graphics dialog, a question: If you click away from the graphics inset to which the dialog is attached, what happens? The dialog remains as is if you stay into the same buffer. It is emptied if you switch to another buffer. But in the latter case I think we have a bug: despite the dialog is emptied, if you modify some parameters and click the Apply button, then parameters are always linked (and so applied) to the graphics inset. IMO, this is really unadapted! What should happen? In my vision, this shouldn't be possible for dialogs such as graphics (modal dialogs). You'd have to close the dialog before. This would avoid undesired effects (e.g. modify some graphic parameters whereas the preview is no more visible due to scrolling, or buffer switching...). If you click in a new graphics inset, then the dialog gets updated, I'm sure. True. But what if you just click elsewhere? However, IMO, for most of these dialogs (such as graphics, label, citation, reference, etc.), there would be an easier and better solution regarding buffer switch (among others): make them modal! After all, what is the benefit of keeping such dialogs independent from the main window? This is a much discussed issue. Some people like having non-modal dialogs, Ok. I'm not of them, with a fiew exceptions, e.g. for the LaTeX log in the scope of master/children docs. e.g., the text settings dialog. But there are issues about update that led to the paragraph settings dialog becoming modal. Abdel is working on this. The intention is for it to become non-modal again, once he's got it sorted out. Well I can't see why. If you want to apply the same settings to several paragraphs, you could select them all, and then apply settings, no? If you want to deal with several paragraphs in a row, it's much more convenient to be able to keep it open. Several paragraphs in a row?? I don't understand. Could you explain please? Clearly, this would have non negligible advantages: [snip] But it's overkill, I think, to make everything modal. I didn't say that. I think there should some exceptions for dialogs managing info related to more than one buffer, or even more than one inset, if applicable. But note that some dialogs are already modal (I think of open, save and so on...).
Re: Need for better dialogs (was: 1.5.0beta2: bibliography nuissances & window/dialog style not OK)
To Richard: please, don't forget the list in your reply ;-) Le 6 juil. 07 à 23:17, [EMAIL PROTECTED] a écrit : Le 5 juil. 07 à 16:34, Jürgen Spitzmüller a écrit : Mael Hilléreau wrote: 1. Create a new doc. 2. Run latex. 3. View the LaTeX log. 4. Switch to another buffer. Zoops! The log dialog is closed. Bug? Probably yes. I agree, but I have bad news... There are going to be many of dialogs that behave like this one. AFAIU, precisely all dialogs whose controller has a method "virtual bool isBufferDependent() const" returning true. You can find them in all "src/frontends/controllers/ ControlXXX.h" source files. BTW, there seems to be an rc1/rc2 bug for some of them (e.g. graphics dialog don't hide anymore when switching buffer, whereas it did in 1.4.4). Please could you confirm? This was changed a while ago: Buffer dependent dialogs are not automatically closed when switching buffers any longer. There was a bug report about this, in particular, concerning the TOC/outline. Does automatically means for every class of dialog? But I'm now convinced that most of these dialogs should remain hidden when another buffer is displayed. Indeed, it is senseless (despite respecting the "don't close without prompt" UI guideline) to keep on screen e.g. a graphics dialog when switching to another buffer (unrelated info). Right, but what this means, it seems to me, is that the isBufferDependent() function was being double-used. To be buffer dependent, in the intended sense, is to make no sense absent a buffer. That is different from being dependent upon the specific buffer displayed. Then I can confirm. There's a problem related to the use of isBufferDependent(). Into LyXView.cpp (line 168), you have this function call: // Buffer-dependent dialogs should be updated or // hidden. This should go here because some dialogs (eg ToC) // require bv_->text. getDialogs().updateBufferDependent(true); Then, if you go to Dialogs.cpp, Dialogs::updateBufferDependent() (line 214), you can see that isBufferDependent() leads to hiding buffer dependent dialogs (assuming that dialog->controller ().initialiseParams("") will always return false, which is the case for log dialogs). I checked that if you modify isBufferDependent() for LaTeX logs (hence into ControlLog.h) so that it returns true when belonging to a LaTeX log dialog, then it is no more hidden when switching buffer (but this isn't sufficient because there are update issues to deal with...). I'm curious to know how one should specify that a buffer dependent dialog has to hide/keep displayed when switching to another buffer. As for the graphics dialog, a question: If you click away from the graphics inset to which the dialog is attached, what happens? The dialog remains as is if you stay into the same buffer. It is emptied if you switch to another buffer. But in the latter case I think we have a bug: despite the dialog is emptied, if you modify some parameters and click the "Apply" button, then parameters are always linked (and so applied) to the graphics inset. IMO, this is really unadapted! What should happen? In my vision, this shouldn't be possible for dialogs such as graphics (modal dialogs). You'd have to close the dialog before. This would avoid undesired effects (e.g. modify some graphic parameters whereas the preview is no more visible due to scrolling, or buffer switching...). If you click in a new graphics inset, then the dialog gets updated, I'm sure. True. But what if you just click elsewhere? However, IMO, for most of these dialogs (such as graphics, label, citation, reference, etc.), there would be an easier and better solution regarding buffer switch (among others): make them modal! After all, what is the benefit of keeping such dialogs independent from the main window? This is a much discussed issue. Some people like having non-modal dialogs, Ok. I'm not of them, with a fiew exceptions, e.g. for the LaTeX log in the scope of master/children docs. e.g., the text settings dialog. But there are issues about update that led to the paragraph settings dialog becoming modal. Abdel is working on this. The intention is for it to become non-modal again, once he's got it sorted out. Well I can't see why. If you want to apply the same settings to several paragraphs, you could select them all, and then apply settings, no? If you want to deal with several paragraphs in a row, it's much more convenient to be able to keep it open. Several paragraphs in a row?? I don't understand. Could you explain please? Clearly, this would have non negligible advantages: [snip] But it's overkill, I think, to make everything modal. I didn't say that. I think there should some exceptions for dialogs managing info related to more than one buffer, or even more than one inset, if applicable. But note that some dialogs are already modal (I think of open, save and so
Need for better dialogs (was: 1.5.0beta2: bibliography nuissances window/dialog style not OK)
Le 5 juil. 07 à 16:34, Jürgen Spitzmüller a écrit : Mael Hilléreau wrote: 1. Create a new doc. 2. Run latex. 3. View the LaTeX log. 4. Switch to another buffer. Zoops! The log dialog is closed. Bug? Probably yes. I agree, but I have bad news... There are going to be many of dialogs that behave like this one. AFAIU, precisely all dialogs whose controller has a method virtual bool isBufferDependent() const returning true. You can find them in all src/frontends/controllers/ ControlXXX.h source files. BTW, there seems to be an rc1/rc2 bug for some of them (e.g. graphics dialog don't hide anymore when switching buffer, whereas it did in 1.4.4). Please could you confirm? But I'm now convinced that most of these dialogs should remain hidden when another buffer is displayed. Indeed, it is senseless (despite respecting the don't close without prompt UI guideline) to keep on screen e.g. a graphics dialog when switching to another buffer (unrelated info). Besides, this reinforces my idea that UI guidelines are good in theory, but that there's a need to consider functionality and practice as well ;-) IMO, exceptions are to be when dealing with child documents. For example, the LaTeX log of a master document shouldn't be hidden when switching to one of its children (because it contains info related to the contents of children). But it should be hidden otherwise. However, IMO, for most of these dialogs (such as graphics, label, citation, reference, etc.), there would be an easier and better solution regarding buffer switch (among others): make them modal! After all, what is the benefit of keeping such dialogs independent from the main window? Clearly, this would have non negligible advantages: * This would definitely unseat problems such as the one described by Rob at the beginning of this thread, increasing UI intelligibility. * This would also unclutter the screen, as complained in bug #3836. * Finally, this would also simplify some code (e.g. disabling some menu entries, as mentioned in bug #1720, wouldn't be needed anymore). May I file an enhancement request for better/modal dialogs? Mael.
Need for better dialogs (was: 1.5.0beta2: bibliography nuissances & window/dialog style not OK)
Le 5 juil. 07 à 16:34, Jürgen Spitzmüller a écrit : Mael Hilléreau wrote: 1. Create a new doc. 2. Run latex. 3. View the LaTeX log. 4. Switch to another buffer. Zoops! The log dialog is closed. Bug? Probably yes. I agree, but I have bad news... There are going to be many of dialogs that behave like this one. AFAIU, precisely all dialogs whose controller has a method "virtual bool isBufferDependent() const" returning true. You can find them in all "src/frontends/controllers/ ControlXXX.h" source files. BTW, there seems to be an rc1/rc2 bug for some of them (e.g. graphics dialog don't hide anymore when switching buffer, whereas it did in 1.4.4). Please could you confirm? But I'm now convinced that most of these dialogs should remain hidden when another buffer is displayed. Indeed, it is senseless (despite respecting the "don't close without prompt" UI guideline) to keep on screen e.g. a graphics dialog when switching to another buffer (unrelated info). Besides, this reinforces my idea that UI guidelines are good in theory, but that there's a need to consider functionality and practice as well ;-) IMO, exceptions are to be when dealing with child documents. For example, the LaTeX log of a master document shouldn't be hidden when switching to one of its children (because it contains info related to the contents of children). But it should be hidden otherwise. However, IMO, for most of these dialogs (such as graphics, label, citation, reference, etc.), there would be an easier and better solution regarding buffer switch (among others): make them modal! After all, what is the benefit of keeping such dialogs independent from the main window? Clearly, this would have non negligible advantages: * This would definitely unseat problems such as the one described by Rob at the beginning of this thread, increasing UI intelligibility. * This would also unclutter the screen, as complained in bug #3836. * Finally, this would also simplify some code (e.g. disabling some menu entries, as mentioned in bug #1720, wouldn't be needed anymore). May I file an enhancement request for better/modal dialogs? Mael.