mirror of
https://github.com/Winded/StopMotionHelper.git
synced 2025-03-04 03:13:33 -05:00
Added ability to delete files in save window. Resolves #9
This commit is contained in:
parent
fd8bd245f7
commit
f5021adf4e
@ -111,6 +111,7 @@ local function Setup()
|
||||
outputSaveFiles:subscribe(menuStreams.Save.Input.FileList);
|
||||
menuStreams.Save.Output.File:subscribe(inputSaveFile);
|
||||
menuStreams.Save.Output.Save:subscribe(function() SMH.Data:_Call("Save") end);
|
||||
menuStreams.Save.Output.Delete:subscribe(function() SMH.Data:_Call("DeleteSave") end);
|
||||
menuStreams.Output.Save:subscribe(function() SMH.Data.ShowSave = true end);
|
||||
|
||||
menuStreams.Settings.Output.FreezeAll:subscribe(function(value) SMH.Data.FreezeAll = value end);
|
||||
|
@ -22,6 +22,9 @@ local function Create(parent)
|
||||
panel.Save = vgui.Create("DButton", panel);
|
||||
panel.Save:SetText("Save");
|
||||
|
||||
panel.Delete = vgui.Create("DButton", panel);
|
||||
panel.Delete:SetText("Delete");
|
||||
|
||||
local basePerformLayout = panel.PerformLayout;
|
||||
panel.PerformLayout = function(_, w, h)
|
||||
|
||||
@ -36,10 +39,13 @@ local function Create(parent)
|
||||
|
||||
panel.FileList:SetPos(5, 67);
|
||||
panel.FileList:SetSize(panel:GetWide() - 5 - 5, 150);
|
||||
|
||||
|
||||
panel.Save:SetPos(panel:GetWide() - 60 - 5, 219);
|
||||
panel.Save:SetSize(60, 20);
|
||||
|
||||
panel.Delete:SetPos(panel:GetWide() - 60 - 5 - 60 - 5, 219);
|
||||
panel.Delete:SetSize(60, 20);
|
||||
|
||||
end
|
||||
|
||||
local function addLines(item, lines)
|
||||
@ -54,14 +60,15 @@ local function Create(parent)
|
||||
fileListStream:map(function(files) return panel.FileList, files end)
|
||||
:subscribe(addLines);
|
||||
|
||||
local fileSelectStream = Rx.Subject.create();
|
||||
panel.FileList.OnRowSelected = function(self, rowID, row) fileSelectStream(row:GetValue(1)) end
|
||||
|
||||
local _, fileStream = RxUtils.bindDPanel(panel.FileName, nil, "OnValueChange");
|
||||
|
||||
local _, saveStream = RxUtils.bindDPanel(panel.Save, nil, "DoClick");
|
||||
local _, deleteStream = RxUtils.bindDPanel(panel.Delete, nil, "DoClick");
|
||||
|
||||
panel.FileList:Bind(SMH.Data, "SaveFiles", "ListView");
|
||||
panel.FileList:Bind(SMH.Data, "SaveFileName", "ListViewSelect");
|
||||
|
||||
panel.Save:Bind(SMH.Data, "Save", "Button");
|
||||
fileSelectStream:subscribe(fileStream);
|
||||
|
||||
return panel, {
|
||||
Input = {
|
||||
@ -70,6 +77,7 @@ local function Create(parent)
|
||||
Output = {
|
||||
File = fileStream,
|
||||
Save = saveStream,
|
||||
Delete = deleteStream,
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -295,6 +295,21 @@ local function QuickSave(container, key)
|
||||
|
||||
end
|
||||
|
||||
local function DeleteSave(container, key)
|
||||
|
||||
local fileName = container.SaveFileName;
|
||||
|
||||
if not fileName or fileName == "" then
|
||||
return;
|
||||
end
|
||||
|
||||
local path = SMH.SaveDir .. fileName .. ".txt";
|
||||
file.Delete(path);
|
||||
|
||||
RefreshSaveList(container);
|
||||
|
||||
end
|
||||
|
||||
local function RefreshGhosts(container, key)
|
||||
local player = container:_GetPlayer();
|
||||
SMH.RefreshGhosts(player);
|
||||
@ -316,6 +331,7 @@ function SMH.SetupData(player)
|
||||
defaults.Load = Load;
|
||||
defaults.Save = Save;
|
||||
defaults.QuickSave = QuickSave;
|
||||
defaults.DeleteSave = DeleteSave;
|
||||
|
||||
local data = SMH.BiValues.New(player, "SMHData", {IsPrivate = true, UseSync = true, AutoApply = true}, defaults);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user