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

Added button and logic to update an existing preset with the current configuration

This commit is contained in:
f4exb
2015-05-09 10:51:02 +02:00
parent 31fb81c66a
commit f07934cc80
10 changed files with 136 additions and 31 deletions
+42 -19
View File
@@ -45,8 +45,8 @@ MainWindow::MainWindow(QWidget* parent) :
m_dspEngine(new DSPEngine(m_messageQueue)),
m_lastEngineState((DSPEngine::State)-1),
m_startOsmoSDRUpdateAfterStop(false),
m_scopeWindow(NULL),
m_inputGUI(NULL),
m_scopeWindow(0),
m_inputGUI(0),
m_sampleRate(0),
m_centerFrequency(0),
m_pluginManager(new PluginManager(this, m_dspEngine))
@@ -122,9 +122,9 @@ MainWindow::~MainWindow()
m_dspEngine->removeSink(m_spectrumVis);
delete m_spectrumVis;
if(m_scopeWindow != NULL) {
if(m_scopeWindow != 0) {
delete m_scopeWindow;
m_scopeWindow = NULL;
m_scopeWindow = 0;
}
delete m_pluginManager;
@@ -165,9 +165,9 @@ void MainWindow::removeChannelMarker(ChannelMarker* channelMarker)
void MainWindow::setInputGUI(QWidget* gui)
{
if(m_inputGUI != NULL)
if(m_inputGUI != 0)
ui->inputDock->widget()->layout()->removeWidget(m_inputGUI);
if(gui != NULL)
if(gui != 0)
ui->inputDock->widget()->layout()->addWidget(gui);
m_inputGUI = gui;
}
@@ -251,14 +251,14 @@ void MainWindow::updateSampleRate()
{
ui->glSpectrum->setSampleRate(m_sampleRate);
m_sampleRateWidget->setText(tr("Rate: %1 kHz").arg((float)m_sampleRate / 1000));
if(m_scopeWindow != NULL)
if(m_scopeWindow != 0)
m_scopeWindow->setSampleRate(m_sampleRate);
}
void MainWindow::updatePresets()
{
ui->presetTree->resizeColumnToContents(0);
if(ui->presetTree->currentItem() != NULL) {
if(ui->presetTree->currentItem() != 0) {
ui->presetDelete->setEnabled(true);
ui->presetLoad->setEnabled(true);
} else {
@@ -269,14 +269,14 @@ void MainWindow::updatePresets()
QTreeWidgetItem* MainWindow::addPresetToTree(const Preset* preset)
{
QTreeWidgetItem* group = NULL;
QTreeWidgetItem* group = 0;
for(int i = 0; i < ui->presetTree->topLevelItemCount(); i++) {
if(ui->presetTree->topLevelItem(i)->text(0) == preset->getGroup()) {
group = ui->presetTree->topLevelItem(i);
break;
}
}
if(group == NULL) {
if(group == 0) {
QStringList sl;
sl.append(preset->getGroup());
group = new QTreeWidgetItem(ui->presetTree, sl, PGroup);
@@ -305,7 +305,7 @@ void MainWindow::applySettings()
void MainWindow::handleMessages()
{
Message* message;
while((message = m_messageQueue->accept()) != NULL) {
while((message = m_messageQueue->accept()) != 0) {
qDebug("Message: %s", message->getIdentifier());
if(DSPEngineReport::match(message)) {
DSPEngineReport* rep = (DSPEngineReport*)message;
@@ -363,7 +363,7 @@ void MainWindow::scopeWindowDestroyed()
{
ui->action_Oscilloscope->setChecked(false);
m_settings.getCurrent()->setShowScope(false);
m_scopeWindow = NULL;
m_scopeWindow = 0;
}
void MainWindow::on_action_Start_triggered()
@@ -399,19 +399,26 @@ void MainWindow::on_presetSave_clicked()
{
QStringList groups;
QString group;
QString description = "";
for(int i = 0; i < ui->presetTree->topLevelItemCount(); i++)
groups.append(ui->presetTree->topLevelItem(i)->text(0));
QTreeWidgetItem* item = ui->presetTree->currentItem();
if(item != NULL) {
if(item != 0) {
if(item->type() == PGroup)
group = item->text(0);
else if(item->type() == PItem)
else if(item->type() == PItem) {
group = item->parent()->text(0);
description = item->text(0);
}
}
AddPresetDialog dlg(groups, group, this);
if (description.length() > 0) {
dlg.setDescription(description);
}
if(dlg.exec() == QDialog::Accepted) {
Preset* preset = m_settings.newPreset(dlg.group(), dlg.description());
saveSettings(preset);
@@ -420,16 +427,32 @@ void MainWindow::on_presetSave_clicked()
}
}
void MainWindow::on_presetUpdate_clicked()
{
QTreeWidgetItem* item = ui->presetTree->currentItem();
if(item != 0) {
if(item->type() == PItem) {
const Preset* preset = qvariant_cast<const Preset*>(item->data(0, Qt::UserRole));
if (preset != 0) {
Preset* preset_mod = const_cast<Preset*>(preset);
saveSettings(preset_mod);
}
}
}
}
void MainWindow::on_presetLoad_clicked()
{
QTreeWidgetItem* item = ui->presetTree->currentItem();
if(item == NULL) {
if(item == 0) {
updatePresets();
return;
}
const Preset* preset = qvariant_cast<const Preset*>(item->data(0, Qt::UserRole));
if(preset == NULL)
if(preset == 0) {
return;
}
loadSettings(preset);
applySettings();
@@ -438,12 +461,12 @@ void MainWindow::on_presetLoad_clicked()
void MainWindow::on_presetDelete_clicked()
{
QTreeWidgetItem* item = ui->presetTree->currentItem();
if(item == NULL) {
if(item == 0) {
updatePresets();
return;
}
const Preset* preset = qvariant_cast<const Preset*>(item->data(0, Qt::UserRole));
if(preset == NULL)
if(preset == 0)
return;
if(QMessageBox::question(this, tr("Delete Preset"), tr("Do you want to delete preset '%1'?").arg(preset->getDescription()), QMessageBox::No | QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
@@ -464,7 +487,7 @@ void MainWindow::on_presetTree_itemActivated(QTreeWidgetItem *item, int column)
void MainWindow::on_action_Oscilloscope_triggered()
{
if(m_scopeWindow != NULL) {
if(m_scopeWindow != 0) {
((QWidget*)m_scopeWindow->parent())->raise();
return;
}