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 UniversalValveToolbox.Base;
|
||||
using UniversalValveToolbox.Model.Dto;
|
||||
using static System.Windows.Forms.ListView;
|
||||
|
||||
namespace UniversalValveToolbox.Model.ViewModel {
|
||||
class FormAddonViewModel: DtoModel {
|
||||
@ -12,7 +13,6 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
||||
private int selectAddonIndex = 0;
|
||||
|
||||
private EngineDtoModel[] engines;
|
||||
private List<int> arraySelectAddonIndex = new List<int>();
|
||||
|
||||
public FormAddonViewModel(AddonDtoModel[] addons, EngineDtoModel[] engines) {
|
||||
this.addons = addons;
|
||||
@ -33,9 +33,6 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
||||
set {
|
||||
ForceUpdateField(value, ref selectAddonIndex);
|
||||
OnPropertyChanged(nameof(SelectAddon));
|
||||
|
||||
var indexs = SelectAddon.Engines;
|
||||
ArraySelectAddonIndex = indexs;
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,24 +44,5 @@ namespace UniversalValveToolbox.Model.ViewModel {
|
||||
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.labelCategory = new System.Windows.Forms.Label();
|
||||
this.buttonApply = new System.Windows.Forms.Button();
|
||||
this.engineListView = new System.Windows.Forms.ListView();
|
||||
this.engineCheckedListBox = new System.Windows.Forms.CheckedListBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
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.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
@ -64,6 +65,7 @@
|
||||
// buttonOK
|
||||
//
|
||||
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.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
@ -228,26 +230,21 @@
|
||||
this.buttonApply.UseVisualStyleBackColor = true;
|
||||
this.buttonApply.Click += new System.EventHandler(this.buttonApply_Click);
|
||||
//
|
||||
// engineListView
|
||||
// engineCheckedListBox
|
||||
//
|
||||
this.engineListView.CheckBoxes = true;
|
||||
this.engineListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.engineListView.HideSelection = false;
|
||||
this.engineListView.Location = new System.Drawing.Point(15, 182);
|
||||
this.engineListView.Name = "engineListView";
|
||||
this.engineListView.Size = new System.Drawing.Size(387, 188);
|
||||
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;
|
||||
this.engineCheckedListBox.CheckOnClick = true;
|
||||
this.engineCheckedListBox.FormattingEnabled = true;
|
||||
this.engineCheckedListBox.Location = new System.Drawing.Point(15, 182);
|
||||
this.engineCheckedListBox.Name = "engineCheckedListBox";
|
||||
this.engineCheckedListBox.Size = new System.Drawing.Size(387, 169);
|
||||
this.engineCheckedListBox.TabIndex = 28;
|
||||
//
|
||||
// FormAddons
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
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.labelCategory);
|
||||
this.Controls.Add(this.comboBoxCategory);
|
||||
@ -299,6 +296,6 @@
|
||||
private System.Windows.Forms.ComboBox comboBoxCategory;
|
||||
private System.Windows.Forms.Label labelCategory;
|
||||
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 {
|
||||
public partial class FormAddons : Form {
|
||||
private bool needRestart;
|
||||
private bool isEnableListBoxCheckListener = false;
|
||||
|
||||
private DataProvider dataProvider = new DataProvider();
|
||||
|
||||
private FormAddonViewModel model;
|
||||
|
||||
private AddonDtoModel[] arrayAddon;
|
||||
|
||||
public FormAddons() {
|
||||
InitializeComponent();
|
||||
@ -22,7 +24,7 @@ namespace UniversalValveToolbox {
|
||||
model = new FormAddonViewModel(dataProvider.Addons, dataProvider.Engines);
|
||||
|
||||
UpdateAddonsComboBox();
|
||||
InitEnginesListView();
|
||||
UpdateEngineCheckedListView();
|
||||
|
||||
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);
|
||||
|
||||
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) {
|
||||
UpdateEnginesListView();
|
||||
if (e.PropertyName == nameof(model.SelectAddon)) {
|
||||
UpdateEngineCheckedListView();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateEngineCheckedListView() {
|
||||
isEnableListBoxCheckListener = false;
|
||||
|
||||
private void EngineListView_ItemChecked(object sender, System.Windows.Forms.ItemCheckedEventArgs e) {
|
||||
var listCheckedIndex = new List<int>();
|
||||
engineCheckedListBox.Items.Clear();
|
||||
engineCheckedListBox.Items.AddRange(model.Engines);
|
||||
|
||||
if (engineListView.Items == null)
|
||||
return;
|
||||
for (var i = 0; i < model.Engines.Length; i++) {
|
||||
var engine = model.Engines[i];
|
||||
|
||||
foreach (ListViewItem item in engineListView.Items) {
|
||||
if (item?.Checked ?? false) {
|
||||
listCheckedIndex.Add(item.Index);
|
||||
if (model.SelectAddon.Engines.Contains(engine.Appid)) {
|
||||
engineCheckedListBox.SetItemChecked(i, true);
|
||||
}
|
||||
}
|
||||
|
||||
model.ArraySelectAddonIndex = listCheckedIndex.ToArray();
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
||||
isEnableListBoxCheckListener = true;
|
||||
}
|
||||
|
||||
private void UpdateAddonsComboBox() {
|
||||
@ -71,13 +82,6 @@ namespace UniversalValveToolbox {
|
||||
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) {
|
||||
Close();
|
||||
@ -108,10 +112,6 @@ namespace UniversalValveToolbox {
|
||||
model.SelectAddonIndex = comboBox_Addon.SelectedIndex;
|
||||
}
|
||||
|
||||
private void engineListView_SelectedIndexChanged(object sender, EventArgs e) {
|
||||
|
||||
}
|
||||
|
||||
private void Remove() {
|
||||
var newAddonList = new List<AddonDtoModel>(model.Addons);
|
||||
newAddonList.RemoveAt(model.SelectAddonIndex);
|
||||
@ -134,8 +134,6 @@ namespace UniversalValveToolbox {
|
||||
}
|
||||
|
||||
private void Save() {
|
||||
|
||||
|
||||
JsonFileUtil.SaveValues(DataProvider.AddonsPath, "json", model.Addons.ToList());
|
||||
}
|
||||
|
||||
@ -148,6 +146,8 @@ namespace UniversalValveToolbox {
|
||||
}
|
||||
|
||||
private void buttonApply_Click(object sender, EventArgs e) {
|
||||
needRestart = true;
|
||||
|
||||
Save();
|
||||
}
|
||||
|
||||
|
@ -311,11 +311,15 @@ namespace UniversalValveToolbox {
|
||||
}
|
||||
else if (selectItemText == Properties.translations.MenuItems.itmEditConfigurations) {
|
||||
var frmProfiles = new FormProfiles();
|
||||
frmProfiles.ShowDialog();
|
||||
if (frmProfiles.ShowDialog() == DialogResult.OK) {
|
||||
Application.Restart();
|
||||
}
|
||||
}
|
||||
else if (selectItemText == Properties.translations.MenuItems.itmEditPlugins) {
|
||||
var frmPlugins = new FormAddons();
|
||||
frmPlugins.ShowDialog();
|
||||
if (frmPlugins.ShowDialog() == DialogResult.OK) {
|
||||
Application.Restart();
|
||||
}
|
||||
}
|
||||
else if (selectItemText == Properties.translations.MenuItems.itmAbout) {
|
||||
var frmAbout = new FormAbout();
|
||||
|
@ -60,6 +60,7 @@ namespace UniversalValveToolbox {
|
||||
// buttonOK
|
||||
//
|
||||
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.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
@ -71,6 +72,7 @@ namespace UniversalValveToolbox {
|
||||
// buttonCancel
|
||||
//
|
||||
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.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
|
@ -10,6 +10,8 @@ using UniversalValveToolbox.Utils;
|
||||
|
||||
namespace UniversalValveToolbox {
|
||||
public partial class FormProfiles : Form {
|
||||
private bool needRestart = false;
|
||||
|
||||
private DataProvider dataProvider = new DataProvider();
|
||||
|
||||
private FormProjectViewModel model;
|
||||
@ -54,6 +56,10 @@ namespace UniversalValveToolbox {
|
||||
}
|
||||
|
||||
private void buttonCancel_Click(object sender, EventArgs e) {
|
||||
if (needRestart) {
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
Close();
|
||||
}
|
||||
|
||||
@ -115,6 +121,8 @@ namespace UniversalValveToolbox {
|
||||
|
||||
private void buttonApply_Click(object sender, EventArgs e) {
|
||||
Save();
|
||||
|
||||
needRestart = true;
|
||||
}
|
||||
|
||||
private void buttonNew_Click(object sender, EventArgs e) {
|
||||
|
@ -14,17 +14,6 @@ namespace UniversalValveToolbox {
|
||||
comboBoxLang.Bind(a => a.SelectedIndex, settings, a => a.SelectedLanguageIndex);
|
||||
|
||||
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user