diff --git a/src/Forms/Settings.Designer.cs b/src/Forms/Settings.Designer.cs
index 45645f143..79d0d3918 100644
--- a/src/Forms/Settings.Designer.cs
+++ b/src/Forms/Settings.Designer.cs
@@ -386,6 +386,10 @@
this.openFileDialogFFmpeg = new System.Windows.Forms.OpenFileDialog();
this.buttonReset = new System.Windows.Forms.Button();
this.toolTipContinuationPreview = new System.Windows.Forms.ToolTip(this.components);
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.importShortcutsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exportShortcutsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.tabControlSettings.SuspendLayout();
this.tabPageGeneral.SuspendLayout();
this.groupBoxMiscellaneous.SuspendLayout();
@@ -1607,14 +1611,17 @@
// contextMenuStripShortcuts
//
this.contextMenuStripShortcuts.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItemShortcutsCollapse});
+ this.toolStripMenuItemShortcutsCollapse,
+ this.toolStripSeparator1,
+ this.importShortcutsToolStripMenuItem,
+ this.exportShortcutsToolStripMenuItem});
this.contextMenuStripShortcuts.Name = "contextMenuStripShortcuts";
- this.contextMenuStripShortcuts.Size = new System.Drawing.Size(120, 26);
+ this.contextMenuStripShortcuts.Size = new System.Drawing.Size(120, 76);
//
// toolStripMenuItemShortcutsCollapse
//
this.toolStripMenuItemShortcutsCollapse.Name = "toolStripMenuItemShortcutsCollapse";
- this.toolStripMenuItemShortcutsCollapse.Size = new System.Drawing.Size(119, 22);
+ this.toolStripMenuItemShortcutsCollapse.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItemShortcutsCollapse.Text = "Collapse";
this.toolStripMenuItemShortcutsCollapse.Click += new System.EventHandler(this.toolStripMenuItemShortcutsCollapse_Click);
//
@@ -4687,6 +4694,25 @@
this.toolTipContinuationPreview.InitialDelay = 500;
this.toolTipContinuationPreview.ReshowDelay = 100;
//
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
+ //
+ // importShortcutsToolStripMenuItem
+ //
+ this.importShortcutsToolStripMenuItem.Name = "importShortcutsToolStripMenuItem";
+ this.importShortcutsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.importShortcutsToolStripMenuItem.Text = "Import...";
+ this.importShortcutsToolStripMenuItem.Click += new System.EventHandler(this.importShortcutsToolStripMenuItem_Click);
+ //
+ // exportShortcutsToolStripMenuItem
+ //
+ this.exportShortcutsToolStripMenuItem.Name = "exportShortcutsToolStripMenuItem";
+ this.exportShortcutsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.exportShortcutsToolStripMenuItem.Text = "Export...";
+ this.exportShortcutsToolStripMenuItem.Click += new System.EventHandler(this.exportShortcutsToolStripMenuItem_Click);
+ //
// Settings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -5184,5 +5210,9 @@
private System.Windows.Forms.Button buttonGapChoose;
private System.Windows.Forms.CheckBox checkBoxSpellCheckAutoChangeNamesViaSuggestions;
private System.Windows.Forms.ComboBox comboBoxBoxBingTokenEndpoint;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripMenuItem importShortcutsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exportShortcutsToolStripMenuItem;
+ private System.Windows.Forms.SaveFileDialog saveFileDialog1;
}
}
\ No newline at end of file
diff --git a/src/Forms/Settings.cs b/src/Forms/Settings.cs
index f7a724c04..eec1d9446 100644
--- a/src/Forms/Settings.cs
+++ b/src/Forms/Settings.cs
@@ -18,6 +18,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
+using System.Xml.Serialization;
namespace Nikse.SubtitleEdit.Forms
{
@@ -950,6 +951,8 @@ namespace Nikse.SubtitleEdit.Forms
MakeShortcutsTreeView(language);
ShowShortcutsTreeView();
toolStripMenuItemShortcutsCollapse.Text = Configuration.Settings.Language.General.Collapse;
+ importShortcutsToolStripMenuItem.Text = Configuration.Settings.Language.MultipleReplace.Import;
+ exportShortcutsToolStripMenuItem.Text = Configuration.Settings.Language.MultipleReplace.Export;
labelShortcutsSearch.Text = Configuration.Settings.Language.General.Search;
buttonShortcutsClear.Text = Configuration.Settings.Language.DvdSubRip.Clear;
textBoxShortcutSearch.Left = labelShortcutsSearch.Left + labelShortcutsSearch.Width + 5;
@@ -1447,6 +1450,7 @@ namespace Nikse.SubtitleEdit.Forms
treeViewShortcuts.ExpandAll();
treeViewShortcuts.EndUpdate();
+ treeViewShortcuts.SelectedNode = treeViewShortcuts.Nodes[0];
}
private void AddNode(TreeNode parentNode, string text, ShortcutHelper shortcut)
@@ -3410,5 +3414,60 @@ namespace Nikse.SubtitleEdit.Forms
}
}
}
+
+ private void importShortcutsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ openFileDialogFFmpeg.Title = null;
+ openFileDialogFFmpeg.Filter = "Xml files|*.xml";
+ openFileDialogFFmpeg.FileName = "SE_Shortcuts";
+ if (openFileDialogFFmpeg.ShowDialog(this) != DialogResult.OK)
+ {
+ return;
+ }
+
+ try
+ {
+ var r = new StreamReader(openFileDialogFFmpeg.FileName);
+ var s = new XmlSerializer(typeof(Shortcuts));
+ Configuration.Settings.Shortcuts = (Shortcuts)s.Deserialize(r);
+ r.Close();
+ MakeShortcutsTreeView(Configuration.Settings.Language.Settings);
+ ShowShortcutsTreeView();
+ }
+ catch (Exception exception)
+ {
+ MessageBox.Show("Shortcuts not imported!" + Environment.NewLine + Environment.NewLine + exception.Message);
+ SeLogger.Error(exception, "Failed to import shortcuts");
+ }
+ }
+
+ private void exportShortcutsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ saveFileDialog1.Filter = "Xml files|*.xml";
+ saveFileDialog1.FileName = "SE_Shortcuts";
+ if (saveFileDialog1.ShowDialog(this) != DialogResult.OK)
+ {
+ return;
+ }
+
+ try
+ {
+ var shortcuts = new Shortcuts();
+ foreach (var kvp in _newShortcuts)
+ {
+ kvp.Key.Shortcut.SetValue(shortcuts, kvp.Value, null);
+ }
+
+ var s = new XmlSerializer(typeof(Shortcuts));
+ var w = new StreamWriter(saveFileDialog1.FileName);
+ s.Serialize(w, shortcuts);
+ w.Close();
+ }
+ catch (Exception exception)
+ {
+ MessageBox.Show(exception.Message);
+ SeLogger.Error(exception, "Failed to export shortcuts");
+ }
+ }
}
}
diff --git a/src/Forms/Settings.resx b/src/Forms/Settings.resx
index 9c12f4bd0..dac0a5333 100644
--- a/src/Forms/Settings.resx
+++ b/src/Forms/Settings.resx
@@ -129,4 +129,7 @@
664, 17
+
+ 867, 17
+
\ No newline at end of file