Save history form splitter distance, on form shown select first history item

This commit is contained in:
Jaex 2016-03-01 11:25:38 +02:00
parent 7e957014bd
commit 17f6d733d2
5 changed files with 33 additions and 3 deletions

View file

@ -83,6 +83,7 @@ private void InitializeComponent()
this.scMain.Panel2.Controls.Add(this.pbThumbnail);
this.scMain.Panel2.Controls.Add(this.gbFilters);
this.scMain.SplitterColor = System.Drawing.Color.DarkGray;
this.scMain.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.scMain_SplitterMoved);
//
// lvHistory
//

View file

@ -36,6 +36,8 @@ namespace ShareX.HistoryLib
{
public partial class HistoryForm : Form
{
public event Action<int> SplitterDistanceChanged;
public string HistoryPath { get; private set; }
public int MaxItemCount { get; set; }
@ -43,7 +45,7 @@ public partial class HistoryForm : Form
private HistoryItemManager him;
private HistoryItem[] allHistoryItems;
public HistoryForm(string historyPath, int maxItemCount = -1)
public HistoryForm(string historyPath, int splitterDistance = 0, int maxItemCount = -1)
{
HistoryPath = historyPath;
MaxItemCount = maxItemCount;
@ -69,6 +71,11 @@ public HistoryForm(string historyPath, int maxItemCount = -1)
cbTypeFilterSelection.SelectedIndex = 0; // Image
cbFilenameFilterCulture.Items[0] = string.Format(Resources.HistoryForm_HistoryForm_Current_culture___0__, CultureInfo.CurrentCulture.Parent.EnglishName);
lvHistory.FillLastColumn();
if (splitterDistance > 0)
{
scMain.SplitterDistance = splitterDistance;
}
}
private void RefreshHistoryItems()
@ -298,12 +305,26 @@ private void UpdatePictureBox()
}
}
protected void OnSplitterDistanceChanged(int splitterDistance)
{
if (SplitterDistanceChanged != null)
{
SplitterDistanceChanged(splitterDistance);
}
}
#region Form events
private void HistoryForm_Shown(object sender, EventArgs e)
{
Refresh();
RefreshHistoryItems();
if (lvHistory.Items.Count > 0)
{
lvHistory.Items[0].Selected = true;
}
this.ShowActivate();
}
@ -323,6 +344,11 @@ private void HistoryForm_KeyDown(object sender, KeyEventArgs e)
}
}
private void scMain_SplitterMoved(object sender, SplitterEventArgs e)
{
OnSplitterDistanceChanged(scMain.SplitterDistance);
}
private void btnApplyFilters_Click(object sender, EventArgs e)
{
ApplyFiltersAndAdd();

View file

@ -913,7 +913,7 @@
<value>984, 641</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>925, 600</value>
<value>500, 500</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>

View file

@ -123,6 +123,8 @@ public ApplicationConfig()
public bool RecentTasksTrayMenuMostRecentFirst = false;
public WindowState HistoryWindowState = new WindowState();
public int HistorySplitterDistance = 550;
public WindowState ImageHistoryWindowState = new WindowState();
public int ImageHistoryMaxItemCount = 100;
public int ImageHistoryViewMode = 3;

View file

@ -479,7 +479,8 @@ public static void OpenScreenshotsFolder()
public static void OpenHistory()
{
HistoryForm historyForm = new HistoryForm(Program.HistoryFilePath);
HistoryForm historyForm = new HistoryForm(Program.HistoryFilePath, Program.Settings.HistorySplitterDistance);
historyForm.SplitterDistanceChanged += splitterDistance => Program.Settings.HistorySplitterDistance = splitterDistance;
Program.Settings.HistoryWindowState.AutoHandleFormState(historyForm);
historyForm.Show();
}