Allow placing image preview pane on bottom

User can select to have main form image preview pane at the side or at the bottom.
Closes #1943
This commit is contained in:
campbeb 2017-10-28 12:41:14 -04:00
parent 739c857871
commit ee96a1e3c2
6 changed files with 107 additions and 4 deletions

View file

@ -466,11 +466,11 @@ public static void Check(this ToolStripMenuItem tsmi)
{
if (tsmi != null)
{
foreach (ToolStripMenuItem item in tsmi.GetCurrentParent().Items)
foreach (var item in tsmi.GetCurrentParent().Items)
{
if (item != null)
if (item != null && item is ToolStripMenuItem tsmiItem && tsmiItem.Tag.Equals(tsmi.Tag))
{
item.Checked = item == tsmi;
tsmiItem.Checked = tsmiItem == tsmi;
}
}
}

View file

@ -58,6 +58,7 @@ public ApplicationConfig()
public bool ShowMenu = true;
public bool ShowColumns = true;
public ImagePreviewVisibility ImagePreview = ImagePreviewVisibility.Automatic;
public ImagePreviewLocation ImagePreviewLocation = ImagePreviewLocation.Side;
public int PreviewSplitterDistance = 335;
public DateTime NewsLastReadDate;

View file

@ -250,6 +250,11 @@ public enum ImagePreviewVisibility
Show, Hide, Automatic
}
public enum ImagePreviewLocation
{
Side, Bottom
}
public enum ScreenRecordState
{
Waiting, BeforeStart, AfterStart, AfterRecordingStart, AfterStop

View file

@ -173,6 +173,9 @@ private void InitializeComponent()
this.tsmiImagePreviewShow = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImagePreviewHide = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImagePreviewAutomatic = new System.Windows.Forms.ToolStripMenuItem();
this.tssImagePreview = new System.Windows.Forms.ToolStripSeparator();
this.tsmiImagePreviewSide = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImagePreviewBottom = new System.Windows.Forms.ToolStripMenuItem();
this.niTray = new System.Windows.Forms.NotifyIcon(this.components);
this.cmsTray = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsmiTrayCapture = new System.Windows.Forms.ToolStripMenuItem();
@ -1344,7 +1347,10 @@ private void InitializeComponent()
this.tsmiImagePreview.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiImagePreviewShow,
this.tsmiImagePreviewHide,
this.tsmiImagePreviewAutomatic});
this.tsmiImagePreviewAutomatic,
this.tssImagePreview,
this.tsmiImagePreviewSide,
this.tsmiImagePreviewBottom});
this.tsmiImagePreview.Image = global::ShareX.Properties.Resources.layout_select_content;
this.tsmiImagePreview.Name = "tsmiImagePreview";
resources.ApplyResources(this.tsmiImagePreview, "tsmiImagePreview");
@ -1355,20 +1361,44 @@ private void InitializeComponent()
this.tsmiImagePreviewShow.CheckState = System.Windows.Forms.CheckState.Checked;
this.tsmiImagePreviewShow.Name = "tsmiImagePreviewShow";
resources.ApplyResources(this.tsmiImagePreviewShow, "tsmiImagePreviewShow");
this.tsmiImagePreviewShow.Tag = "Visibility";
this.tsmiImagePreviewShow.Click += new System.EventHandler(this.tsmiImagePreviewShow_Click);
//
// tsmiImagePreviewHide
//
this.tsmiImagePreviewHide.Name = "tsmiImagePreviewHide";
resources.ApplyResources(this.tsmiImagePreviewHide, "tsmiImagePreviewHide");
this.tsmiImagePreviewHide.Tag = "Visibility";
this.tsmiImagePreviewHide.Click += new System.EventHandler(this.tsmiImagePreviewHide_Click);
//
// tsmiImagePreviewAutomatic
//
this.tsmiImagePreviewAutomatic.Name = "tsmiImagePreviewAutomatic";
resources.ApplyResources(this.tsmiImagePreviewAutomatic, "tsmiImagePreviewAutomatic");
this.tsmiImagePreviewAutomatic.Tag = "Visibility";
this.tsmiImagePreviewAutomatic.Click += new System.EventHandler(this.tsmiImagePreviewAutomatic_Click);
//
// tssImagePreview
//
this.tssImagePreview.Name = "tssImagePreview";
resources.ApplyResources(this.tssImagePreview, "tssImagePreview");
//
// tsmiImagePreviewSide
//
this.tsmiImagePreviewSide.Checked = true;
this.tsmiImagePreviewSide.CheckState = System.Windows.Forms.CheckState.Checked;
this.tsmiImagePreviewSide.Name = "tsmiImagePreviewSide";
resources.ApplyResources(this.tsmiImagePreviewSide, "tsmiImagePreviewSide");
this.tsmiImagePreviewSide.Tag = "Location";
this.tsmiImagePreviewSide.Click += new System.EventHandler(this.tsmiImagePreviewSide_Click);
//
// tsmiImagePreviewBottom
//
this.tsmiImagePreviewBottom.Name = "tsmiImagePreviewBottom";
resources.ApplyResources(this.tsmiImagePreviewBottom, "tsmiImagePreviewBottom");
this.tsmiImagePreviewBottom.Tag = "Location";
this.tsmiImagePreviewBottom.Click += new System.EventHandler(this.tsmiImagePreviewBottom_Click);
//
// niTray
//
this.niTray.ContextMenuStrip = this.cmsTray;
@ -2282,5 +2312,8 @@ private void InitializeComponent()
public System.Windows.Forms.FlowLayoutPanel flpCommunity;
public System.Windows.Forms.FlowLayoutPanel flpPatreon;
public System.Windows.Forms.FlowLayoutPanel flpDiscord;
private System.Windows.Forms.ToolStripMenuItem tsmiImagePreviewSide;
private System.Windows.Forms.ToolStripMenuItem tsmiImagePreviewBottom;
private System.Windows.Forms.ToolStripSeparator tssImagePreview;
}
}

