Delete reloads preset if required.

This commit is contained in:
Robin Davies
2022-03-11 13:34:08 -05:00
parent 968203f93f
commit 7a6adf0f84
3 changed files with 17 additions and 6 deletions
+9 -3
View File
@@ -497,7 +497,7 @@ int64_t PiPedalModel::SaveCurrentPresetAs(int64_t clientId, const std::string &n
auto pedalboard = this->pedalBoard;
pedalboard.name(name);
int64_t result = storage.saveCurrentPresetAs(pedalboard, name, saveAfterInstanceId);
int64_t result = storage.SaveCurrentPresetAs(pedalboard, name, saveAfterInstanceId);
FirePresetsChanged(clientId);
return result;
}
@@ -594,10 +594,16 @@ int64_t PiPedalModel::DeleteBank(int64_t clientId, int64_t instanceId)
int64_t PiPedalModel::DeletePreset(int64_t clientId, int64_t instanceId)
{
std::lock_guard<std::recursive_mutex> guard{mutex};
int64_t oldSelection = storage.GetCurrentPresetId();
int64_t newSelection = storage.DeletePreset(instanceId);
this->FirePresetsChanged(clientId); // fire now.
return newSelection;
if (oldSelection != newSelection)
{
this->LoadPreset(
-1, // can't use cached version.
newSelection);
}
return newSelection;
}
bool PiPedalModel::RenamePreset(int64_t clientId, int64_t instanceId, const std::string &name)
{
+6 -1
View File
@@ -425,7 +425,7 @@ void Storage::SaveCurrentPreset(const PedalBoard &pedalBoard)
item.preset(pedalBoard);
SaveCurrentBank();
}
int64_t Storage::saveCurrentPresetAs(const PedalBoard &pedalBoard, const std::string &name, int64_t saveAfterInstanceId)
int64_t Storage::SaveCurrentPresetAs(const PedalBoard &pedalBoard, const std::string &name, int64_t saveAfterInstanceId)
{
PedalBoard newPedalBoard = pedalBoard;
newPedalBoard.name(name);
@@ -741,6 +741,11 @@ int64_t Storage::DeleteBank(int64_t bankId)
throw PiPedalStateException("Bank not found.");
}
int64_t Storage::GetCurrentPresetId() const
{
return this->currentBank.selectedPreset();
}
int64_t Storage::UploadPreset(const BankFile&bankFile,int64_t uploadAfter)
{
int64_t lastPreset = this->currentBank.selectedPreset();
+2 -2
View File
@@ -90,8 +90,8 @@ public:
void LoadBank(int64_t instanceId);
const PedalBoard& GetCurrentPreset();
void SaveCurrentPreset(const PedalBoard&pedalBoard);
int64_t saveCurrentPresetAs(const PedalBoard&pedalBoard, const std::string&namne,int64_t saveAfterInstanceId = -1);
int64_t SaveCurrentPresetAs(const PedalBoard&pedalBoard, const std::string&namne,int64_t saveAfterInstanceId = -1);
int64_t GetCurrentPresetId() const;
void GetPresetIndex(PresetIndex*pResult);
void SetPresetIndex(const PresetIndex &presetIndex);
PedalBoard GetPreset(int64_t instanceId) const;