Re: [PATCH 9/9] gitk: default select reset hard in dialog
- From
- Jens Lideström <jens@lidestrom.se>
- Date
- Jun 28, 2023, 07:16 UTC
- Message-ID
- <b2e0d8fa1b54d9dbc6a0831d53acb85f@lidestrom.se>
- In-Reply-To
- <e74cc1b3-8459-101f-4613-17df0f5d69e3@kdbg.org>
> I would prefer to keep the default at "mixed" mode, set the focus on > the > radio button to make it easy to switch to "hard" mode by hitting the > Down arrow key, and then make it so that Enter triggers the OK button.
That indeed sounds better! Safer but still convenient. I'll change the solution to this.
I noticed that some dialogues have a key bind to close with success using Enter.
/Jens
On 2023-06-28 07:46, Johannes Sixt wrote:
Show 47 quoted lines
> Am 27.06.23 um 16:41 schrieb Jens Lidestrom via GitGitGadget:
>> From: Jens Lidestrom <jens@lidestrom.se>
>>
>> Reset hard is dangerous but also the most common reset type, and not
>> having it pre-selected in the dialog is annoying to users.
>
> I agree that the operation of the Reset dialog is clumsy before this
> series. However, this patch together with the previous patch turns it
> into a foot gun. It becomes far too easy to destroy uncommitted work.
>
> I would prefer to keep the default at "mixed" mode, set the focus on
> the
> radio button to make it easy to switch to "hard" mode by hitting the
> Down arrow key, and then make it so that Enter triggers the OK button.
>
>> It is also less dangerous in the GUI where there is a confirmation
>> dialog. Also, dangling commits remain in the GUI and can be recovered.
>
> The problem with "hard" mode are not the commits. The real danger is
> that it blows away uncommitted changes. Besides of that, I do not
> consider this UI a confirmation dialog.
>
> -- Hannes
>
>>
>> Signed-off-by: Jens Lidestrom <jens@lidestrom.se>
>> ---
>> gitk-git/gitk | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/gitk-git/gitk b/gitk-git/gitk
>> index 9d93053e360..5b0a0ea46be 100755
>> --- a/gitk-git/gitk
>> +++ b/gitk-git/gitk
>> @@ -9906,7 +9906,9 @@ proc resethead {reset_target_id} {
>> [mc "Reset branch %s to %s?" $mainhead [commit_name
>> $reset_target_id 1]]
>> pack $w.m -side top -fill x -padx 20 -pady 20
>> ${NS}::labelframe $w.f -text [mc "Reset type:"]
>> - set resettype mixed
>> + # Reset hard is dangerous but also the most common reset type,
>> and not
>> + # having it pre-selected in the dialog is annoying to users.
>> + set resettype hard
>> ${NS}::radiobutton $w.f.soft -value soft -variable resettype \
>> -text [mc "Soft: Leave working tree and index untouched"]
>> grid $w.f.soft -sticky w