* Dispatcher reviewed and improved.
* Minor refactoring.
* XtermTerminalView initialization simplified.
* Additionally simplifying XtermTerminalView initialization.
* Replacing SemaphoreSlim with lighter TaskCompletionSource.
* Some async/await simplification.
* Resize locking mechanism in XtermTerminalView simplified.
* Resize handling improved.
* Trivial change in a code comment.
* After merge fixes, and some minor changes.
* Add a background image property in theme
* Add the browse command to theme settings page
The goal was to create a command that permit to browse user pictures.
The user can now select is picture by browsing file or to simply copy the
link of the image in the textbox.
* Try to show the image that we download
* Change the save image method in file service
We call the method `ImportImageFile` so that we can show a picker dialog
and directly import the image in the roaming folder.
We make some check to avoid the application crash, still need to test
* Reorganize the UI for image import
* Add background brush converter
Now that we have a background image we need to set the background according
to the theme color or the selected image.
To do this we need to use the `ThemeViewModel` and the new converter to
select the right brush to use (`ImageBrush` or ` AcrylicBrush`)
* Use the File object insted of a image path
* Add background style to content and toolbar
* Create the ImageFile object
* Use the ImageFile object so that we can serialize the theme
* Remove commented code
* Remove the base64 string of the image file
* Disable if it's a preinstalled theme
* Add new event when background image changed
* Make the RemoveImportedImage method async
* Subscribe to background image event and change background in code behind
* Add the delete background image command
* Remove unused converters that we created
* Save background image in temporary folder
* Remove the temporary images and save the last one
* Implement the cancel and delete background
* Show the background image in terminal
* Split the image file methods in another interface
* Change the name of image saving method
* Prepare the object and methods to export encoded image
* Add import method to deserialize correctly the theme
* Remove the private from the set accessor
* Implememnt the import method
* Implement the conversion base64 image to real image
* Create the background image and import it
* Fix some actions bug
* Get the new image file name after import
* Fix some bugs when the image is deleted
* Move the background image in terminal view
* Translate the background image text
* Add the delete background command
* Fix the background image deletion if we click on cancel
* Add background opacity property to terminal view model
* Need to create a theme changed event
If we don't notify the view that the selected theme has changed with
another theme that has the same background but a different background image
we'll never see this image appear.
In fact the background change is triggered by the background color change.
* Remove the background from the theme settings page
* Fix error of last edited image
* Fix image background aspect ratio
* - Force GC.Collect() on closing of terminal;
- Prepare MainPage, MainViewModel, TabBar, TerminalBridge for disposal.
* Request _dispatcherJobs Task cancellation ASAP on terminal closing.
* Encapsulate xterm.js implementation in XtermTerminalView
* fix TerminalTheme Equals()
* Fix new output indicator
* Ut8 and some fixes
* fix test
* fixed infinite loop on shell exit
* 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