Shortcut ambiguities #126

issue hebasto openend this issue on October 31, 2020
  1. hebasto commented at 2:11 pm on October 31, 2020: member

    An example of shortcut ambiguity: DeepinScreenshot_select-area_20201031160227

    Pressing Alt+D a user could expect switching to the “Display” tab, but actually the “Size of database cache” widget is activated. The following Alt+D routes to the “Display” tab.

    Other tabs of the “Options” window also have such ambiguities.

    Localized versions of the GUI have such ambiguities too.

    Useful Qt docs:

  2. hebasto added the label Bug on Oct 31, 2020
  3. jarolrod commented at 1:31 am on November 3, 2020: member

    The Collision shown in your screenshot interferes with this tab switching functionality and should be considered a serious Functional Collision, we should remove any and all functional collisions. This collision is also cyclic as upon the next ‘D’ key-press, the Display Tab will be reached.

    The conversation to be had about these shortcut ambiguities revolves around: A) Do we ever want Cyclic Behavior?, B) If Yes, where is Cyclic Behavior Appropriate.

    I have looked through the entire GUI and have found one more Functional Collision in the Network Tab. I have also found Cyclic Collisions within the Wallet and Network tabs of the Options Window.

    Main Tab

    If a user opens up the Options Window, they want to access a feature that is found within one of the following tabs: Main, Wallet, Network, Window, Display. Since they are first greeted with the Main Tab, their first course of action could be to switch to a new tab. If we do not want to interfere with the Tab Switching functionality: Shortcuts associated with a Tab should be reserved exclusively to the Tab; the shortcut should not be available to any feature found within a tab.

    Wallet Tab

    collision-2-edit1 Here we have a cyclic collision with the Alt+C shortcut. The collision occurs between the feature of “Enable coin control feature” and the “Cancel” option. As Alt+C is a very appropriate shortcut for “Cancel”, the question arises: Should this be considered a functional collision? I certainly believe so.

    In most cases, except in the case of an incorrect click or key press, a user made an explicit choice to enter the Wallet tab. The argument could be made that the user intends to use a feature within the Wallet tab and this cyclic collision won’t cause too much trouble.

    On the other hand, much like Tab Switching Functionality, I don’t think we want anything colliding with the functionality of Cancel. To further expand on that, we should also avoid collisions with the options of Ok and Reset Options. The shortcuts corresponding to these options should be added to our reserve list of shortcuts. There are no features that share a shortcut with these two options in the scope of the Option window.

    Network Tab

    collision-3-edit1 Here we have, like in the Wallet Tab, a Functional Collision between Cancel and Connect through SOCKS5 Proxy (Default Proxy). This needs to be changed.

    We also have cyclic collisions with the shortcuts corresponding to Proxy IP and Port fields between your default proxy and your proxy for reaching peers via Tor. This Cyclic Collision can be considered acceptable because:

    1. Without Default Proxy or Tor Proxy options enabled, The Alt-I and Alt+P shortcuts do nothing. If only one of these options is enabled, then these shortcuts correspond to the Proxy IP and Port fields for the enabled option. If both options are enabled, then the shortcuts cycle through these two field.
    2. Alt+I is an acceptable shortcut for specifying Proxy IP. Alt+P is an acceptable shortcut for specifying Port. Together they form an elegant solution to specifying each field.
    3. In practice you would first specify the Proxy IP and Port for your default proxy. Upon completing this task, you either stop there or go on to specify a separate proxy for connecting through Tor. Therefore, the cyclic shortcut collision of Proxy IP and Port flows naturally with the cyclic nature of completing this task.

    Proposed Solutions

    Main Tab Functional Collision

    • Change Alt+D to Alt+I -> as in “S i ze of database Cache”.

    Wallet Tab Functional Collision

    • Change Alt+C to Alt+I -> as in “Enable co i n control features”

    Network Tab Cyclic and Functional Collisions

    • Do nothing about the Cyclic Collisions with the Proxy IP and Port fields
    • In Respect to the functional collision with Alt+C
      1. Create another cyclic collision between the enabling the options of Default Proxy and Tor Proxy
        • Change Alt+C to Alt+5 -> as in “Connect through SOCKS 5 proxy (default proxy)”
      2. Avoid another cyclic collision, but still change the functional collision
        • Chane Alt+C to Alt+S -> as in “Connect through S OCKS5 proxy (default proxy)”


hebasto jarolrod

Labels
Bug


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-23 04:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me