can remove from music order viewer
This commit is contained in:
parent
b6dc9131b7
commit
5cdbdfc032
16
Controls/MusicOrderViewer.Designer.cs
generated
16
Controls/MusicOrderViewer.Designer.cs
generated
@ -35,6 +35,7 @@
|
|||||||
this.CutButton = new System.Windows.Forms.Button();
|
this.CutButton = new System.Windows.Forms.Button();
|
||||||
this.PageLabel = new System.Windows.Forms.Label();
|
this.PageLabel = new System.Windows.Forms.Label();
|
||||||
this.LeftButton = new System.Windows.Forms.Button();
|
this.LeftButton = new System.Windows.Forms.Button();
|
||||||
|
this.RemoveButton = new System.Windows.Forms.Button();
|
||||||
this.ControlsPanel.SuspendLayout();
|
this.ControlsPanel.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -64,6 +65,7 @@
|
|||||||
//
|
//
|
||||||
// ControlsPanel
|
// ControlsPanel
|
||||||
//
|
//
|
||||||
|
this.ControlsPanel.Controls.Add(this.RemoveButton);
|
||||||
this.ControlsPanel.Controls.Add(this.PasteButton);
|
this.ControlsPanel.Controls.Add(this.PasteButton);
|
||||||
this.ControlsPanel.Controls.Add(this.CutButton);
|
this.ControlsPanel.Controls.Add(this.CutButton);
|
||||||
this.ControlsPanel.Controls.Add(this.PageLabel);
|
this.ControlsPanel.Controls.Add(this.PageLabel);
|
||||||
@ -120,6 +122,19 @@
|
|||||||
this.LeftButton.UseVisualStyleBackColor = true;
|
this.LeftButton.UseVisualStyleBackColor = true;
|
||||||
this.LeftButton.Click += new System.EventHandler(this.LeftButton_Click);
|
this.LeftButton.Click += new System.EventHandler(this.LeftButton_Click);
|
||||||
//
|
//
|
||||||
|
// RemoveButton
|
||||||
|
//
|
||||||
|
this.RemoveButton.BackgroundImage = global::TaikoSoundEditor.Properties.Resources.ic_remove_gs;
|
||||||
|
this.RemoveButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||||
|
this.RemoveButton.FlatAppearance.BorderSize = 0;
|
||||||
|
this.RemoveButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.RemoveButton.Location = new System.Drawing.Point(63, 3);
|
||||||
|
this.RemoveButton.Name = "RemoveButton";
|
||||||
|
this.RemoveButton.Size = new System.Drawing.Size(24, 24);
|
||||||
|
this.RemoveButton.TabIndex = 3;
|
||||||
|
this.RemoveButton.UseVisualStyleBackColor = true;
|
||||||
|
this.RemoveButton.Click += new System.EventHandler(this.RemoveButton_Click);
|
||||||
|
//
|
||||||
// MusicOrderViewer
|
// MusicOrderViewer
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
@ -145,5 +160,6 @@
|
|||||||
private Label PageLabel;
|
private Label PageLabel;
|
||||||
private Button CutButton;
|
private Button CutButton;
|
||||||
private Button PasteButton;
|
private Button PasteButton;
|
||||||
|
private Button RemoveButton;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using TaikoSoundEditor.Data;
|
using TaikoSoundEditor.Data;
|
||||||
|
using TaikoSoundEditor.Extensions;
|
||||||
using TaikoSoundEditor.Properties;
|
using TaikoSoundEditor.Properties;
|
||||||
|
|
||||||
namespace TaikoSoundEditor.Controls
|
namespace TaikoSoundEditor.Controls
|
||||||
@ -33,8 +34,9 @@ namespace TaikoSoundEditor.Controls
|
|||||||
CutSelection.RemoveWhere(c => c.MusicOrder == mo);
|
CutSelection.RemoveWhere(c => c.MusicOrder == mo);
|
||||||
|
|
||||||
PasteActive = CutSelection.Count > 0;
|
PasteActive = CutSelection.Count > 0;
|
||||||
CutActive = Selection.Count > 0;
|
CutActive = RemoveActive = Selection.Count > 0;
|
||||||
if (!PasteActive) PasteMode = false;
|
if (!PasteActive) PasteMode = false;
|
||||||
|
CurrentPage = CurrentPage;
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +46,7 @@ namespace TaikoSoundEditor.Controls
|
|||||||
get => _CurrentPage;
|
get => _CurrentPage;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_CurrentPage = value;
|
_CurrentPage = value.Clamp(0, PagesCount - 1);
|
||||||
PageLabel.Text = $"Page {_CurrentPage + 1} of {PagesCount}";
|
PageLabel.Text = $"Page {_CurrentPage + 1} of {PagesCount}";
|
||||||
MusicOrdersPanel.Invalidate();
|
MusicOrdersPanel.Invalidate();
|
||||||
|
|
||||||
@ -247,7 +249,7 @@ namespace TaikoSoundEditor.Controls
|
|||||||
CutSelection.Clear();
|
CutSelection.Clear();
|
||||||
PasteMode = false;
|
PasteMode = false;
|
||||||
PasteActive = false;
|
PasteActive = false;
|
||||||
CutActive = false;
|
CutActive = RemoveActive = false;
|
||||||
MusicOrdersPanel.Invalidate();
|
MusicOrdersPanel.Invalidate();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -284,7 +286,7 @@ namespace TaikoSoundEditor.Controls
|
|||||||
MusicOrdersPanel.Invalidate();
|
MusicOrdersPanel.Invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
CutActive = Selection.Count > 0;
|
CutActive = RemoveActive = Selection.Count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _CutActive = false;
|
private bool _CutActive = false;
|
||||||
@ -311,6 +313,19 @@ namespace TaikoSoundEditor.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool _RemoveActive=false;
|
||||||
|
|
||||||
|
public bool RemoveActive
|
||||||
|
{
|
||||||
|
get => _RemoveActive;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_RemoveActive = value;
|
||||||
|
RemoveButton.BackgroundImage = RemoveActive ? Resources.ic_remove : Resources.ic_remove_gs;
|
||||||
|
RemoveButton.Enabled = RemoveActive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void CutButton_Click(object sender, EventArgs e)
|
private void CutButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
PasteMode = false;
|
PasteMode = false;
|
||||||
@ -329,7 +344,7 @@ namespace TaikoSoundEditor.Controls
|
|||||||
Selection.Clear();
|
Selection.Clear();
|
||||||
|
|
||||||
PasteActive = CutSelection.Count > 0;
|
PasteActive = CutSelection.Count > 0;
|
||||||
CutActive= Selection.Count > 0;
|
CutActive = RemoveActive = Selection.Count > 0;
|
||||||
|
|
||||||
MusicOrdersPanel.Invalidate();
|
MusicOrdersPanel.Invalidate();
|
||||||
}
|
}
|
||||||
@ -346,6 +361,7 @@ namespace TaikoSoundEditor.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void PasteButton_Click(object sender, EventArgs e)
|
private void PasteButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
PasteMode = !PasteMode;
|
PasteMode = !PasteMode;
|
||||||
@ -353,7 +369,37 @@ namespace TaikoSoundEditor.Controls
|
|||||||
foreach (var card in Selection)
|
foreach (var card in Selection)
|
||||||
card.IsSelected = false;
|
card.IsSelected = false;
|
||||||
Selection.Clear();
|
Selection.Clear();
|
||||||
|
CutActive = RemoveActive = false;
|
||||||
MusicOrdersPanel.Invalidate();
|
MusicOrdersPanel.Invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void RemoveButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var toRemove = Selection.ToList();
|
||||||
|
if (Selection.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var message = $"Are you sure you want to remove {toRemove.Count} song{(toRemove.Count>0?"s":"")}?";
|
||||||
|
|
||||||
|
if (MessageBox.Show(message, "Remove?", MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach(var card in Selection)
|
||||||
|
{
|
||||||
|
SongCards.Remove(card);
|
||||||
|
CutSelection.Remove(card);
|
||||||
|
SongRemoved?.Invoke(this, card.MusicOrder);
|
||||||
|
}
|
||||||
|
Selection.Clear();
|
||||||
|
|
||||||
|
CutActive = RemoveActive = false;
|
||||||
|
PasteActive = CutSelection.Count > 0;
|
||||||
|
if (!PasteActive) PasteMode = false;
|
||||||
|
CurrentPage = CurrentPage;
|
||||||
|
MusicOrdersPanel.Invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public delegate void OnSongRemoved(MusicOrderViewer sender, MusicOrder mo);
|
||||||
|
public event OnSongRemoved SongRemoved;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
MainForm.Designer.cs
generated
5
MainForm.Designer.cs
generated
@ -803,13 +803,18 @@
|
|||||||
// MusicOrderViewer
|
// MusicOrderViewer
|
||||||
//
|
//
|
||||||
this.MusicOrderViewer.CurrentPage = 0;
|
this.MusicOrderViewer.CurrentPage = 0;
|
||||||
|
this.MusicOrderViewer.CutActive = false;
|
||||||
this.MusicOrderViewer.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.MusicOrderViewer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.MusicOrderViewer.ItemsPerCol = 5;
|
this.MusicOrderViewer.ItemsPerCol = 5;
|
||||||
this.MusicOrderViewer.ItemsPerRow = 4;
|
this.MusicOrderViewer.ItemsPerRow = 4;
|
||||||
this.MusicOrderViewer.Location = new System.Drawing.Point(3, 3);
|
this.MusicOrderViewer.Location = new System.Drawing.Point(3, 3);
|
||||||
this.MusicOrderViewer.Name = "MusicOrderViewer";
|
this.MusicOrderViewer.Name = "MusicOrderViewer";
|
||||||
|
this.MusicOrderViewer.PasteActive = false;
|
||||||
|
this.MusicOrderViewer.PasteMode = false;
|
||||||
|
this.MusicOrderViewer.RemoveActive = false;
|
||||||
this.MusicOrderViewer.Size = new System.Drawing.Size(515, 290);
|
this.MusicOrderViewer.Size = new System.Drawing.Size(515, 290);
|
||||||
this.MusicOrderViewer.TabIndex = 0;
|
this.MusicOrderViewer.TabIndex = 0;
|
||||||
|
this.MusicOrderViewer.SongRemoved += new TaikoSoundEditor.Controls.MusicOrderViewer.OnSongRemoved(this.MusicOrderViewer_SongRemoved);
|
||||||
//
|
//
|
||||||
// RemoveSongButton
|
// RemoveSongButton
|
||||||
//
|
//
|
||||||
|
118
MainForm.cs
118
MainForm.cs
@ -123,6 +123,57 @@ namespace TaikoSoundEditor
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private void RemoveNewSong(NewSongData ns)
|
||||||
|
{
|
||||||
|
AddedMusic.Remove(ns);
|
||||||
|
Logger.Info("Refreshing list");
|
||||||
|
AddedMusicBinding.ResetBindings(false);
|
||||||
|
MusicOrderViewer.RemoveSong(ns.MusicOrder);
|
||||||
|
|
||||||
|
Logger.Info("Removing from wordlist & music_attributes");
|
||||||
|
WordList.Items.Remove(ns.Word);
|
||||||
|
WordList.Items.Remove(ns.WordDetail);
|
||||||
|
WordList.Items.Remove(ns.WordSub);
|
||||||
|
MusicAttributes.Items.Remove(ns.MusicAttribute);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RemoveExistingSong(MusicInfo mi)
|
||||||
|
{
|
||||||
|
var ma = MusicAttributes.GetByUniqueId(mi.UniqueId);
|
||||||
|
var mo = MusicOrders.GetByUniqueId(mi.UniqueId);
|
||||||
|
var w = WordList.GetBySong(mi.Id);
|
||||||
|
var ws = WordList.GetBySongSub(mi.Id);
|
||||||
|
var wd = WordList.GetBySongDetail(mi.Id);
|
||||||
|
|
||||||
|
Logger.Info("Removing music info");
|
||||||
|
MusicInfos.Items.RemoveAll(x => x.UniqueId == mi.UniqueId);
|
||||||
|
Logger.Info("Removing music attribute");
|
||||||
|
MusicAttributes.Items.Remove(ma);
|
||||||
|
Logger.Info("Removing music order");
|
||||||
|
MusicOrders.Items.Remove(mo);
|
||||||
|
Logger.Info("Removing word");
|
||||||
|
WordList.Items.Remove(w);
|
||||||
|
Logger.Info("Removing word sub");
|
||||||
|
WordList.Items.Remove(ws);
|
||||||
|
Logger.Info("Removing word detail");
|
||||||
|
WordList.Items.Remove(wd);
|
||||||
|
|
||||||
|
Logger.Info("Refreshing list");
|
||||||
|
LoadedMusicBinding.DataSource = MusicInfos.Items.Where(mi => mi.UniqueId != 0).ToList();
|
||||||
|
LoadedMusicBinding.ResetBindings(false);
|
||||||
|
|
||||||
|
var sel = LoadedMusicBox.SelectedIndex;
|
||||||
|
|
||||||
|
if (sel >= MusicInfos.Items.Count)
|
||||||
|
sel = MusicInfos.Items.Count - 1;
|
||||||
|
|
||||||
|
LoadedMusicBox.SelectedItem = null;
|
||||||
|
LoadedMusicBox.SelectedIndex = sel;
|
||||||
|
|
||||||
|
Logger.Info("Removing from music orders");
|
||||||
|
MusicOrderViewer.RemoveSong(mo);
|
||||||
|
}
|
||||||
|
|
||||||
private void RemoveSongButton_Click(object sender, EventArgs e) => ExceptionGuard.Run(() =>
|
private void RemoveSongButton_Click(object sender, EventArgs e) => ExceptionGuard.Run(() =>
|
||||||
{
|
{
|
||||||
Logger.Info("Clicked remove song");
|
Logger.Info("Clicked remove song");
|
||||||
@ -130,17 +181,7 @@ namespace TaikoSoundEditor
|
|||||||
{
|
{
|
||||||
Logger.Info("Removing newly added song");
|
Logger.Info("Removing newly added song");
|
||||||
var ns = NewSoundsBox.SelectedItem as NewSongData;
|
var ns = NewSoundsBox.SelectedItem as NewSongData;
|
||||||
AddedMusic.Remove(ns);
|
RemoveNewSong(ns);
|
||||||
Logger.Info("Refreshing list");
|
|
||||||
AddedMusicBinding.ResetBindings(false);
|
|
||||||
MusicOrderViewer.RemoveSong(ns.MusicOrder);
|
|
||||||
|
|
||||||
Logger.Info("Removing from wordlist & music_attributes");
|
|
||||||
WordList.Items.Remove(ns.Word);
|
|
||||||
WordList.Items.Remove(ns.WordDetail);
|
|
||||||
WordList.Items.Remove(ns.WordSub);
|
|
||||||
MusicAttributes.Items.Remove(ns.MusicAttribute);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,40 +189,7 @@ namespace TaikoSoundEditor
|
|||||||
{
|
{
|
||||||
Logger.Info("Removing existing song");
|
Logger.Info("Removing existing song");
|
||||||
var mi = LoadedMusicBox.SelectedItem as MusicInfo;
|
var mi = LoadedMusicBox.SelectedItem as MusicInfo;
|
||||||
var ma = MusicAttributes.GetByUniqueId(mi.UniqueId);
|
RemoveExistingSong(mi);
|
||||||
var mo = MusicOrders.GetByUniqueId(mi.UniqueId);
|
|
||||||
var w = WordList.GetBySong(mi.Id);
|
|
||||||
var ws = WordList.GetBySongSub(mi.Id);
|
|
||||||
var wd = WordList.GetBySongDetail(mi.Id);
|
|
||||||
|
|
||||||
Logger.Info("Removing music info");
|
|
||||||
MusicInfos.Items.RemoveAll(x => x.UniqueId == mi.UniqueId);
|
|
||||||
Logger.Info("Removing music attribute");
|
|
||||||
MusicAttributes.Items.Remove(ma);
|
|
||||||
Logger.Info("Removing music order");
|
|
||||||
MusicOrders.Items.Remove(mo);
|
|
||||||
Logger.Info("Removing word");
|
|
||||||
WordList.Items.Remove(w);
|
|
||||||
Logger.Info("Removing word sub");
|
|
||||||
WordList.Items.Remove(ws);
|
|
||||||
Logger.Info("Removing word detail");
|
|
||||||
WordList.Items.Remove(wd);
|
|
||||||
|
|
||||||
Logger.Info("Refreshing list");
|
|
||||||
LoadedMusicBinding.DataSource = MusicInfos.Items.Where(mi => mi.UniqueId != 0).ToList();
|
|
||||||
LoadedMusicBinding.ResetBindings(false);
|
|
||||||
|
|
||||||
var sel = LoadedMusicBox.SelectedIndex;
|
|
||||||
|
|
||||||
if (sel >= MusicInfos.Items.Count)
|
|
||||||
sel = MusicInfos.Items.Count - 1;
|
|
||||||
|
|
||||||
LoadedMusicBox.SelectedItem = null;
|
|
||||||
LoadedMusicBox.SelectedIndex = sel;
|
|
||||||
|
|
||||||
Logger.Info("Removing from music orders");
|
|
||||||
MusicOrderViewer.RemoveSong(mo);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -255,5 +263,25 @@ namespace TaikoSoundEditor
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
private void MusicOrderViewer_SongRemoved(Controls.MusicOrderViewer sender, MusicOrder mo) => ExceptionGuard.Run(() =>
|
||||||
|
{
|
||||||
|
var uniqId = mo.UniqueId;
|
||||||
|
var mi = MusicInfos.Items.Where(x => x.UniqueId == uniqId).FirstOrDefault();
|
||||||
|
|
||||||
|
if (mi != null)
|
||||||
|
{
|
||||||
|
RemoveExistingSong(mi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var ns = AddedMusic.Where(x => x.UniqueId == uniqId).FirstOrDefault();
|
||||||
|
if (ns != null)
|
||||||
|
{
|
||||||
|
RemoveNewSong(ns);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new InvalidOperationException("Nothing to remove.");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
20
Properties/Resources.Designer.cs
generated
20
Properties/Resources.Designer.cs
generated
@ -100,6 +100,26 @@ namespace TaikoSoundEditor.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ic_remove {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ic_remove", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ic_remove_gs {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ic_remove_gs", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Byte[].
|
/// Looks up a localized resource of type System.Byte[].
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -130,6 +130,12 @@
|
|||||||
<data name="ic_paste_gs" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ic_paste_gs" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ic_paste_gs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\ic_paste_gs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ic_remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ic_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ic_remove_gs" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ic_remove_gs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="song_ABCDEF_nus3bank" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="song_ABCDEF_nus3bank" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\song_ABCDEF_nus3bank.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>..\Resources\song_ABCDEF_nus3bank.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
BIN
Resources/ic_remove.png
Normal file
BIN
Resources/ic_remove.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 562 B |
BIN
Resources/ic_remove_gs.png
Normal file
BIN
Resources/ic_remove_gs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 554 B |
Loading…
x
Reference in New Issue
Block a user