Ok/Cancel/Try/Revert behavior




When I was changing memo_file_capplet I thought carefully of what the
desired Try/Revert/Cancel/Ok should be if I were the user. I also
played around with many standard capplets, and less then half actually 
seem to do it like I want it, so maybe I want to much. I don't know,
you decide. 

Being the user this is what I expect:

===============
Try:
   Whatever the changes I made are "applied", and if I use the program 
in question right now, the new settings will take effect.

Revert:
   Whatever the original state was is "applied" and shown on the
screen, and if I use the program in question right now the old
settings will take effect. 

Ok:
  Whatever the changes I made are "applied" and "persisted" for
future.

Cancel:
  Whatever the original state was, it is "applied". [Assuming
persistent state hasn't been changed, if it was it should reset back
to original state]
=================

Does above sound right?

Now in case of conduits capplets. "applying" really means
enabling/disabling conduit in the correct state + persisting the
attributes, because there is no other way to pass attributes to the
conduits. So in my implementation of memo_file I did ruffly the
following:


=========

[Initially curState is a copy of orgState]

Try:
  Load screen attributes into curState; /* or always keep curState
                                           upto date */
  saveState(curState);  /* includes  enabling/disabling conduit and 
			   saving cfg */

Revert:

  copy_configuration(curState,origState);
  Set attributes on screen from curState;
  saveState(curState);


Ok:  
  Load screen attributes into curState;
  saveState(curState)
  /* so technically Ok is the same as Try in our case */

Cancel:
  setSettings(origState);


===========

How does this sound? Sugestions or objections to this are welcomed,
but I think it makes sense from the user perspective and I'd like to
see all gnome-pilot capplets conform to this [or whatever comes out
from discussion].

-Vadim



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]