Page 1 of 1

"Don't show this message again." - MS guidance

Posted: 12 Mar 2009, 18:14
by zarevak
Dobrý den,
dnes mám další designerskou perličku 8)

Jedná se o zaškrtávací políčko u dialogů potvrzujících zavření oken pomocí klávesy Escape.

Podle MSDN: Design Principles - Top Violations by mělo toto zaškrtávací políčko buď:
a) Pamatovat vybranou volbu (případně i Cancel)
b) Zobrazit, jaká volba bude příště využita

Dialog "Do you want to close Find?" okna hledání (Find) obsahuje tlačítka Yes a No a zaškrtávací políčko "Don't show this message again." Pokud však použiji tlačítko No při současném zaškrtnutí políčka, tak se při příštím zmáčknutí klávesy Esc zavře okno hledání bez jakéhokoliv dotazu.

Možná řešení:
1) Změnit text, aby bylo jasné, že ať se použije jakékoliv ltačítko, tak příště bude po zmáčknutí klávesy Esc okno hledání zavřeno.
2) Upravit chování dialogu, aby si pamatoval výsledek dotazu. Pro uživatele tak přibude možnost zakázat zavírání okna pomocí Esc bez jakéhokoliv přebytečeného dialogu.

Renamer plugin obsahuje podobný dialog, ale fráze zaškrtávacího políčka je položena opačně (frázování by mělo být standardní) a též při odkliknutí No, se příště okno Renameru zavře bez dotazu.

Poznámky:
- Tento problém je obecný pro všechny podobné dialogy - okno hledání (Find) a Renamer byly použity jen jako ukázka.
- Velmi kladně hodnotím nápovědu "How to revert" ;)
MSDN wrote:Clearly indicate when user input will be used for future default values by adding the following sentence under the option: Your selections will be used by default in the future.

If users select the option and click Cancel, this option does take effect. This setting is a meta-option, so it doesn't follow the standard Cancel behavior of leaving no side effect. Note that if users don't want to see the dialog in the future, most likely they want to cancel it as well.

Posted: 12 Mar 2009, 22:20
by stepand76
+1

Posted: 12 Mar 2009, 22:42
by zarevak
Žádný komentář jako v případě Last command? :shock:

Pro mne jako vývojáře pluginů by bylo jednoduší jen změna textu, protože pak do konfigurace stačí dát jen jednoduchý Checkbox s textem "ESC key closes xxx window without confirmation."

Pokud bychom zavedli možnost pamatovat si volbu uživatele, tak vzniknou tři stavy, které jednoduchým a pochopitelným přepínačem nevyjádříme.


Ještě nápad: Co takhle zavést podporu pro tyto potvrzovací dialogy do Plugin Interface? Plugin by dopředu oznámil jejich existenci, takže Salamander by mohl zobrazit jejich seznam v konfiguračním panelu "Confirmations". Pak by plugin zavolal nějakou metodu ConfirmAction(...), která by buď vrátila nastavenou hodnotu nebo zobrazila standardní potvrzovací dialog a vrátila výběr uživatele.
Výhody: Standardní dialog; Jedno místo na správu všech potvrzení
Pamatovat na: Potřeba zachovat možnost změnit nastavení dialogu z konfigurace pluginu (tedy na dvou místech: centrálně a plugin)

Posted: 13 Mar 2009, 00:10
by Petr Solin
OK, diky za postreh, asi jen zmenim text na neco jako: Close Find dialog without asking next time. To same Renamer + jestli to najdu i jinde.

Pamet vsech variant odpovedi mi prijde jako ono povestne s kanonem na vrabce.

Obecna podpora by asi byla v mnohem fajn, ale necitim zadny tlak na tuto vec ze strany vyvojaru pluginu + znamena to zase X hodin prace a komplikaci rozhrani, konfigurace, atd., takze aspon prozatim mi to neprijde rozumne.

Posted: 13 Mar 2009, 00:47
by zarevak
A já doufal, že bych se vyhnul ruční implementaci toho dialogu 8)

Neprošlo to... Třeba někdy příště ;)

Posted: 13 Mar 2009, 08:31
by Petr Solin
Neni to zadna veda, viz SalamanderGeneral->SalMessageBoxEx a CheckBoxText+CheckBoxValue v MSGBOXEX_PARAMS. :)

Priklad pouziti je i v DemoPlugu v SDK.

Posted: 13 Mar 2009, 12:02
by zarevak
Jéééé, díky!

SalMessageBoxEx jsem nějak ignoroval s tím, že se jedná jen o Indirect variantu normálního SalMessageBox :oops:

Re: "Don't show this message again." - MS guidance

Posted: 19 Aug 2009, 09:32
by Petr Solin
Upravil jsem texty checkboxu (v Renameru jsem ho negoval, aby odpovidal zbytku softu) + jejich zapnuti se uklada i pri Cancel (nebo ESC), jak doporucuje MSDN. Tak uz by to nemelo byt matouci, diky za postreh.