diff --git a/sdrgui/gui/transverterbutton.cpp b/sdrgui/gui/transverterbutton.cpp
index f9df768a6..70ea5c833 100644
--- a/sdrgui/gui/transverterbutton.cpp
+++ b/sdrgui/gui/transverterbutton.cpp
@@ -25,7 +25,8 @@
TransverterButton::TransverterButton(QWidget* parent) :
QPushButton(parent),
m_deltaFrequency(0),
- m_deltaFrequencyActive(false)
+ m_deltaFrequencyActive(false),
+ m_iqOrder(true)
{
setObjectName("TransverterButton");
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()));
@@ -33,7 +34,8 @@ TransverterButton::TransverterButton(QWidget* parent) :
void TransverterButton::onClicked()
{
- TransverterDialog transverterDialog(m_deltaFrequency, m_deltaFrequencyActive, this);
+ TransverterDialog transverterDialog(m_deltaFrequency, m_deltaFrequencyActive, m_iqOrder, this);
+ transverterDialog.setIQSwapEnabled(m_iqOrderEnabled);
transverterDialog.exec();
updateState();
}
diff --git a/sdrgui/gui/transverterbutton.h b/sdrgui/gui/transverterbutton.h
index 89c8cf901..e80cd419a 100644
--- a/sdrgui/gui/transverterbutton.h
+++ b/sdrgui/gui/transverterbutton.h
@@ -33,6 +33,7 @@ public:
TransverterButton(QWidget* parent = 0);
qint64 getDeltaFrequency() const { return m_deltaFrequency; }
bool getDeltaFrequencyAcive() const { return m_deltaFrequencyActive; }
+ bool getIQOrder() const { return m_iqOrder; }
void setDeltaFrequency(qint64 deltaFrequency)
{
@@ -46,12 +47,26 @@ public:
updateState();
}
+ void setIQOrder(bool iqOrder)
+ {
+ m_iqOrder = iqOrder;
+ updateState();
+ }
+
+ void setIQOrderEnabled(bool enabled)
+ {
+ m_iqOrderEnabled = enabled;
+ updateState();
+ }
+
private slots:
void onClicked();
private:
qint64 m_deltaFrequency;
bool m_deltaFrequencyActive;
+ bool m_iqOrder;
+ bool m_iqOrderEnabled;
void updateState();
};
diff --git a/sdrgui/gui/transverterdialog.cpp b/sdrgui/gui/transverterdialog.cpp
index 71308d62e..9533ec7d9 100644
--- a/sdrgui/gui/transverterdialog.cpp
+++ b/sdrgui/gui/transverterdialog.cpp
@@ -19,23 +19,29 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
+#include
+
#include "transverterdialog.h"
#include "ui_transverterdialog.h"
-TransverterDialog::TransverterDialog(qint64& deltaFrequency, bool& deltaFrequencyActive, QWidget* parent) :
+TransverterDialog::TransverterDialog(qint64& deltaFrequency, bool& deltaFrequencyActive, bool& iqOrder, QWidget* parent) :
QDialog(parent),
ui(new Ui::TransverterDialog),
m_deltaFrequency(deltaFrequency),
- m_deltaFrequencyActive(deltaFrequencyActive)
+ m_deltaFrequencyActive(deltaFrequencyActive),
+ m_iqOrder(iqOrder)
{
+ qDebug() << "TransverterDialog::TransverterDialog: " << m_iqOrder;
ui->setupUi(this);
ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03)));
ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
ui->deltaFrequency->setValueRange(false, 10, -9999999999L, 9999999999L);
ui->deltaFrequency->setValue(m_deltaFrequency);
ui->deltaFrequencyActive->setChecked(m_deltaFrequencyActive);
+ ui->iqOrder->setEnabled(true);
+ ui->iqOrder->setChecked(m_iqOrder);
}
TransverterDialog::~TransverterDialog()
@@ -43,9 +49,26 @@ TransverterDialog::~TransverterDialog()
delete ui;
}
+void TransverterDialog::setIQSwapEnabled(bool enabled)
+{
+ ui->iqOrder->setEnabled(enabled);
+
+ if (enabled) {
+ ui->iqOrder->setChecked(m_iqOrder);
+ } else {
+ ui->iqOrder->setChecked(true);
+ }
+}
+
void TransverterDialog::accept()
{
m_deltaFrequency = ui->deltaFrequency->getValueNew();
m_deltaFrequencyActive = ui->deltaFrequencyActive->isChecked();
+ m_iqOrder = ui->iqOrder->isChecked();
QDialog::accept();
}
+
+void TransverterDialog::on_iqOrder_toggled(bool checked)
+{
+ ui->iqOrder->setText(checked ? "IQ" : "QI");
+}
diff --git a/sdrgui/gui/transverterdialog.h b/sdrgui/gui/transverterdialog.h
index 3d8739a71..f0b74a82a 100644
--- a/sdrgui/gui/transverterdialog.h
+++ b/sdrgui/gui/transverterdialog.h
@@ -34,16 +34,19 @@ class SDRGUI_API TransverterDialog : public QDialog {
Q_OBJECT
public:
- explicit TransverterDialog(qint64& deltaFrequency, bool& deltaFrequencyActive, QWidget* parent = 0);
+ explicit TransverterDialog(qint64& deltaFrequency, bool& deltaFrequencyActive, bool& iqOrder, QWidget* parent = 0);
~TransverterDialog();
+ void setIQSwapEnabled(bool enabled);
private:
Ui::TransverterDialog* ui;
qint64& m_deltaFrequency;
bool& m_deltaFrequencyActive;
+ bool& m_iqOrder;
private slots:
void accept();
+ void on_iqOrder_toggled(bool checked);
};
diff --git a/sdrgui/gui/transverterdialog.ui b/sdrgui/gui/transverterdialog.ui
index 1d9850edd..13f948854 100644
--- a/sdrgui/gui/transverterdialog.ui
+++ b/sdrgui/gui/transverterdialog.ui
@@ -7,7 +7,7 @@
0
0
324
- 81
+ 114
@@ -100,6 +100,33 @@
+ -
+
+
-
+
+
+ IQ order: IQ: straight QI: swapped
+
+
+ IQ
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
-