aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-17 16:06:27 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-17 16:06:27 +0300
commit28de564b35207886d181e4a3870f70c3bde04c3d (patch)
tree13e20b49201da1fe544b6a218e87d2739fe11da3 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
parent936f105cf65f1efa7b27cea08080c183f2679568 (diff)
downloadTango-28de564b35207886d181e4a3870f70c3bde04c3d.tar.gz
Tango-28de564b35207886d181e4a3870f70c3bde04c3d.zip
Implemented keep modules windows states and bounds after restart.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs33
2 files changed, 31 insertions, 4 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
index 215f7afb5..4032c946c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -149,7 +149,7 @@ namespace Tango.MachineStudio.UI.ViewModels
InvokeUI(() =>
{
- _studioModuleLoader.LoadModules();
+ //_studioModuleLoader.LoadModules();
_navigationManager.NavigateTo(NavigationView.LoginView);
IsLoading = false;
});
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index 31b2181ea..cbd58134d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -47,7 +47,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Represents the Machine Studio main view, view model.
/// </summary>
/// <seealso cref="Tango.SharedUI.ViewModel{Tango.MachineStudio.UI.SupervisingController.IMainView}" />
- public class MainViewVM : ViewModel
+ public class MainViewVM : StudioViewModel
{
private IStudioModule _currentModule;
private INavigationManager _navigation;
@@ -296,7 +296,7 @@ namespace Tango.MachineStudio.UI.ViewModels
ConnectCommand = new RelayCommand(ConnectToMachine);
SignoutCommand = new RelayCommand(SignOut);
DisconnectCommand = new RelayCommand(DisconnectFromMachine, (x) => ApplicationManager.IsMachineConnected && !_isDisconnecting);
- OpenModuleInWindowCommand = new RelayCommand<IStudioModule>(OpenModuleInWindow);
+ OpenModuleInWindowCommand = new RelayCommand<IStudioModule>((x) => { OpenModuleInWindow(x); });
ExitCommand = new RelayCommand(ExitApplication);
UpdateCenterCommand = new RelayCommand(NavigateToUpdateCenter);
@@ -671,7 +671,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Opens the module in a new window.
/// </summary>
/// <param name="module">The module.</param>
- private void OpenModuleInWindow(IStudioModule module)
+ private void OpenModuleInWindow(IStudioModule module, Rect? bounds = null, WindowState? state = null)
{
if (module == null) return;
@@ -697,6 +697,20 @@ namespace Tango.MachineStudio.UI.ViewModels
ModuleWindowVM vm = new ModuleWindowVM(module);
ModuleWindow window = new ModuleWindow(this, vm, view);
+ if (bounds.HasValue)
+ {
+ window.WindowStartupLocation = WindowStartupLocation.Manual;
+ window.WindowState = WindowState.Normal;
+ window.Left = bounds.Value.Left;
+ window.Top = bounds.Value.Top;
+ window.Width = bounds.Value.Width;
+ window.Height = bounds.Value.Height;
+ window.Loaded += (_, __) =>
+ {
+ window.WindowState = state.Value;
+ };
+ }
+
window.Closing += (x, y) =>
{
LogManager.Log(String.Format("Closing module '{0}' on new window...", module.Name));
@@ -847,5 +861,18 @@ namespace Tango.MachineStudio.UI.ViewModels
console.Owner = MainWindow.Instance;
console.Show();
}
+
+ public override void OnApplicationReady()
+ {
+ foreach (var item in SettingsManager.Default.GetOrCreate<MachineStudioSettings>().StudioModulesBounds)
+ {
+ var module = StudioModuleLoader.AllModules.SingleOrDefault(x => x.Name == item.Name);
+
+ if (module != null && !module.InNewWindow)
+ {
+ OpenModuleInWindow(module, item.Bounds, item.State);
+ }
+ }
+ }
}
}