* Update settings window layout with consistent margins
Updated the layout of the different views of the settings window so that
there is always margin at the bottom. In some cases this was achieved
using <StackPanels> for clarity and extensibility, grouping e.g. a title
and some radio options together with one unified margin.
Also made some small consistency changes to the .xaml files.
* Add width to Themes text input
* Normalize margins in settings
* Add default display values in Terminal settings
... for Arguments and Working Directory
* Generalize TemplateSelector for empty strings
* Add default display value for profile keybindings
* Update margins and fontsize in theme preview
* Update 'loading...' message in About
... to "Checking for updates..." and a spinner as suggested by
@skipmeister123
* No popup when cancelling profile edit no changes
* Delete profile when new and cancelled
* Open new and cloned themes in edit mode
... and make it so canceling deletes the theme.
* No popup when cancelling theme edit no changes
* Add resources for margin definitions
* Check for null Author in TerminalTheme
* Add resource for header margin definition
* Moved createdBy text to code behind
* 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