1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-08 00:44:48 -04:00

Web API: /sdrangel/preset (DELETE) implementation

This commit is contained in:
f4exb
2017-11-25 19:42:56 +01:00
parent 4a3901d688
commit 9fab034f14
10 changed files with 623 additions and 31 deletions
+32
View File
@@ -64,6 +64,7 @@
MESSAGE_CLASS_DEFINITION(MainWindow::MsgLoadPreset, Message)
MESSAGE_CLASS_DEFINITION(MainWindow::MsgSavePreset, Message)
MESSAGE_CLASS_DEFINITION(MainWindow::MsgDeletePreset, Message)
MainWindow *MainWindow::m_instance = 0;
@@ -674,6 +675,37 @@ bool MainWindow::handleMessage(const Message& cmd)
m_settings.save();
return true;
}
else if (MsgDeletePreset::match(cmd))
{
MsgDeletePreset& notif = (MsgDeletePreset&) cmd;
const Preset *presetToDelete = notif.getPreset();
// remove preset from tree
for (int ig = 0; ig < ui->presetTree->topLevelItemCount(); ig++)
{
QTreeWidgetItem *groupItem = ui->presetTree->topLevelItem(ig);
if (groupItem->text(0) == presetToDelete->getGroup())
{
for (int ip = 0; ip < groupItem->childCount(); ip++)
{
QTreeWidgetItem *presetItem = groupItem->child(ip);
const Preset* preset = qvariant_cast<const Preset*>(presetItem->data(0, Qt::UserRole));
if ((preset->getGroup() == presetToDelete->getGroup()) &&
(preset->getCenterFrequency() == presetToDelete->getCenterFrequency()) &&
(preset->getDescription() == presetToDelete->getDescription()) &&
(preset->isSourcePreset() == presetToDelete->isSourcePreset()))
{
groupItem->takeChild(ip);
}
}
}
}
// remove preset from settings
m_settings.deletePreset(presetToDelete);
return true;
}
return false;
}