Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shortcut ambiguities #126

Open
hebasto opened this issue Oct 31, 2020 · 1 comment
Open

Shortcut ambiguities #126

hebasto opened this issue Oct 31, 2020 · 1 comment
Labels
Bug Something isn't working

Comments

@hebasto
Copy link
Member

hebasto commented Oct 31, 2020

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:

@hebasto hebasto added the Bug Something isn't working label Oct 31, 2020
@jarolrod
Copy link
Member

jarolrod commented Nov 3, 2020

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)"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants
@jarolrod @hebasto and others