Use checkbox instead of buttons for Chrome extension support

This commit is contained in:
Jaex 2017-02-10 18:41:11 +03:00
parent b61b9411ff
commit a137971504
4 changed files with 84 additions and 99 deletions

View file

@ -138,13 +138,12 @@ private void InitializeComponent()
this.tpAdvanced = new System.Windows.Forms.TabPage();
this.pgSettings = new System.Windows.Forms.PropertyGrid();
this.tttvMain = new ShareX.HelpersLib.TabToTreeView();
this.btnChromeEnableSupport = new System.Windows.Forms.Button();
this.btnChromeDisableSupport = new System.Windows.Forms.Button();
this.btnChromeOpenExtensionPage = new System.Windows.Forms.Button();
this.gpFirefox = new System.Windows.Forms.GroupBox();
this.btnFirefoxOpenAddonPage = new System.Windows.Forms.Button();
this.btnFirefoxDisableSupport = new System.Windows.Forms.Button();
this.btnFirefoxEnableSupport = new System.Windows.Forms.Button();
this.cbChromeExtensionSupport = new System.Windows.Forms.CheckBox();
this.tcSettings.SuspendLayout();
this.tpGeneral.SuspendLayout();
this.tpIntegration.SuspendLayout();
@ -351,9 +350,8 @@ private void InitializeComponent()
//
// gbChrome
//
this.gbChrome.Controls.Add(this.cbChromeExtensionSupport);
this.gbChrome.Controls.Add(this.btnChromeOpenExtensionPage);
this.gbChrome.Controls.Add(this.btnChromeDisableSupport);
this.gbChrome.Controls.Add(this.btnChromeEnableSupport);
resources.ApplyResources(this.gbChrome, "gbChrome");
this.gbChrome.Name = "gbChrome";
this.gbChrome.TabStop = false;
@ -1002,20 +1000,6 @@ private void InitializeComponent()
this.tttvMain.TreeViewFont = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.tttvMain.TreeViewSize = 175;
//
// btnChromeEnableSupport
//
resources.ApplyResources(this.btnChromeEnableSupport, "btnChromeEnableSupport");
this.btnChromeEnableSupport.Name = "btnChromeEnableSupport";
this.btnChromeEnableSupport.UseVisualStyleBackColor = true;
this.btnChromeEnableSupport.Click += new System.EventHandler(this.btnChromeEnableSupport_Click);
//
// btnChromeDisableSupport
//
resources.ApplyResources(this.btnChromeDisableSupport, "btnChromeDisableSupport");
this.btnChromeDisableSupport.Name = "btnChromeDisableSupport";
this.btnChromeDisableSupport.UseVisualStyleBackColor = true;
this.btnChromeDisableSupport.Click += new System.EventHandler(this.btnChromeDisableSupport_Click);
//
// btnChromeOpenExtensionPage
//
resources.ApplyResources(this.btnChromeOpenExtensionPage, "btnChromeOpenExtensionPage");
@ -1053,6 +1037,13 @@ private void InitializeComponent()
this.btnFirefoxEnableSupport.UseVisualStyleBackColor = true;
this.btnFirefoxEnableSupport.Click += new System.EventHandler(this.btnFirefoxEnableSupport_Click);
//
// cbChromeExtensionSupport
//
resources.ApplyResources(this.cbChromeExtensionSupport, "cbChromeExtensionSupport");
this.cbChromeExtensionSupport.Name = "cbChromeExtensionSupport";
this.cbChromeExtensionSupport.UseVisualStyleBackColor = true;
this.cbChromeExtensionSupport.CheckedChanged += new System.EventHandler(this.cbChromeExtensionSupport_CheckedChanged);
//
// ApplicationSettingsForm
//
resources.ApplyResources(this, "$this");
@ -1072,6 +1063,7 @@ private void InitializeComponent()
this.gbSteam.ResumeLayout(false);
this.gbSteam.PerformLayout();
this.gbChrome.ResumeLayout(false);
this.gbChrome.PerformLayout();
this.gbWindows.ResumeLayout(false);
this.gbWindows.PerformLayout();
this.tpPaths.ResumeLayout(false);
@ -1220,12 +1212,11 @@ private void InitializeComponent()
private System.Windows.Forms.ComboBox cbTrayLeftDoubleClickAction;
private System.Windows.Forms.ComboBox cbTrayLeftClickAction;
private System.Windows.Forms.CheckBox cbCheckPreReleaseUpdates;
private System.Windows.Forms.Button btnChromeEnableSupport;
private System.Windows.Forms.Button btnChromeOpenExtensionPage;
private System.Windows.Forms.Button btnChromeDisableSupport;
private System.Windows.Forms.GroupBox gpFirefox;
private System.Windows.Forms.Button btnFirefoxOpenAddonPage;
private System.Windows.Forms.Button btnFirefoxDisableSupport;
private System.Windows.Forms.Button btnFirefoxEnableSupport;
private System.Windows.Forms.CheckBox cbChromeExtensionSupport;
}
}

