mirror of
https://github.com/EpicMorg/UniversalValveToolbox.git
synced 2025-03-06 10:30:32 +03:00
- fix addon editor
- add restart after edit project/addon
This commit is contained in:
parent
f174fd4cb9
commit
bbe764fd5c
@ -5,6 +5,7 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using UniversalValveToolbox.Base;
|
using UniversalValveToolbox.Base;
|
||||||
using UniversalValveToolbox.Model.Dto;
|
using UniversalValveToolbox.Model.Dto;
|
||||||
|
using static System.Windows.Forms.ListView;
|
||||||
|
|
||||||
namespace UniversalValveToolbox.Model.ViewModel {
|
namespace UniversalValveToolbox.Model.ViewModel {
|
||||||
class FormAddonViewModel: DtoModel {
|
class FormAddonViewModel: DtoModel {
|
||||||
@ -12,7 +13,6 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
|||||||
private int selectAddonIndex = 0;
|
private int selectAddonIndex = 0;
|
||||||
|
|
||||||
private EngineDtoModel[] engines;
|
private EngineDtoModel[] engines;
|
||||||
private List<int> arraySelectAddonIndex = new List<int>();
|
|
||||||
|
|
||||||
public FormAddonViewModel(AddonDtoModel[] addons, EngineDtoModel[] engines) {
|
public FormAddonViewModel(AddonDtoModel[] addons, EngineDtoModel[] engines) {
|
||||||
this.addons = addons;
|
this.addons = addons;
|
||||||
@ -33,9 +33,6 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
|||||||
set {
|
set {
|
||||||
ForceUpdateField(value, ref selectAddonIndex);
|
ForceUpdateField(value, ref selectAddonIndex);
|
||||||
OnPropertyChanged(nameof(SelectAddon));
|
OnPropertyChanged(nameof(SelectAddon));
|
||||||
|
|
||||||
var indexs = SelectAddon.Engines;
|
|
||||||
ArraySelectAddonIndex = indexs;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,24 +44,5 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
|||||||
UpdateField(value, ref engines);
|
UpdateField(value, ref engines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] ArraySelectAddonIndex {
|
|
||||||
get => arraySelectAddonIndex.ToArray();
|
|
||||||
set {
|
|
||||||
ForceUpdateField(value.ToList(), ref arraySelectAddonIndex);
|
|
||||||
//OnPropertyChanged(nameof(ArraySelectEngine));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//public EngineDtoModel[] ArraySelectEngine {
|
|
||||||
// get {
|
|
||||||
// List<EngineDtoModel> result = new List<EngineDtoModel>();
|
|
||||||
// foreach (var index in arraySelectAddonIndex) {
|
|
||||||
// result.Add(engines[index]);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return result.ToArray();
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
27
src/UniversalValveToolbox/UI/FormAddons.Designer.cs
generated
27
src/UniversalValveToolbox/UI/FormAddons.Designer.cs
generated
@ -47,12 +47,13 @@
|
|||||||
this.comboBoxCategory = new System.Windows.Forms.ComboBox();
|
this.comboBoxCategory = new System.Windows.Forms.ComboBox();
|
||||||
this.labelCategory = new System.Windows.Forms.Label();
|
this.labelCategory = new System.Windows.Forms.Label();
|
||||||
this.buttonApply = new System.Windows.Forms.Button();
|
this.buttonApply = new System.Windows.Forms.Button();
|
||||||
this.engineListView = new System.Windows.Forms.ListView();
|
this.engineCheckedListBox = new System.Windows.Forms.CheckedListBox();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// buttonCancel
|
// buttonCancel
|
||||||
//
|
//
|
||||||
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.buttonCancel.Location = new System.Drawing.Point(327, 382);
|
this.buttonCancel.Location = new System.Drawing.Point(327, 382);
|
||||||
this.buttonCancel.Name = "buttonCancel";
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
@ -64,6 +65,7 @@
|
|||||||
// buttonOK
|
// buttonOK
|
||||||
//
|
//
|
||||||
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
this.buttonOK.Location = new System.Drawing.Point(246, 382);
|
this.buttonOK.Location = new System.Drawing.Point(246, 382);
|
||||||
this.buttonOK.Name = "buttonOK";
|
this.buttonOK.Name = "buttonOK";
|
||||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
@ -228,26 +230,21 @@
|
|||||||
this.buttonApply.UseVisualStyleBackColor = true;
|
this.buttonApply.UseVisualStyleBackColor = true;
|
||||||
this.buttonApply.Click += new System.EventHandler(this.buttonApply_Click);
|
this.buttonApply.Click += new System.EventHandler(this.buttonApply_Click);
|
||||||
//
|
//
|
||||||
// engineListView
|
// engineCheckedListBox
|
||||||
//
|
//
|
||||||
this.engineListView.CheckBoxes = true;
|
this.engineCheckedListBox.CheckOnClick = true;
|
||||||
this.engineListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
this.engineCheckedListBox.FormattingEnabled = true;
|
||||||
this.engineListView.HideSelection = false;
|
this.engineCheckedListBox.Location = new System.Drawing.Point(15, 182);
|
||||||
this.engineListView.Location = new System.Drawing.Point(15, 182);
|
this.engineCheckedListBox.Name = "engineCheckedListBox";
|
||||||
this.engineListView.Name = "engineListView";
|
this.engineCheckedListBox.Size = new System.Drawing.Size(387, 169);
|
||||||
this.engineListView.Size = new System.Drawing.Size(387, 188);
|
this.engineCheckedListBox.TabIndex = 28;
|
||||||
this.engineListView.TabIndex = 28;
|
|
||||||
this.engineListView.UseCompatibleStateImageBehavior = false;
|
|
||||||
this.engineListView.View = System.Windows.Forms.View.List;
|
|
||||||
this.engineListView.SelectedIndexChanged += new System.EventHandler(this.engineListView_SelectedIndexChanged);
|
|
||||||
this.engineListView.ItemChecked += EngineListView_ItemChecked;
|
|
||||||
//
|
//
|
||||||
// FormAddons
|
// FormAddons
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(495, 417);
|
this.ClientSize = new System.Drawing.Size(495, 417);
|
||||||
this.Controls.Add(this.engineListView);
|
this.Controls.Add(this.engineCheckedListBox);
|
||||||
this.Controls.Add(this.buttonApply);
|
this.Controls.Add(this.buttonApply);
|
||||||
this.Controls.Add(this.labelCategory);
|
this.Controls.Add(this.labelCategory);
|
||||||
this.Controls.Add(this.comboBoxCategory);
|
this.Controls.Add(this.comboBoxCategory);
|
||||||
@ -299,6 +296,6 @@
|
|||||||
private System.Windows.Forms.ComboBox comboBoxCategory;
|
private System.Windows.Forms.ComboBox comboBoxCategory;
|
||||||
private System.Windows.Forms.Label labelCategory;
|
private System.Windows.Forms.Label labelCategory;
|
||||||
private System.Windows.Forms.Button buttonApply;
|
private System.Windows.Forms.Button buttonApply;
|
||||||
private System.Windows.Forms.ListView engineListView;
|
private System.Windows.Forms.CheckedListBox engineCheckedListBox;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,11 +10,13 @@ using UniversalValveToolbox.Utils;
|
|||||||
|
|
||||||
namespace UniversalValveToolbox {
|
namespace UniversalValveToolbox {
|
||||||
public partial class FormAddons : Form {
|
public partial class FormAddons : Form {
|
||||||
|
private bool needRestart;
|
||||||
|
private bool isEnableListBoxCheckListener = false;
|
||||||
|
|
||||||
private DataProvider dataProvider = new DataProvider();
|
private DataProvider dataProvider = new DataProvider();
|
||||||
|
|
||||||
private FormAddonViewModel model;
|
private FormAddonViewModel model;
|
||||||
|
|
||||||
private AddonDtoModel[] arrayAddon;
|
|
||||||
|
|
||||||
public FormAddons() {
|
public FormAddons() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -22,7 +24,7 @@ namespace UniversalValveToolbox {
|
|||||||
model = new FormAddonViewModel(dataProvider.Addons, dataProvider.Engines);
|
model = new FormAddonViewModel(dataProvider.Addons, dataProvider.Engines);
|
||||||
|
|
||||||
UpdateAddonsComboBox();
|
UpdateAddonsComboBox();
|
||||||
InitEnginesListView();
|
UpdateEngineCheckedListView();
|
||||||
|
|
||||||
comboBox_Addon.Bind(a => a.SelectedIndex, model, a => a.SelectAddonIndex);
|
comboBox_Addon.Bind(a => a.SelectedIndex, model, a => a.SelectAddonIndex);
|
||||||
|
|
||||||
@ -31,38 +33,47 @@ namespace UniversalValveToolbox {
|
|||||||
textBoxArgs.Bind(a => a.Text, model, a => a.SelectAddon.Args);
|
textBoxArgs.Bind(a => a.Text, model, a => a.SelectAddon.Args);
|
||||||
|
|
||||||
model.PropertyChanged += Model_PropertyChanged;
|
model.PropertyChanged += Model_PropertyChanged;
|
||||||
|
|
||||||
|
this.engineCheckedListBox.ItemCheck += EngineCheckedListBox_ItemCheck;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EngineCheckedListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
|
||||||
|
if (isEnableListBoxCheckListener) {
|
||||||
|
List<EngineDtoModel> checkedItems = new List<EngineDtoModel>();
|
||||||
|
foreach (var item in engineCheckedListBox.CheckedItems)
|
||||||
|
checkedItems.Add((EngineDtoModel)item);
|
||||||
|
|
||||||
|
if (e.NewValue == CheckState.Checked)
|
||||||
|
checkedItems.Add((EngineDtoModel)engineCheckedListBox.Items[e.Index]);
|
||||||
|
else
|
||||||
|
checkedItems.Remove((EngineDtoModel)engineCheckedListBox.Items[e.Index]);
|
||||||
|
|
||||||
|
|
||||||
|
model.SelectAddon.Engines = checkedItems.Select(engine => engine.Appid).ToArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Model_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {
|
private void Model_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {
|
||||||
UpdateEnginesListView();
|
if (e.PropertyName == nameof(model.SelectAddon)) {
|
||||||
}
|
UpdateEngineCheckedListView();
|
||||||
|
|
||||||
|
|
||||||
private void EngineListView_ItemChecked(object sender, System.Windows.Forms.ItemCheckedEventArgs e) {
|
|
||||||
var listCheckedIndex = new List<int>();
|
|
||||||
|
|
||||||
if (engineListView.Items == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (ListViewItem item in engineListView.Items) {
|
|
||||||
if (item?.Checked ?? false) {
|
|
||||||
listCheckedIndex.Add(item.Index);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
model.ArraySelectAddonIndex = listCheckedIndex.ToArray();
|
private void UpdateEngineCheckedListView() {
|
||||||
|
isEnableListBoxCheckListener = false;
|
||||||
|
|
||||||
|
engineCheckedListBox.Items.Clear();
|
||||||
|
engineCheckedListBox.Items.AddRange(model.Engines);
|
||||||
|
|
||||||
|
for (var i = 0; i < model.Engines.Length; i++) {
|
||||||
|
var engine = model.Engines[i];
|
||||||
|
|
||||||
|
if (model.SelectAddon.Engines.Contains(engine.Appid)) {
|
||||||
|
engineCheckedListBox.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isEnableListBoxCheckListener = true;
|
||||||
private void InitEnginesListView() {
|
|
||||||
var checkedEngineListItem = dataProvider.Engines.Select(engine => {
|
|
||||||
var item = new ListViewItem(engine.Name);
|
|
||||||
item.Checked = model.SelectAddon.Engines.Contains(engine.Appid);
|
|
||||||
return item;
|
|
||||||
}).ToArray();
|
|
||||||
|
|
||||||
engineListView.Items.Clear();
|
|
||||||
engineListView.Items.AddRange(checkedEngineListItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateAddonsComboBox() {
|
private void UpdateAddonsComboBox() {
|
||||||
@ -71,13 +82,6 @@ namespace UniversalValveToolbox {
|
|||||||
comboBox_Addon.SelectedIndex = 0;
|
comboBox_Addon.SelectedIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateEnginesListView() {
|
|
||||||
var indexs = model.ArraySelectAddonIndex;
|
|
||||||
|
|
||||||
for (var i = 0; i < model.Engines.Length; i++) {
|
|
||||||
engineListView.Items[i].Checked = indexs.Contains(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void buttonCancel_Click(object sender, EventArgs e) {
|
private void buttonCancel_Click(object sender, EventArgs e) {
|
||||||
Close();
|
Close();
|
||||||
@ -108,10 +112,6 @@ namespace UniversalValveToolbox {
|
|||||||
model.SelectAddonIndex = comboBox_Addon.SelectedIndex;
|
model.SelectAddonIndex = comboBox_Addon.SelectedIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void engineListView_SelectedIndexChanged(object sender, EventArgs e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Remove() {
|
private void Remove() {
|
||||||
var newAddonList = new List<AddonDtoModel>(model.Addons);
|
var newAddonList = new List<AddonDtoModel>(model.Addons);
|
||||||
newAddonList.RemoveAt(model.SelectAddonIndex);
|
newAddonList.RemoveAt(model.SelectAddonIndex);
|
||||||
@ -134,8 +134,6 @@ namespace UniversalValveToolbox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void Save() {
|
private void Save() {
|
||||||
|
|
||||||
|
|
||||||
JsonFileUtil.SaveValues(DataProvider.AddonsPath, "json", model.Addons.ToList());
|
JsonFileUtil.SaveValues(DataProvider.AddonsPath, "json", model.Addons.ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,6 +146,8 @@ namespace UniversalValveToolbox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void buttonApply_Click(object sender, EventArgs e) {
|
private void buttonApply_Click(object sender, EventArgs e) {
|
||||||
|
needRestart = true;
|
||||||
|
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,11 +311,15 @@ namespace UniversalValveToolbox {
|
|||||||
}
|
}
|
||||||
else if (selectItemText == Properties.translations.MenuItems.itmEditConfigurations) {
|
else if (selectItemText == Properties.translations.MenuItems.itmEditConfigurations) {
|
||||||
var frmProfiles = new FormProfiles();
|
var frmProfiles = new FormProfiles();
|
||||||
frmProfiles.ShowDialog();
|
if (frmProfiles.ShowDialog() == DialogResult.OK) {
|
||||||
|
Application.Restart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (selectItemText == Properties.translations.MenuItems.itmEditPlugins) {
|
else if (selectItemText == Properties.translations.MenuItems.itmEditPlugins) {
|
||||||
var frmPlugins = new FormAddons();
|
var frmPlugins = new FormAddons();
|
||||||
frmPlugins.ShowDialog();
|
if (frmPlugins.ShowDialog() == DialogResult.OK) {
|
||||||
|
Application.Restart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (selectItemText == Properties.translations.MenuItems.itmAbout) {
|
else if (selectItemText == Properties.translations.MenuItems.itmAbout) {
|
||||||
var frmAbout = new FormAbout();
|
var frmAbout = new FormAbout();
|
||||||
|
@ -60,6 +60,7 @@ namespace UniversalValveToolbox {
|
|||||||
// buttonOK
|
// buttonOK
|
||||||
//
|
//
|
||||||
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
this.buttonOK.Location = new System.Drawing.Point(251, 225);
|
this.buttonOK.Location = new System.Drawing.Point(251, 225);
|
||||||
this.buttonOK.Name = "buttonOK";
|
this.buttonOK.Name = "buttonOK";
|
||||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
@ -71,6 +72,7 @@ namespace UniversalValveToolbox {
|
|||||||
// buttonCancel
|
// buttonCancel
|
||||||
//
|
//
|
||||||
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.buttonCancel.Location = new System.Drawing.Point(332, 225);
|
this.buttonCancel.Location = new System.Drawing.Point(332, 225);
|
||||||
this.buttonCancel.Name = "buttonCancel";
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
@ -10,6 +10,8 @@ using UniversalValveToolbox.Utils;
|
|||||||
|
|
||||||
namespace UniversalValveToolbox {
|
namespace UniversalValveToolbox {
|
||||||
public partial class FormProfiles : Form {
|
public partial class FormProfiles : Form {
|
||||||
|
private bool needRestart = false;
|
||||||
|
|
||||||
private DataProvider dataProvider = new DataProvider();
|
private DataProvider dataProvider = new DataProvider();
|
||||||
|
|
||||||
private FormProjectViewModel model;
|
private FormProjectViewModel model;
|
||||||
@ -54,6 +56,10 @@ namespace UniversalValveToolbox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void buttonCancel_Click(object sender, EventArgs e) {
|
private void buttonCancel_Click(object sender, EventArgs e) {
|
||||||
|
if (needRestart) {
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +121,8 @@ namespace UniversalValveToolbox {
|
|||||||
|
|
||||||
private void buttonApply_Click(object sender, EventArgs e) {
|
private void buttonApply_Click(object sender, EventArgs e) {
|
||||||
Save();
|
Save();
|
||||||
|
|
||||||
|
needRestart = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonNew_Click(object sender, EventArgs e) {
|
private void buttonNew_Click(object sender, EventArgs e) {
|
||||||
|
@ -14,17 +14,6 @@ namespace UniversalValveToolbox {
|
|||||||
comboBoxLang.Bind(a => a.SelectedIndex, settings, a => a.SelectedLanguageIndex);
|
comboBoxLang.Bind(a => a.SelectedIndex, settings, a => a.SelectedLanguageIndex);
|
||||||
|
|
||||||
comboBoxTheme.SelectedIndex = 0;
|
comboBoxTheme.SelectedIndex = 0;
|
||||||
|
|
||||||
|
|
||||||
//comboBoxLang.Bind(a => a.DataSource, settings, a => a.Languages);
|
|
||||||
//comboBoxLang.SelectedIndex = settings.SelectedLanguageIndex;
|
|
||||||
|
|
||||||
|
|
||||||
//this.Bind(a => a.Text, settings, a => a.Language);
|
|
||||||
|
|
||||||
//^
|
|
||||||
//this.DataBindings.Add(new Binding(nameof(this.Text), settings, nameof(settings.Language), false, DataSourceUpdateMode.OnPropertyChanged));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonCancel_Click(object sender, EventArgs e) {
|
private void buttonCancel_Click(object sender, EventArgs e) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user