* Added new command wrapper, abstracts static and dynamic commands
- All uses of the `Command` are replaced with either `AppCommand`, for a command that is static to the scope of the application, or a reference to an ICommand (specifically, an `EnumCommand<AppCommand>()` instance), which provides the abstract wrapper.
- Functionality seems intact.
- Next step is to have the MainViewModel add the per-shell commands via SettingsService.CreateShellKeyboardShortcuts(), and have the SettingsService.ParseCommandString() function parse the command strings passed around properly.
- Finally, add the keyboard chord input to each shell's settings page.
* First kick at adding a new terminal keyboard command.
- It isn't presented anywhere, but references to keybindings should be using the ICommand key as their identifier for recognizing anything, and when xterm passes back a keyboard command event, the SettingsService is asked to convert the string into an ICommand.
* Renaming ICommand to Command.
It's not longer an interface, so this makes more sense.
* Renaming back to Command, and new class is AbstractCommand.
Going to simplify the PR diff considerably.
* Shortcuts for default shells work. Need to get the shell profile edit UI elements working.
* Added keyboard shortcut UI elements to shell profile pages.
* New and deleted shell profiles propagate to all terminal views.
* A bit of cleanup.
* Camel-casing command text to fix Ctrl+C and copy behaviour.
* Fixed failing test.
The new on disk store uses a .ToString(), not the Enum description, since the command isn't an Enum, it's a class now in general, and those semantics make more sense.
* Adding default value for null keybindings in shell profiles.
* Merge branch 'shell_commands' of https://github.com/Riebart/FluentTerminal into pr/85
Improved default value for keybinding property
* Renamed KeyBinding collection to KeyBindings
* Use strings as Command parameter of KeyBinding
* Added missing Commands to keyBindings of default shellProfiles
* fix build and unit tests after merge with master
* improve UI
* Split OnShellProfileCollectionChanged event
* Add "Show in system tray" option to the SettingsView
* Implement "Show in system tray" requiring restart
* Add warning to restart program when toggling tray
* Update warning text for toggling tray option
* add padding setting
* `=` instead of `:`
Co-Authored-By: fauzie811 <fauzie811@yahoo.com>
* call setPadding in createTerminal function
* Add "px" suffix to padding slider tooltip
Based on this tutorial:
https://www.codeproject.com/Tips/715438/Slider-Thumb-Tooltip
* term.fit() after setPadding()
* move back term.fit() below term.open()
* Changed max value, added throttling, moved converter
* create "About" page in settings
* add content to About page
* Get latest version from GitHub
* Add NotificationService to servies
* Enable actions on notifications
* Get latest version asynchroniously
* Handle when latest version is not found and clean code
* Remove old UpdateService
* Remove old NotificationService
* Add icon for about tab
* Update About page styling
* Make About menu item a footer menu item
* Update About page layout
Based on suggestions by @felixse
* Instatiate temporary navigation item only once
This seems to solve display issues when opening the "About" page multiple times where the main navigation list is being rerendered for no apparent reason.
* Revert unintended changes
* Added shortcut to about page in hamburger menu
* Move About page properties to the AboutPageViewModel
* Make "loading..." and "Not found" italic to indicate non-default behaviour
* move update check back to systemtray
* Made IUpdateService async
* Return an empty stirng when attempting to paste non-text clipboard buffer.
Returning null Task reference was causing a crash when attempting to paste a non-text buffer.
* Simplifying returned empty string task.
* Updating documentation and npm packages
- The webpack 3.10 was too old, as webpack-cli and webpack-command, required dependencies for building, need 4.x.x or 4.4.0 respectively.
- `npm-check-updates` (`npm t -g npm-check-updates`) run with `ncu -u` auto-bumped xterm.js to 3.6.0, and webpack to 4.16.5. Unfortunately this also reordered the file, so those changes aren't obvious.
- I also added webpack-cli as an explicit dependency.
- Updates to the readme to detail putting together a build environment.
* Noting that the package should be for sideloading
For dev, and non-published packages, the sideloading option is best.
* Adding dev StoreAssociation XML file for dev building.
* Cleaning up the packaging instructions.
* Changed instruction from rename to copy.
- Copy will not try to clobber the working directory of the template
file.
* Bumping xterm to 3.6.0, adding notes on installing built packages