Remember screen position. Issue #61
This commit is contained in:
parent
281d615649
commit
b4def2e2d6
@ -65,6 +65,38 @@ namespace FileManager
|
|||||||
|
|
||||||
public bool Exists(string propertyName) => persistentDictionary.Exists(propertyName);
|
public bool Exists(string propertyName) => persistentDictionary.Exists(propertyName);
|
||||||
|
|
||||||
|
#region MainForm: X, Y, Width, Height, MainFormIsMaximized
|
||||||
|
public int MainFormX
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<int>(nameof(MainFormX));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(MainFormX), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MainFormY
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<int>(nameof(MainFormY));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(MainFormY), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MainFormWidth
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<int>(nameof(MainFormWidth));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(MainFormWidth), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MainFormHeight
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<int>(nameof(MainFormHeight));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(MainFormHeight), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool MainFormIsMaximized
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<bool>(nameof(MainFormIsMaximized));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(MainFormIsMaximized), value);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
[Description("Location for book storage. Includes destination of newly liberated books")]
|
[Description("Location for book storage. Includes destination of newly liberated books")]
|
||||||
public string Books
|
public string Books
|
||||||
{
|
{
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<!-- <PublishSingleFile>true</PublishSingleFile> -->
|
<!-- <PublishSingleFile>true</PublishSingleFile> -->
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
|
||||||
<Version>5.3.3.1</Version>
|
<Version>5.3.4.1</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
5
LibationWinForms/Form1.Designer.cs
generated
5
LibationWinForms/Form1.Designer.cs
generated
@ -239,14 +239,14 @@
|
|||||||
// accountsToolStripMenuItem
|
// accountsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.accountsToolStripMenuItem.Name = "accountsToolStripMenuItem";
|
this.accountsToolStripMenuItem.Name = "accountsToolStripMenuItem";
|
||||||
this.accountsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
this.accountsToolStripMenuItem.Size = new System.Drawing.Size(133, 22);
|
||||||
this.accountsToolStripMenuItem.Text = "&Accounts...";
|
this.accountsToolStripMenuItem.Text = "&Accounts...";
|
||||||
this.accountsToolStripMenuItem.Click += new System.EventHandler(this.accountsToolStripMenuItem_Click);
|
this.accountsToolStripMenuItem.Click += new System.EventHandler(this.accountsToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// basicSettingsToolStripMenuItem
|
// basicSettingsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.basicSettingsToolStripMenuItem.Name = "basicSettingsToolStripMenuItem";
|
this.basicSettingsToolStripMenuItem.Name = "basicSettingsToolStripMenuItem";
|
||||||
this.basicSettingsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
this.basicSettingsToolStripMenuItem.Size = new System.Drawing.Size(133, 22);
|
||||||
this.basicSettingsToolStripMenuItem.Text = "&Settings...";
|
this.basicSettingsToolStripMenuItem.Text = "&Settings...";
|
||||||
this.basicSettingsToolStripMenuItem.Click += new System.EventHandler(this.basicSettingsToolStripMenuItem_Click);
|
this.basicSettingsToolStripMenuItem.Click += new System.EventHandler(this.basicSettingsToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -316,6 +316,7 @@
|
|||||||
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||||
this.Name = "Form1";
|
this.Name = "Form1";
|
||||||
this.Text = "Libation: Liberate your Library";
|
this.Text = "Libation: Liberate your Library";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||||
this.Load += new System.EventHandler(this.Form1_Load);
|
this.Load += new System.EventHandler(this.Form1_Load);
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
|
|||||||
@ -40,6 +40,8 @@ namespace LibationWinForms
|
|||||||
if (this.DesignMode)
|
if (this.DesignMode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
RestoreSizeAndLocation();
|
||||||
|
|
||||||
// load default/missing cover images. this will also initiate the background image downloader
|
// load default/missing cover images. this will also initiate the background image downloader
|
||||||
var format = System.Drawing.Imaging.ImageFormat.Jpeg;
|
var format = System.Drawing.Imaging.ImageFormat.Jpeg;
|
||||||
PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format));
|
PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format));
|
||||||
@ -61,6 +63,81 @@ namespace LibationWinForms
|
|||||||
setBackupCounts(null, null);
|
setBackupCounts(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
SaveSizeAndLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RestoreSizeAndLocation()
|
||||||
|
{
|
||||||
|
var config = Configuration.Instance;
|
||||||
|
|
||||||
|
var width = config.MainFormWidth;
|
||||||
|
var height = config.MainFormHeight;
|
||||||
|
|
||||||
|
// too small -- something must have gone wrong. use defaults
|
||||||
|
if (width < 25 || height < 25)
|
||||||
|
{
|
||||||
|
width = 1023;
|
||||||
|
height = 578;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fit to the current screen size in case the screen resolution changed since the size was last persisted
|
||||||
|
if (width > Screen.PrimaryScreen.WorkingArea.Width)
|
||||||
|
width = Screen.PrimaryScreen.WorkingArea.Width;
|
||||||
|
if (height > Screen.PrimaryScreen.WorkingArea.Height)
|
||||||
|
height = Screen.PrimaryScreen.WorkingArea.Height;
|
||||||
|
|
||||||
|
var x = config.MainFormX;
|
||||||
|
var y = config.MainFormY;
|
||||||
|
|
||||||
|
var rect = new System.Drawing.Rectangle(x, y, width, height);
|
||||||
|
|
||||||
|
// is proposed rect on a screen?
|
||||||
|
if (Screen.AllScreens.Any(screen => screen.WorkingArea.Contains(rect)))
|
||||||
|
{
|
||||||
|
this.StartPosition = FormStartPosition.Manual;
|
||||||
|
this.DesktopBounds = rect;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
|
||||||
|
this.Size = rect.Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FINAL: for Maximized: start normal state, set size and location, THEN set max state
|
||||||
|
this.WindowState = config.MainFormIsMaximized ? FormWindowState.Maximized : FormWindowState.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveSizeAndLocation()
|
||||||
|
{
|
||||||
|
System.Drawing.Point location;
|
||||||
|
System.Drawing.Size size;
|
||||||
|
|
||||||
|
// save location and size if the state is normal
|
||||||
|
if (this.WindowState == FormWindowState.Normal)
|
||||||
|
{
|
||||||
|
location = this.Location;
|
||||||
|
size = this.Size;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// save the RestoreBounds if the form is minimized or maximized
|
||||||
|
location = this.RestoreBounds.Location;
|
||||||
|
size = this.RestoreBounds.Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
var config = Configuration.Instance;
|
||||||
|
|
||||||
|
config.MainFormX = location.X;
|
||||||
|
config.MainFormY = location.Y;
|
||||||
|
|
||||||
|
config.MainFormWidth = size.Width;
|
||||||
|
config.MainFormHeight = size.Height;
|
||||||
|
|
||||||
|
config.MainFormIsMaximized = this.WindowState == FormWindowState.Maximized;
|
||||||
|
}
|
||||||
|
|
||||||
#region reload grid
|
#region reload grid
|
||||||
bool isProcessingGridSelect = false;
|
bool isProcessingGridSelect = false;
|
||||||
private void reloadGrid()
|
private void reloadGrid()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user