Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/04/16 13:28:04 (9 years ago)
Author:
jkarder
Message:

#2567: worked on saving Location/Size/WindowState settings

  • added settings for StarterForm
  • removed ShowMaximized setting used by MainForm
  • implemented checks to fall back to default values if necessary
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs

    r12012 r13586  
    2222using System;
    2323using System.Collections.Generic;
     24using System.Drawing;
    2425using System.IO;
    2526using System.Linq;
     
    2930using HeuristicLab.PluginInfrastructure.Advanced;
    3031using HeuristicLab.PluginInfrastructure.Manager;
     32using HeuristicLab.PluginInfrastructure.Properties;
    3133
    3234namespace HeuristicLab.PluginInfrastructure.Starter {
     
    6769      splashScreen.Show(this, "Loading HeuristicLab...");
    6870
     71      if (CheckSavedStarterFormSettings()) {
     72        Location = Settings.Default.StarterFormLocation;
     73        Size = Settings.Default.StarterFormSize;
     74        WindowState = Settings.Default.StarterFormWindowState;
     75      }
     76
    6977      pluginManager.DiscoverAndCheckPlugins();
    7078      UpdateApplicationsList();
     
    96104      splashScreen.Close();
    97105      abortRequested = true;
     106
     107      if (WindowState != FormWindowState.Minimized)
     108        Settings.Default.StarterFormWindowState = WindowState;
     109      if (WindowState != FormWindowState.Normal) {
     110        Settings.Default.StarterFormLocation = RestoreBounds.Location;
     111        Settings.Default.StarterFormSize = RestoreBounds.Size;
     112      } else if (WindowState == FormWindowState.Normal) {
     113        Settings.Default.StarterFormLocation = Location;
     114        Settings.Default.StarterFormSize = Size;
     115      }
     116
     117      Settings.Default.Save();
    98118    }
    99119
     
    177197
    178198    #region Helpers
     199    private bool CheckSavedStarterFormSettings() {
     200      var formArea = new Rectangle(Settings.Default.StarterFormLocation, Settings.Default.StarterFormSize);
     201      var screenArea = Screen.FromRectangle(formArea).WorkingArea;
     202      var overlappingArea = Rectangle.Intersect(formArea, screenArea);
     203      bool offLimits = overlappingArea.IsEmpty || overlappingArea.Width * overlappingArea.Height < formArea.Width * formArea.Height * 0.25;
     204      return !formArea.IsEmpty && !offLimits;
     205    }
     206
    179207    private void UpdateApplicationsList() {
    180208      if (InvokeRequired) Invoke((Action)UpdateApplicationsList);
Note: See TracChangeset for help on using the changeset viewer.