View file

@ -123,6 +123,7 @@ private void UpdateControls()
cbStartWithWindows.Checked = IntegrationHelpers.CheckStartupShortcut();
cbShellContextMenu.Checked = IntegrationHelpers.CheckShellContextMenuButton();
cbSendToMenu.Checked = IntegrationHelpers.CheckSendToMenuButton();
cbChromeExtensionSupport.Checked = IntegrationHelpers.CheckChromeExtensionSupport();
#if STEAM
cbSteamShowInApp.Checked = IntegrationHelpers.CheckSteamShowInApp();
@ -427,31 +428,11 @@ private void cbSendToMenu_CheckedChanged(object sender, EventArgs e)
}
}
private void btnChromeEnableSupport_Click(object sender, EventArgs e)
private void cbChromeExtensionSupport_CheckedChanged(object sender, EventArgs e)
{
try
if (ready)
{
IntegrationHelpers.RegisterChromeSupport();
MessageBox.Show("Chrome extension support enabled.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "ShareX - " + Resources.Program_Run_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnChromeDisableSupport_Click(object sender, EventArgs e)
{
try
{
IntegrationHelpers.UnregisterChromeSupport();
MessageBox.Show("Chrome extension support disabled.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "ShareX - " + Resources.Program_Run_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
IntegrationHelpers.CreateChromeExtensionSupport(cbChromeExtensionSupport.Checked);
}
}

View file

@ -682,7 +682,7 @@
<value>2</value>
</data>
<data name="gpFirefox.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 224</value>
<value>8, 216</value>
</data>
<data name="gpFirefox.Size" type="System.Drawing.Size, System.Drawing">
<value>536, 96</value>
@ -733,7 +733,7 @@
<value>0</value>
</data>
<data name="gbSteam.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 328</value>
<value>8, 320</value>
</data>
<data name="gbSteam.Size" type="System.Drawing.Size, System.Drawing">
<value>536, 56</value>
@ -756,17 +756,44 @@
<data name="&gt;&gt;gbSteam.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbChromeExtensionSupport.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbChromeExtensionSupport.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 24</value>
</data>
<data name="cbChromeExtensionSupport.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 17</value>
</data>
<data name="cbChromeExtensionSupport.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="cbChromeExtensionSupport.Text" xml:space="preserve">
<value>Enable Chrome extension support</value>
</data>
<data name="&gt;&gt;cbChromeExtensionSupport.Name" xml:space="preserve">
<value>cbChromeExtensionSupport</value>
</data>
<data name="&gt;&gt;cbChromeExtensionSupport.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbChromeExtensionSupport.Parent" xml:space="preserve">
<value>gbChrome</value>
</data>
<data name="&gt;&gt;cbChromeExtensionSupport.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnChromeOpenExtensionPage.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 56</value>
<value>16, 48</value>
</data>
<data name="btnChromeOpenExtensionPage.Size" type="System.Drawing.Size, System.Drawing">
<value>456, 23</value>
<value>288, 23</value>
</data>
<data name="btnChromeOpenExtensionPage.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="btnChromeOpenExtensionPage.Text" xml:space="preserve">
<value>2. Install ShareX Chrome extension...</value>
<value>Install ShareX Chrome extension...</value>
</data>
<data name="&gt;&gt;btnChromeOpenExtensionPage.Name" xml:space="preserve">
<value>btnChromeOpenExtensionPage</value>
@ -778,61 +805,13 @@
<value>gbChrome</value>
</data>
<data name="&gt;&gt;btnChromeOpenExtensionPage.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnChromeDisableSupport.Location" type="System.Drawing.Point, System.Drawing">
<value>248, 24</value>
</data>
<data name="btnChromeDisableSupport.Size" type="System.Drawing.Size, System.Drawing">
<value>224, 24</value>
</data>
<data name="btnChromeDisableSupport.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="btnChromeDisableSupport.Text" xml:space="preserve">
<value>Disable Chrome support</value>
</data>
<data name="&gt;&gt;btnChromeDisableSupport.Name" xml:space="preserve">
<value>btnChromeDisableSupport</value>
</data>
<data name="&gt;&gt;btnChromeDisableSupport.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnChromeDisableSupport.Parent" xml:space="preserve">
<value>gbChrome</value>
</data>
<data name="&gt;&gt;btnChromeDisableSupport.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnChromeEnableSupport.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 24</value>
</data>
<data name="btnChromeEnableSupport.Size" type="System.Drawing.Size, System.Drawing">
<value>224, 24</value>
</data>
<data name="btnChromeEnableSupport.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="btnChromeEnableSupport.Text" xml:space="preserve">
<value>1. Enable Chrome support</value>
</data>
<data name="&gt;&gt;btnChromeEnableSupport.Name" xml:space="preserve">
<value>btnChromeEnableSupport</value>
</data>
<data name="&gt;&gt;btnChromeEnableSupport.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnChromeEnableSupport.Parent" xml:space="preserve">
<value>gbChrome</value>
</data>
<data name="&gt;&gt;btnChromeEnableSupport.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="gbChrome.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 120</value>
</data>
<data name="gbChrome.Size" type="System.Drawing.Size, System.Drawing">
<value>536, 96</value>
<value>536, 88</value>
</data>
<data name="gbChrome.TabIndex" type="System.Int32, mscorlib">
<value>1</value>

View file

@ -244,14 +244,48 @@ private static void CreateChromeHostManifest(string filepath)
File.WriteAllText(filepath, json, Encoding.UTF8);
}
public static void RegisterChromeSupport()
public static bool CheckChromeExtensionSupport()
{
try
{
return RegistryHelpers.CheckRegistry(ChromeNativeMessagingHosts, null, Program.ChromeHostManifestFilePath) && File.Exists(Program.ChromeHostManifestFilePath);
}
catch (Exception e)
{
DebugHelper.WriteException(e);
}
return false;
}
public static void CreateChromeExtensionSupport(bool create)
{
try
{
if (create)
{
UnregisterChromeSupport();
RegisterChromeSupport();
}
else
{
UnregisterChromeSupport();
}
}
catch (Exception e)
{
DebugHelper.WriteException(e);
}
}
private static void RegisterChromeSupport()
{
CreateChromeHostManifest(Program.ChromeHostManifestFilePath);
RegistryHelpers.CreateRegistry(ChromeNativeMessagingHosts, Program.ChromeHostManifestFilePath);
}
public static void UnregisterChromeSupport()
private static void UnregisterChromeSupport()
{
if (File.Exists(Program.ChromeHostManifestFilePath))
{