mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Add Default Printer Override
Add a way for users to, if "Don't show Windows print dialog" is enabled, set a custom default printer for ShareX to use when printing.
This commit is contained in:
parent
65633e7cea
commit
fd332f964d
5 changed files with 796 additions and 278 deletions
|
@ -94,6 +94,26 @@ public void ShowPreview()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public void TryDefaultPrinterOverride()
|
||||
{
|
||||
string windowsDefault = printDocument.PrinterSettings.PrinterName;
|
||||
if (Settings.DefaultPrinterOverride.Length > 0)
|
||||
{
|
||||
printDocument.PrinterSettings.PrinterName = Settings.DefaultPrinterOverride;
|
||||
}
|
||||
if (!printDocument.PrinterSettings.IsValid)
|
||||
{
|
||||
printDocument.PrinterSettings.PrinterName = windowsDefault;
|
||||
using (MyMessageBox msgbox = new MyMessageBox("Printer \'" + Settings.DefaultPrinterOverride + "\' does not exist. Continuing with windows default printer, you can set the default printer override in application settings",
|
||||
"Specified Printer not Valid",
|
||||
MessageBoxButtons.OK))
|
||||
{
|
||||
msgbox.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool Print()
|
||||
{
|
||||
if (Printable && (!Settings.ShowPrintDialog || printDialog.ShowDialog() == DialogResult.OK))
|
||||
|
@ -102,7 +122,7 @@ public bool Print()
|
|||
{
|
||||
printTextHelper.Font = Settings.TextFont;
|
||||
}
|
||||
|
||||
TryDefaultPrinterOverride();
|
||||
printDocument.Print();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -38,6 +38,8 @@ public class PrintSettings
|
|||
public XmlFont TextFont { get; set; }
|
||||
public bool ShowPrintDialog { get; set; }
|
||||
|
||||
public string DefaultPrinterOverride { get; set; }
|
||||
|
||||
public PrintSettings()
|
||||
{
|
||||
Margin = 5;
|
||||
|
@ -47,6 +49,7 @@ public PrintSettings()
|
|||
CenterImage = false;
|
||||
TextFont = new XmlFont("Arial", 10);
|
||||
ShowPrintDialog = true;
|
||||
DefaultPrinterOverride = "";
|
||||
}
|
||||
}
|
||||
}
|
30
ShareX/Forms/ApplicationSettingsForm.Designer.cs
generated
30
ShareX/Forms/ApplicationSettingsForm.Designer.cs
generated
|
@ -142,6 +142,8 @@ private void InitializeComponent()
|
|||
this.cbRecentTasksShowInMainWindow = new System.Windows.Forms.CheckBox();
|
||||
this.cbRecentTasksSave = new System.Windows.Forms.CheckBox();
|
||||
this.tpPrint = new System.Windows.Forms.TabPage();
|
||||
this.lblDefaultPrinterOverride = new System.Windows.Forms.Label();
|
||||
this.txtDefaultPrinterOverride = new System.Windows.Forms.TextBox();
|
||||
this.cbPrintDontShowWindowsDialog = new System.Windows.Forms.CheckBox();
|
||||
this.cbDontShowPrintSettingDialog = new System.Windows.Forms.CheckBox();
|
||||
this.btnShowImagePrintSettings = new System.Windows.Forms.Button();
|
||||
|
@ -322,6 +324,7 @@ private void InitializeComponent()
|
|||
//
|
||||
// cmsLanguages
|
||||
//
|
||||
this.cmsLanguages.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||
this.cmsLanguages.Name = "cmsLanguages";
|
||||
resources.ApplyResources(this.cmsLanguages, "cmsLanguages");
|
||||
//
|
||||
|
@ -904,6 +907,10 @@ private void InitializeComponent()
|
|||
this.lvSecondaryFileUploaders.View = System.Windows.Forms.View.Details;
|
||||
this.lvSecondaryFileUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
|
||||
//
|
||||
// chSecondaryFileUploaders
|
||||
//
|
||||
resources.ApplyResources(this.chSecondaryFileUploaders, "chSecondaryFileUploaders");
|
||||
//
|
||||
// gbSecondaryImageUploaders
|
||||
//
|
||||
this.gbSecondaryImageUploaders.Controls.Add(this.lvSecondaryImageUploaders);
|
||||
|
@ -929,6 +936,10 @@ private void InitializeComponent()
|
|||
this.lvSecondaryImageUploaders.View = System.Windows.Forms.View.Details;
|
||||
this.lvSecondaryImageUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
|
||||
//
|
||||
// chSecondaryImageUploaders
|
||||
//
|
||||
resources.ApplyResources(this.chSecondaryImageUploaders, "chSecondaryImageUploaders");
|
||||
//
|
||||
// gbSecondaryTextUploaders
|
||||
//
|
||||
this.gbSecondaryTextUploaders.Controls.Add(this.lvSecondaryTextUploaders);
|
||||
|
@ -954,6 +965,10 @@ private void InitializeComponent()
|
|||
this.lvSecondaryTextUploaders.View = System.Windows.Forms.View.Details;
|
||||
this.lvSecondaryTextUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
|
||||
//
|
||||
// chSecondaryTextUploaders
|
||||
//
|
||||
resources.ApplyResources(this.chSecondaryTextUploaders, "chSecondaryTextUploaders");
|
||||
//
|
||||
// cbUseSecondaryUploaders
|
||||
//
|
||||
resources.ApplyResources(this.cbUseSecondaryUploaders, "cbUseSecondaryUploaders");
|
||||
|
@ -1071,12 +1086,25 @@ private void InitializeComponent()
|
|||
// tpPrint
|
||||
//
|
||||
this.tpPrint.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.tpPrint.Controls.Add(this.lblDefaultPrinterOverride);
|
||||
this.tpPrint.Controls.Add(this.txtDefaultPrinterOverride);
|
||||
this.tpPrint.Controls.Add(this.cbPrintDontShowWindowsDialog);
|
||||
this.tpPrint.Controls.Add(this.cbDontShowPrintSettingDialog);
|
||||
this.tpPrint.Controls.Add(this.btnShowImagePrintSettings);
|
||||
resources.ApplyResources(this.tpPrint, "tpPrint");
|
||||
this.tpPrint.Name = "tpPrint";
|
||||
//
|
||||
// lblDefaultPrinterOverride
|
||||
//
|
||||
resources.ApplyResources(this.lblDefaultPrinterOverride, "lblDefaultPrinterOverride");
|
||||
this.lblDefaultPrinterOverride.Name = "lblDefaultPrinterOverride";
|
||||
//
|
||||
// txtDefaultPrinterOverride
|
||||
//
|
||||
resources.ApplyResources(this.txtDefaultPrinterOverride, "txtDefaultPrinterOverride");
|
||||
this.txtDefaultPrinterOverride.Name = "txtDefaultPrinterOverride";
|
||||
this.txtDefaultPrinterOverride.TextChanged += new System.EventHandler(this.txtDefaultPrinterOverride_TextChanged);
|
||||
//
|
||||
// cbPrintDontShowWindowsDialog
|
||||
//
|
||||
resources.ApplyResources(this.cbPrintDontShowWindowsDialog, "cbPrintDontShowWindowsDialog");
|
||||
|
@ -1395,5 +1423,7 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.NumericUpDown nudCleanupKeepFileCount;
|
||||
private System.Windows.Forms.Label lblCleanupKeepFileCount;
|
||||
private System.Windows.Forms.CheckBox cbAutomaticallyCleanupLogFiles;
|
||||
private System.Windows.Forms.Label lblDefaultPrinterOverride;
|
||||
private System.Windows.Forms.TextBox txtDefaultPrinterOverride;
|
||||
}
|
||||
}
|
|
@ -219,6 +219,8 @@ private void UpdateControls()
|
|||
// Print
|
||||
cbDontShowPrintSettingDialog.Checked = Program.Settings.DontShowPrintSettingsDialog;
|
||||
cbPrintDontShowWindowsDialog.Checked = !Program.Settings.PrintSettings.ShowPrintDialog;
|
||||
txtDefaultPrinterOverride.Text = Program.Settings.PrintSettings.DefaultPrinterOverride;
|
||||
UpdatePrintControls();
|
||||
|
||||
// Advanced
|
||||
pgSettings.SelectedObject = Program.Settings;
|
||||
|
@ -994,9 +996,15 @@ private void cbRecentTasksTrayMenuMostRecentFirst_CheckedChanged(object sender,
|
|||
|
||||
#region Print
|
||||
|
||||
private void UpdatePrintControls()
|
||||
{
|
||||
txtDefaultPrinterOverride.Enabled = !Program.Settings.PrintSettings.ShowPrintDialog;
|
||||
}
|
||||
|
||||
private void cbDontShowPrintSettingDialog_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.DontShowPrintSettingsDialog = cbDontShowPrintSettingDialog.Checked;
|
||||
UpdatePrintControls();
|
||||
}
|
||||
|
||||
private void btnShowImagePrintSettings_Click(object sender, EventArgs e)
|
||||
|
@ -1006,11 +1014,19 @@ private void btnShowImagePrintSettings_Click(object sender, EventArgs e)
|
|||
{
|
||||
printForm.ShowDialog();
|
||||
}
|
||||
UpdatePrintControls();
|
||||
}
|
||||
|
||||
private void cbPrintDontShowWindowsDialog_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.PrintSettings.ShowPrintDialog = !cbPrintDontShowWindowsDialog.Checked;
|
||||
UpdatePrintControls();
|
||||
}
|
||||
|
||||
private void txtDefaultPrinterOverride_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.PrintSettings.DefaultPrinterOverride = txtDefaultPrinterOverride.Text;
|
||||
UpdatePrintControls();
|
||||
}
|
||||
|
||||
#endregion Print
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue