Ethereal-dev: Re: [Ethereal-dev] Deactivate "Apply" button if the display filteris not valid?

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Olivier Biot" <ethereal@xxxxxxxxxx>
Date: Mon, 9 Feb 2004 23:30:07 +0100
From: Ulf Lamping

| Biot Olivier wrote:
|
| >Hi List,
| >
| >Today the display filter is shaded green if valid and red if
invalid. Maybe
| >we want to activate the "Apply" button only if the display filter
is valid.
| >We could then still have the shading but maybe controlled with a
preference?
|
| I'm unsure, if there's always an "Apply" button (I'm thinking of the
| filter dialogs) where you could do this.

I didn't think about the dialogs in the first place, but that's an
interesting track, though :)

| Nonetheless, if there *is* an corresponding apply button, we could
do this.
|
| If you think of the filter toolbar at the bottom, I would also
| deactivate the "Clear" button, if the string is already empty.

I agree. However: should valid empty filters (such as a single space)
be cleared or considered cleared?

| This leads to the next question: do we want to deactivate the "OK"
| button on the dialogs too, as this will also do an "Apply"?

I would do it the other way round: deactivate "Apply" if you applied.
Ideally we would keep track of the changes, and of whether changes
have been applied, hence we e.g. avoid applying a display filter twice
because we clicked once "Apply" and then "OK" to close the dialog. The
logic should be:
1. No changes ==> gray out "Apply"; "OK" only closes the dialog (as
does "Cancel").
2. Changes ==> If "Apply" then apply the changes, clear the "changes"
boolean and see 1. above; if "OK" then apply the changes and close the
dialog. If "Cancel" then close the dialog without applying the
changes.

By disabling/enabling "Apply" the end-user gets feedback on possible
changes introduced by the end-user interacting with the dialog or the
control., which is a valuable thing. Especially if it can avoid
needless processing of a big capture :)

I think that implementing this is straightforward and that's the most
obvious way to do this for Windoze users. Probably for other users
too.

Regards,

Olivier