View file

@ -249,6 +249,16 @@ public void UpdateControls()
break;
}
switch (Program.Settings.ImagePreviewLocation)
{
case ImagePreviewLocation.Side:
tsmiImagePreviewSide.Check();
break;
case ImagePreviewLocation.Bottom:
tsmiImagePreviewBottom.Check();
break;
}
if (Program.Settings.PreviewSplitterDistance > 0)
{
scMain.SplitterDistance = Program.Settings.PreviewSplitterDistance;
@ -555,6 +565,16 @@ private void UpdateContextMenu()
break;
}
switch (Program.Settings.ImagePreviewLocation)
{
case ImagePreviewLocation.Side:
scMain.Orientation = Orientation.Vertical;
break;
case ImagePreviewLocation.Bottom:
scMain.Orientation = Orientation.Horizontal;
break;
}
if (uim.IsItemSelected)
{
// Open
@ -2034,6 +2054,20 @@ private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
UpdateContextMenu();
}
private void tsmiImagePreviewSide_Click(object sender, EventArgs e)
{
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Side;
tsmiImagePreviewSide.Check();
UpdateContextMenu();
}
private void tsmiImagePreviewBottom_Click(object sender, EventArgs e)
{
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Bottom;
tsmiImagePreviewBottom.Check();
UpdateContextMenu();
}
#endregion UploadInfoMenu events
#endregion Form events

View file

@ -1287,6 +1287,18 @@
<data name="tsmiImagePreviewAutomatic.Text" xml:space="preserve">
<value>Automatic</value>
</data>
<data name="tsmiImagePreviewSide.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 22</value>
</data>
<data name="tsmiImagePreviewSide.Text" xml:space="preserve">
<value>Side</value>
</data>
<data name="tsmiImagePreviewBottom.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 22</value>
</data>
<data name="tsmiImagePreviewBottom.Text" xml:space="preserve">
<value>Bottom</value>
</data>
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
@ -2778,6 +2790,24 @@
<data name="&gt;&gt;tsmiImagePreviewAutomatic.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tssImagePreview.Name" xml:space="preserve">
<value>tssImagePreview</value>
</data>
<data name="&gt;&gt;tssImagePreview.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiImagePreviewSide.Name" xml:space="preserve">
<value>tsmiImagePreviewSide</value>
</data>
<data name="&gt;&gt;tsmiImagePreviewSide.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiImagePreviewBottom.Name" xml:space="preserve">
<value>tsmiImagePreviewBottom</value>
</data>
<data name="&gt;&gt;tsmiImagePreviewBottom.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;niTray.Name" xml:space="preserve">
<value>niTray</value>
</data>