Le 07/11/2015 21:18, Pavel Sanda a écrit :
Guillaume Munch wrote:
Have a new checkbox in document settings labelled "Open with change
tracking enabled". Then the current state of change tracking is made
independent from this checkbox; only, if the box is checked then it will
do as advertised by the label. Otherwise, the per-user, per-session
setting is restored.
This seems to fit better than the current situation what I understand of
Pavel and other people's use case for change tracking. Indeed, even in
My summary is quite different. The current situation seems to be more in
tune with what most people expect and what other offices are doing.
Hi Pavel,
Thank you for making these suggestions. I see that you suggest small
variations on adding a new setting, so I am happy to see some convergence.
That said I understand your pain and agree that it sucks for version control
usecase. My take on that would be one of those directions:
1. User preference for ignoring CT toggling changes during the session.
The CT on/off status would be saved in the same way as it was opened
no matter whether the user changed it during editing.
So a "Save change tracking within document" per-user checkbox. The
difference with a suggestion à la Vincent are that the current status of
change tracking is saved, and it is per-user instead of per-document.
I had thought about it, and it makes more sense to me as a per-document
setting than as a per-user setting to me. Then, if it's per-document, I
do not see the need to add an additional indirection via the current CT
state, so we can let the checkbox directly determine the state on
opening. This is why I was convinced by the "Open with change tracking
enabled" checkbox.
2. Some form of turn on/off permanently vs intermittently, both in menu
or it could be tristate. (Code-wise it might be similar to 1. I am
thinking more how it appears in GUI to the user.)
Well the idea of a tri-state button was what I elaborated with the "CT
lock" suggestion (up to minor differences). I imagined a "lock" button
next to the current button and activating the lock activates the usual
button at the same time, so in practice it was really a tri-state
setting. But then I needed a way to make the interface worthwhile and
intuitive so I suggested that deactivating the lock shows a confirmation
prompt to the user, but then it was too much "bells and whistles"
according to replies. Logic and file-wise, yes it's very similar to the
previous one and it would reuse \tracking_changes as well (as I had
suggested it, we would also have needed to record who activated the lock
but this was inessential).
3. General preference (not sure if document or user) for ignoring non essential
changes, which disturbs version control flow. Similar to 1. but it
would encompass e.g. CT on/off, output_changes, GUI justification.
I have another candidate here as well - not storing opening/closing insets.
So essentially a single setting for all user-like document settings.
You had convinced me with your "open/closed inset" point that actually
LyX records more than I previously thought the current state of user
preferences inside files, while my point was that it seems to me that
this less LyX's philosophy than e.g. LibreOffice's. I also like the idea
that storing the open/closed state of insets may not always be what we want.
But I thought about it more. If the state of insets is lost, then we
have to revert to a default state where all the insets are either open
or closed. While for some insets I would no mind to lose the state,
losing it for all insets looks like a dataloss to me. So we cannot
afford to store as user settings things that could cause dataloss.
Also it looks technically challenging to me to store the state of insets
as user settings. So I am no longer convinced that not storing
open/closed state of insets is feasible and realistic.
Still, a single "git compatibility mode" per-document setting would
satisfy me equally. But, would it really encompass more than the two
change-tracking settings? (\justification seems a different case to me
as I am still convinced that it should be purely per-user.)
It comes down to whatever is LyX's philosophy: do we want to store user
settings in files? Then let's add a "git mode" per-document setting. Or
do we want user settings never to be stored within files? Then make CT
per-user-per-document, and add a "Open with CT enabled" per-document
setting.
Guillaume