Added ability to delete files in save window. Resolves #9

This commit is contained in:
Winded 2018-07-18 22:41:35 +03:00
parent fd8bd245f7
commit f5021adf4e
3 changed files with 30 additions and 5 deletions

View File

@ -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);

View File

@ -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,
}
};

View File

@ -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);