-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
UX Improvements: Global Menu & Copy Changes #2078
Conversation
gasi
commented
Feb 27, 2018
•
edited
Loading
edited
- Removed ‘Restart Signal’ global menu item
- Change Click to create contact… to Start conversation…
- Move global menu (top-left kebab) into OS menu bar, i.e. Settings > Preferences…
- Add tests for OS menu bar templates
- Fix bug with Window menu on macOS when showing setup options
- Use Title Case for all OS menu bar menu items for consistency
const windowState = require('./app/window_state'); | ||
const { createTemplate } = require('./app/menu'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the reasoning behind these order changes? It wasn't alphabetized before, but doesn't get us any closer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies, old habit of mine. I use Sublime Text’s Sort Lines feature that does this automatically. For destructured imports this means they’ll show up last because of {
. Let me know if you want me to revert 👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we're making changes, let's sort the right side; the modules we're pulling in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don’t think that’s a good idea. Preferably one wants to scan the left-hand side using binary search (humans are good at that 😉) for some identifier. In addition, ESLint proposes the same and we can use it once we have import
support, see: https://eslint.org/docs/rules/sort-imports
There is also https://github.com/kentor/eslint-plugin-sort-requires for require
which seems to sort left-hand side as well. In practice, it won’t be a big change as we should preferably call our left-hand side the same as the module they come from, hence the preference for named imports.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Popping up a level, I like the high-level way the order
rule from eslint-plugin-import
works. Built-ins first, then third-party node modules, then your stuff, etc.
It's disheartening that destructuring would mess with our small-scale ordering. But I guess I understand what it's doing now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing more research. Will merge for now, but I am open to automating this down the line.
"menuSetupWithImport": { | ||
"message": "Set up with import", | ||
"message": "Set Up with Import", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consistency is good, and I support this change. But it should be noted that on Windows, sentence case is preferred while on OSX capitalization like this is preferred.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pointing this out. I checked some Windows apps and ones with a classic menu bar like ours (Notepad, Visual Studio, Visual Studio Code, Slack, Sublime Text) use Title Case whereas apps with new style UI (Edge, WordPad, etc.) use Sentence case, although sometimes inconsistently. I just opted for consistency here as the strings above stood out. Hope that’s cool 😄
Looks good except for the continued CI difficulty with Electron 1.8. |
|
||
mainWindow.webContents.send('show-settings'); | ||
} | ||
|
||
function openReleaseNotes() { | ||
shell.openExternal(`https://github.com/signalapp/Signal-Desktop/releases/tag/v${app.getVersion()}`); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you are already working in this file and the community forum has moved to https://community.signalusers.org/ you could also change the link (https://whispersystems.discoursehosting.net/) in line 349. Unfortunately I cannot comment directly there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @rainerzufall. I created a separate PR for this change: #2083
d1232a2
to
65989c2
Compare
4910140
to
a3cf81b
Compare
65989c2
to
5edcce9
Compare
Rebase; no changes. |
5edcce9
to
d5215be
Compare
This follows implementation of Android and recommendation from Alissa.
When user a enters a number that is not a contact, we prompt them to start a new conversation.
Apparently, this is a remnant from the Chrome web application.
This will be replaced by a OS-level ‘Preferences’ menu.
This allows us to run this code in a non-Electron environment, e.g. Node.js Mocha test suite.
Extracting `options.platform` makes it easier to test without having to stub `process.platform`.
This reduces our reliance on custom UI until we have more design resources.
References: - Apple: - https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles - https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1 - https://titlecaseconverter.com/
- [x] Removed ‘Restart Signal’ global menu item - [x] Change _Click to create contact…_ to _Start conversation…_ - [x] Move global menu (top-left kebab) into OS menu bar, i.e. **Settings** > **Preferences…** - [x] Add tests for OS menu bar templates - [x] Fix bug with **Window** menu on macOS when showing setup options - [x] Use _Title Case_ for all OS menu bar menu items for consistency commit dedf7c9 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 16:53:42 2018 -0500 Use ‘Title Case’ to be consistent with OS menus References: - Apple: - https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles - https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1 - https://titlecaseconverter.com/ commit 3286da2 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 16:36:50 2018 -0500 Fix bug for macOS ‘Window’ menu with setup options commit 236a23d Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 16:27:46 2018 -0500 Test menus with included setup options commit c5d5f5a Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 16:10:27 2018 -0500 Move settings (‘Preferences’) into OS-level menu This reduces our reliance on custom UI until we have more design resources. commit 027803f Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 16:02:56 2018 -0500 Prepare tests for menu with/without included setup commit 9e2f006 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 15:55:46 2018 -0500 Destructure `includeSetup` commit 6b2a1ec Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 15:55:14 2018 -0500 :abc: `createTemplate` `options` commit c2fecba Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 12:49:55 2018 -0500 Test menu for Windows and Linux commit 60281b1 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 12:40:39 2018 -0500 Add `yarn run test-app` command commit 1a04899 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 12:40:29 2018 -0500 Add test for `SignalMenu.createTemplate` on macOS commit 9638b86 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 12:34:46 2018 -0500 Make `createTemplate` pure Extracting `options.platform` makes it easier to test without having to stub `process.platform`. commit 9c26404 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:47:39 2018 -0500 Extract `locale.load` `appLocale` & `logger` for testability This allows us to run this code in a non-Electron environment, e.g. Node.js Mocha test suite. commit 710b224 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:46:13 2018 -0500 :abc: npm scripts commit 9ae2293 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:45:30 2018 -0500 Use 2-space indendation for `app` module tests commit 22c26ba Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:22:55 2018 -0500 Prefer named exports commit 9c95261 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:22:46 2018 -0500 :abc: Organize `require`s commit 2f144d2 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 27 11:13:50 2018 -0500 Remove existing global hamburger menu This will be replaced by a OS-level ‘Preferences’ menu. commit f5adb37 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Mon Feb 26 18:40:54 2018 -0500 Remove ‘Restart Signal’ menu from settings Apparently, this is a remnant from the Chrome web application. commit d7a206b Author: Daniel Gasienica <daniel@gasienica.ch> Date: Mon Feb 26 17:16:49 2018 -0500 Clarify label for starting a new conversation When user a enters a number that is not a contact, we prompt them to start a new conversation. commit 715a406 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Mon Feb 26 16:46:26 2018 -0500 Use ‘Enter name or number’ as prompt’ This follows implementation of Android and recommendation from Alissa.
Merged as: 3df2202 |
Upgrade to the latest version of Electron, 1.8.2 (#2066) Replace custom notification sound with system sound (#2108) Update menus (#2078 and #2099) - A few copy changes to make things clearer - Settings now available via the File (Windows/Linux) or Signal Desktop (macOS) OS menu - Eliminate the triple-dot menu in the top-center of the screen Fix: Hitting enter after entering device name on install would not move to next screen (#2085) Dev: - Ensure consistent builds using `yarn --frozen-lockfile` (#2098) - Update code to match eslint-enforced formatting (#2077) - Upgrade to latest version of electron-builder and associated packages (#2066 and #2097)
v1.6.0-beta.2 Upgrade to the latest version of Electron, 1.8.2 (#2066) Replace custom notification sound with system sound (#2108) Update menus (#2078 and #2099) - A few copy changes to make things clearer - Settings now available via the File (Windows/Linux) or Signal Desktop (macOS) OS menu - Eliminate the triple-dot menu in the top-center of the screen Fix: Hitting enter after entering device name on install would not move to next screen (#2085) Dev: - Ensure consistent builds using `yarn --frozen-lockfile` (#2098) - Update code to match eslint-enforced formatting (#2077) - Upgrade to latest version of electron-builder and associated packages (#2066 and #2097)
_Note: This release is equivalent to v1.6.0-beta.2 (https://github.com/signalapp/Signal-Desktop/releases/tag/v1.6.0-beta.2)_ Upgrade to the latest version of Electron, 1.8.2 (#2066) Replace custom notification sound with system sound (#2108) Update menus (#2078 and #2099) - A few copy changes to make things clearer - Settings now available via the File (Windows/Linux) or Signal Desktop (macOS) OS menu - Eliminate the triple-dot menu in the top-center of the screen Fixed: Hitting enter after entering device name on install would not move to next screen (#2085) Dev: - Ensure consistent builds using yarn --frozen-lockfile (#2098) - Update code to match eslint-enforced formatting (#2077) - Upgrade to latest version of electron-builder and associated packages (#2066 and #2097)
Because the Settings are now available via the File OS menu in Linux and you eliminated the triple-dot menu in the top-center of the screen, for those of us who had the OS menu hidden, we cannot reveal the OS menu anymore because that was in the Settings of the triple-dot menu. Or at least, it is not obvious how to reveal the OS menu anymore to get to the Settings option or do anything else, like submitting a debug log, etc. Is there a keyboard shortcut that is supposed to hide and reveal these menus? Shouldn't this be possible without a keyboard shortcut? |
@ded5r On windows the alt key brings that menu bar back. Not sure about linux. |