mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-27 06:38:44 -05:00
New flexibility for defining and selecting the waterfall palette.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3528 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
37a1f23491
commit
016245e80e
@ -3,9 +3,8 @@
|
||||
#include "ui_mainwindow.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <QScopedPointer>
|
||||
|
||||
#include <QColorDialog>
|
||||
#include "devsetup.h"
|
||||
#include "plotter.h"
|
||||
#include "about.h"
|
||||
@ -58,16 +57,8 @@ MainWindow::MainWindow(QSharedMemory *shdmem, QString *thekey, \
|
||||
m_modulator (TX_SAMPLE_RATE, NTMAX / 2, this)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_detector.open ();
|
||||
|
||||
on_EraseButton_clicked();
|
||||
QActionGroup* paletteGroup = new QActionGroup(this);
|
||||
ui->actionCuteSDR->setActionGroup(paletteGroup);
|
||||
ui->actionLinrad->setActionGroup(paletteGroup);
|
||||
ui->actionAFMHot->setActionGroup(paletteGroup);
|
||||
ui->actionBlue->setActionGroup(paletteGroup);
|
||||
ui->actionGray1->setActionGroup(paletteGroup);
|
||||
|
||||
QActionGroup* modeGroup = new QActionGroup(this);
|
||||
ui->actionJT9_1->setActionGroup(modeGroup);
|
||||
@ -345,12 +336,6 @@ MainWindow::MainWindow(QSharedMemory *shdmem, QString *thekey, \
|
||||
}
|
||||
f.close();
|
||||
|
||||
if(ui->actionLinrad->isChecked()) on_actionLinrad_triggered();
|
||||
if(ui->actionCuteSDR->isChecked()) on_actionCuteSDR_triggered();
|
||||
if(ui->actionAFMHot->isChecked()) on_actionAFMHot_triggered();
|
||||
if(ui->actionBlue->isChecked()) on_actionBlue_triggered();
|
||||
if(ui->actionGray1->isChecked()) on_actionGray1_triggered();
|
||||
|
||||
ui->decodedTextLabel->setFont(ui->decodedTextBrowser->font());
|
||||
ui->decodedTextLabel2->setFont(ui->decodedTextBrowser2->font());
|
||||
t="UTC dB DT Freq Message";
|
||||
@ -419,11 +404,6 @@ void MainWindow::writeSettings()
|
||||
settings.setValue("SaveDir",m_saveDir);
|
||||
settings.setValue("SoundInName", m_audioInputDevice.deviceName ());
|
||||
settings.setValue("SoundOutName", m_audioOutputDevice.deviceName ());
|
||||
settings.setValue("PaletteCuteSDR",ui->actionCuteSDR->isChecked());
|
||||
settings.setValue("PaletteLinrad",ui->actionLinrad->isChecked());
|
||||
settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked());
|
||||
settings.setValue("PaletteBlue",ui->actionBlue->isChecked());
|
||||
settings.setValue("PaletteGray1",ui->actionGray1->isChecked());
|
||||
settings.setValue("Mode",m_mode);
|
||||
settings.setValue("ModeTx",m_modeTx);
|
||||
settings.setValue("SaveNone",ui->actionNone->isChecked());
|
||||
@ -535,24 +515,13 @@ void MainWindow::readSettings()
|
||||
QString savedName = settings.value("SoundOutName", "default").toString();
|
||||
QList<QAudioDeviceInfo> audioOutputDevices (QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)); // available audio output devices
|
||||
for (QList<QAudioDeviceInfo>::const_iterator p = audioOutputDevices.begin (); p != audioOutputDevices.end (); ++p)
|
||||
{
|
||||
if (p->deviceName () == savedName)
|
||||
{
|
||||
m_audioOutputDevice = *p;
|
||||
}
|
||||
{
|
||||
if (p->deviceName () == savedName) {
|
||||
m_audioOutputDevice = *p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ui->actionCuteSDR->setChecked(settings.value(
|
||||
"PaletteCuteSDR",false).toBool());
|
||||
ui->actionLinrad->setChecked(settings.value(
|
||||
"PaletteLinrad",true).toBool());
|
||||
ui->actionAFMHot->setChecked(settings.value(
|
||||
"PaletteAFMHot",false).toBool());
|
||||
ui->actionBlue->setChecked(settings.value(
|
||||
"PaletteBlue",false).toBool());
|
||||
ui->actionGray1->setChecked(settings.value(
|
||||
"PaletteGray1",false).toBool());
|
||||
m_mode=settings.value("Mode","JT9").toString();
|
||||
m_modeTx=settings.value("ModeTx","JT9").toString();
|
||||
if(m_modeTx=="JT9") ui->pbTxMode->setText("Tx JT9 @");
|
||||
@ -584,7 +553,6 @@ void MainWindow::readSettings()
|
||||
m_toRTTY=settings.value("toRTTY",false).toBool();
|
||||
ui->actionConvert_JT9_x_to_RTTY->setChecked(m_toRTTY);
|
||||
m_noSuffix=settings.value("NoSuffix",false).toBool();
|
||||
ui->actionLog_JT9_without_submode->setChecked(m_noSuffix);
|
||||
m_dBtoComments=settings.value("dBtoComments",false).toBool();
|
||||
ui->actionLog_dB_reports_to_Comments->setChecked(m_dBtoComments);
|
||||
m_rig=settings.value("Rig",214).toInt();
|
||||
@ -644,12 +612,6 @@ void MainWindow::readSettings()
|
||||
ui->cbPlus2kHz->setChecked(m_plus2kHz);
|
||||
settings.endGroup();
|
||||
|
||||
if(!ui->actionLinrad->isChecked() and !ui->actionCuteSDR->isChecked()and
|
||||
!ui->actionAFMHot->isChecked() and !ui->actionBlue->isChecked() and
|
||||
!ui->actionGray1->isChecked()) {
|
||||
on_actionLinrad_triggered();
|
||||
ui->actionLinrad->setChecked(true);
|
||||
}
|
||||
if(m_ndepth==1) ui->actionQuickDecode->setChecked(true);
|
||||
if(m_ndepth==2) ui->actionMediumDecode->setChecked(true);
|
||||
if(m_ndepth==3) ui->actionDeepestDecode->setChecked(true);
|
||||
@ -852,31 +814,6 @@ void MainWindow::on_monitorButton_clicked() //Monitor
|
||||
m_diskData=false;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLinrad_triggered() //Linrad palette
|
||||
{
|
||||
if(g_pWideGraph != NULL) g_pWideGraph->setPalette("Linrad");
|
||||
}
|
||||
|
||||
void MainWindow::on_actionCuteSDR_triggered() //CuteSDR palette
|
||||
{
|
||||
if(g_pWideGraph != NULL) g_pWideGraph->setPalette("CuteSDR");
|
||||
}
|
||||
|
||||
void MainWindow::on_actionAFMHot_triggered()
|
||||
{
|
||||
if(g_pWideGraph != NULL) g_pWideGraph->setPalette("AFMHot");
|
||||
}
|
||||
|
||||
void MainWindow::on_actionBlue_triggered()
|
||||
{
|
||||
if(g_pWideGraph != NULL) g_pWideGraph->setPalette("Blue");
|
||||
}
|
||||
|
||||
void MainWindow::on_actionGray1_triggered()
|
||||
{
|
||||
if(g_pWideGraph != NULL) g_pWideGraph->setPalette("Gray1");
|
||||
}
|
||||
|
||||
void MainWindow::on_actionAbout_triggered() //Display "About"
|
||||
{
|
||||
CAboutDlg dlg(this,Program_Title_Version);
|
||||
@ -2720,11 +2657,6 @@ void MainWindow::on_actionConvert_JT9_x_to_RTTY_triggered(bool checked)
|
||||
m_toRTTY=checked;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLog_JT9_without_submode_triggered(bool checked)
|
||||
{
|
||||
m_noSuffix=checked;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLog_dB_reports_to_Comments_triggered(bool checked)
|
||||
{
|
||||
m_dBtoComments=checked;
|
||||
|
@ -74,8 +74,6 @@ private slots:
|
||||
void on_actionExit_triggered();
|
||||
void on_actionAbout_triggered();
|
||||
void OnExit();
|
||||
void on_actionLinrad_triggered();
|
||||
void on_actionCuteSDR_triggered();
|
||||
void on_autoButton_clicked();
|
||||
void on_stopTxButton_clicked();
|
||||
void on_stopButton_clicked();
|
||||
@ -107,8 +105,6 @@ private slots:
|
||||
void on_dxGridEntry_textChanged(const QString &arg1);
|
||||
void on_genStdMsgsPushButton_clicked();
|
||||
void on_logQSOButton_clicked();
|
||||
void on_actionAFMHot_triggered();
|
||||
void on_actionBlue_triggered();
|
||||
void on_actionJT9_1_triggered();
|
||||
void on_actionJT65_triggered();
|
||||
void on_actionJT9_JT65_triggered();
|
||||
@ -134,7 +130,6 @@ private slots:
|
||||
void onPopup9();
|
||||
void onPopup10();
|
||||
void on_actionConvert_JT9_x_to_RTTY_triggered(bool checked);
|
||||
void on_actionLog_JT9_without_submode_triggered(bool checked);
|
||||
void on_actionLog_dB_reports_to_Comments_triggered(bool checked);
|
||||
void startTx2();
|
||||
void stopTx();
|
||||
@ -171,8 +166,6 @@ private slots:
|
||||
void on_actionTx2QSO_triggered(bool checked);
|
||||
void on_cbPlus2kHz_toggled(bool checked);
|
||||
|
||||
void on_actionGray1_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
||||
|
267
mainwindow.ui
267
mainwindow.ui
@ -2274,19 +2274,8 @@ p, li { white-space: pre-wrap; }
|
||||
<property name="title">
|
||||
<string>View</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuWaterfall_palette">
|
||||
<property name="title">
|
||||
<string>Waterfall palette</string>
|
||||
</property>
|
||||
<addaction name="actionLinrad"/>
|
||||
<addaction name="actionCuteSDR"/>
|
||||
<addaction name="actionAFMHot"/>
|
||||
<addaction name="actionBlue"/>
|
||||
<addaction name="actionGray1"/>
|
||||
</widget>
|
||||
<addaction name="actionWide_Waterfall"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuWaterfall_palette"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuDecode">
|
||||
<property name="title">
|
||||
@ -2354,24 +2343,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Ctrl+F1</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAstro_Data">
|
||||
<property name="text">
|
||||
<string>Astro Data</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Shift+F10</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionBand_Map">
|
||||
<property name="text">
|
||||
<string>Band Map</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionMessages">
|
||||
<property name="text">
|
||||
<string>Messages</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionWide_Waterfall">
|
||||
<property name="text">
|
||||
<string>Waterfall</string>
|
||||
@ -2403,54 +2374,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Delete all *.wav files in SaveDir</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionErase_Band_Map_and_Messages">
|
||||
<property name="text">
|
||||
<string>Erase Band Map and Messages</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionLinrad">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Linrad</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionCuteSDR">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CuteSDR</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionFind_Delta_Phi">
|
||||
<property name="text">
|
||||
<string>Find Delta Phi</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionF4_sets_Tx6">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>F4 sets Tx6</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionNo_shorthands_if_Tx1">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>No shorthand decodes if Tx1</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQuickDecode">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
@ -2481,57 +2404,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Save all</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action50">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action144">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>144</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action222">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>222</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action432">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>432</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action1296">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1296</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action2304">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2304</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionOnline_Users_Guide">
|
||||
<property name="text">
|
||||
<string>Online User's Guide</string>
|
||||
@ -2556,80 +2428,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>F5</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAvailable_suffixes_and_add_on_prefixes">
|
||||
<property name="text">
|
||||
<string>Available suffixes and add-on-prefixes</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT65A">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT65A</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT65B">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT65B</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT65C">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT65C</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionI_Q_Calibration">
|
||||
<property name="text">
|
||||
<string>I/Q Calibration</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F7</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAdjust_IQ_Calibration">
|
||||
<property name="text">
|
||||
<string>Adjust I/Q Calibration</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionApply_IQ_Calibration">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply I/Q Calibration</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAFMHot">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>AFMHot</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionBlue">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Blue</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionFUNcube_Dongle">
|
||||
<property name="text">
|
||||
<string>FUNcube Dongle Settings</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT9_1">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
@ -2641,58 +2439,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>JT9</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT9_2">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT9-2</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT9_5">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT9-5</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT9_10">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT9-10</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT9_30">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT9-30</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSave_synced">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save synced</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSave_decoded">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
@ -2744,14 +2490,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Erase wsjtx_log.adi</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionLog_JT9_without_submode">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Log JT9 without submode</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionConvert_JT9_x_to_RTTY">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
@ -2792,11 +2530,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Clear DX Call and Grid after logging</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDistance_in_miles">
|
||||
<property name="text">
|
||||
<string>Distance in miles</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDisplay_distance_in_miles">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
|
90
plotter.cpp
90
plotter.cpp
@ -134,11 +134,7 @@ void CPlotter::draw(float swide[]) //draw()
|
||||
m_line++;
|
||||
if(m_line == 13) {
|
||||
UTCstr();
|
||||
if(m_palette=="Gray1") {
|
||||
painter1.setPen(Qt::red);
|
||||
} else {
|
||||
painter1.setPen(Qt::white);
|
||||
}
|
||||
painter1.setPen(Qt::white);
|
||||
painter1.drawText(5,10,m_sutc);
|
||||
}
|
||||
update(); //trigger a new paintEvent
|
||||
@ -429,90 +425,6 @@ void CPlotter::setNSpan(int n) //setNSpan()
|
||||
m_nSpan=n;
|
||||
}
|
||||
|
||||
void CPlotter::setPalette(QString palette) //setPalette()
|
||||
{
|
||||
m_palette=palette;
|
||||
if(palette=="Linrad") {
|
||||
float twopi=6.2831853;
|
||||
float r,g,b,phi,x;
|
||||
for(int i=0; i<256; i++) {
|
||||
r=0.0;
|
||||
if(i>105 and i<=198) {
|
||||
phi=(twopi/4.0) * (i-105.0)/(198.0-105.0);
|
||||
r=sin(phi);
|
||||
} else if(i>=198) {
|
||||
r=1.0;
|
||||
}
|
||||
|
||||
g=0.0;
|
||||
if(i>35 and i<198) {
|
||||
phi=(twopi/4.0) * (i-35.0)/(122.5-35.0);
|
||||
g=0.625*sin(phi);
|
||||
} else if(i>=198) {
|
||||
x=(i-186.0);
|
||||
g=-0.014 + 0.0144*x -0.00007*x*x +0.000002*x*x*x;
|
||||
if(g>1.0) g=1.0;
|
||||
}
|
||||
|
||||
b=0.0;
|
||||
if(i<=117) {
|
||||
phi=(twopi/2.0) * i/117.0;
|
||||
b=0.4531*sin(phi);
|
||||
} else if(i>186) {
|
||||
x=(i-186.0);
|
||||
b=-0.014 + 0.0144*x -0.00007*x*x +0.000002*x*x*x;
|
||||
if(b>1.0) b=1.0;
|
||||
}
|
||||
m_ColorTbl[i].setRgb(int(255.0*r),int(255.0*g),int(255.0*b));
|
||||
}
|
||||
m_ColorTbl[255].setRgb(255,255,100);
|
||||
return;
|
||||
}
|
||||
|
||||
if(palette=="CuteSDR") {
|
||||
for( int i=0; i<256; i++) {
|
||||
if( (i<43) )
|
||||
m_ColorTbl[i].setRgb( 0,0, 255*(i)/43);
|
||||
if( (i>=43) && (i<87) )
|
||||
m_ColorTbl[i].setRgb( 0, 255*(i-43)/43, 255 );
|
||||
if( (i>=87) && (i<120) )
|
||||
m_ColorTbl[i].setRgb( 0,255, 255-(255*(i-87)/32));
|
||||
if( (i>=120) && (i<154) )
|
||||
m_ColorTbl[i].setRgb( (255*(i-120)/33), 255, 0);
|
||||
if( (i>=154) && (i<217) )
|
||||
m_ColorTbl[i].setRgb( 255, 255 - (255*(i-154)/62), 0);
|
||||
if( (i>=217) )
|
||||
m_ColorTbl[i].setRgb( 255, 0, 128*(i-217)/38);
|
||||
}
|
||||
m_ColorTbl[255].setRgb(255,255,100);
|
||||
return;
|
||||
}
|
||||
|
||||
QFile f;
|
||||
if(palette=="Blue") f.setFileName("blue.dat");
|
||||
if(palette=="AFMHot") f.setFileName("afmhot.dat");
|
||||
if(palette=="Gray1") f.setFileName("gray1.dat");
|
||||
if(f.open(QIODevice::ReadOnly)) {
|
||||
QTextStream in(&f);
|
||||
int n,r,g,b;
|
||||
float xr,xg,xb;
|
||||
for(int i=0; i<256; i++) {
|
||||
in >> n >> xr >> xg >> xb;
|
||||
r=255.0*xr + 0.5;
|
||||
g=255.0*xg + 0.5;
|
||||
b=255.0*xb + 0.5;
|
||||
m_ColorTbl[i].setRgb(r,g,b);
|
||||
}
|
||||
f.close();
|
||||
} else {
|
||||
QMessageBox msgBox0;
|
||||
QString t="Error: Cannot find requested palette file.";
|
||||
msgBox0.setText(t);
|
||||
msgBox0.exec();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
double CPlotter::fGreen()
|
||||
{
|
||||
return m_fGreen;
|
||||
|
@ -61,7 +61,6 @@ public:
|
||||
void setRxFreq(int n, bool bf);
|
||||
void DrawOverlay();
|
||||
int rxFreq();
|
||||
void setPalette(QString palette);
|
||||
void setFsample(int n);
|
||||
void setNsps(int ntrperiod, int nsps);
|
||||
void setTxFreq(int n);
|
||||
@ -98,7 +97,6 @@ private:
|
||||
QString m_HDivText[483];
|
||||
QString m_mode;
|
||||
QString m_modeTx;
|
||||
QString m_palette;
|
||||
|
||||
bool m_Running;
|
||||
bool m_paintEventBusy;
|
||||
|
@ -53,7 +53,11 @@ WideGraph::WideGraph(QWidget *parent) :
|
||||
ui->slopeSpinBox->setValue(m_slope);
|
||||
ui->widePlot->setStartFreq(settings.value("StartFreq",0).toInt());
|
||||
ui->fStartSpinBox->setValue(ui->widePlot->startFreq());
|
||||
m_waterfallPalette=settings.value("WaterfallPalette","default").toString();
|
||||
ui->labPalette->setText(m_waterfallPalette.mid(0,1).toUpper() +
|
||||
m_waterfallPalette.mid(1));
|
||||
settings.endGroup();
|
||||
readPalette("Palettes/" + m_waterfallPalette + ".pal");
|
||||
}
|
||||
|
||||
WideGraph::~WideGraph()
|
||||
@ -80,6 +84,7 @@ void WideGraph::saveSettings()
|
||||
settings.setValue("BinsPerPixel",ui->widePlot->binsPerPixel());
|
||||
settings.setValue("Slope",m_slope);
|
||||
settings.setValue("StartFreq",ui->widePlot->startFreq());
|
||||
settings.setValue("WaterfallPalette",m_waterfallPalette);
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -227,11 +232,6 @@ void WideGraph::setFmin(int n)
|
||||
setRxRange(m_fMin);
|
||||
}
|
||||
|
||||
void WideGraph::setPalette(QString palette)
|
||||
{
|
||||
ui->widePlot->setPalette(palette);
|
||||
}
|
||||
|
||||
double WideGraph::fGreen()
|
||||
{
|
||||
return ui->widePlot->fGreen();
|
||||
@ -319,3 +319,54 @@ void WideGraph::on_fStartSpinBox_valueChanged(int n)
|
||||
{
|
||||
ui->widePlot->setStartFreq(n);
|
||||
}
|
||||
|
||||
void WideGraph::on_pbPalette_clicked()
|
||||
{
|
||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Select Palette"),
|
||||
"./Palettes", tr("Files (*.pal)"));
|
||||
if(fileName!="") readPalette(fileName);
|
||||
/*
|
||||
QColor color = QColorDialog::getColor(Qt::yellow, this );
|
||||
if(color.isValid()) {
|
||||
qDebug( "ok" );
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void WideGraph::readPalette(QString fileName)
|
||||
{
|
||||
QFile f;
|
||||
f.setFileName(fileName);
|
||||
if(f.open(QIODevice::ReadOnly)) {
|
||||
QTextStream in(&f);
|
||||
int r[9],g[9],b[9];
|
||||
QString t;
|
||||
for(int i=0; i<9; i++) {
|
||||
t=in.readLine();
|
||||
r[i]=t.mid(0,3).toInt();
|
||||
g[i]=t.mid(4,3).toInt();
|
||||
b[i]=t.mid(8,3).toInt();
|
||||
}
|
||||
f.close();
|
||||
for(int i=0; i<256; i++) {
|
||||
int j0=i/32;
|
||||
int j1=j0+1;
|
||||
int k=i-32*j0;
|
||||
int rr=r[j0] + int((k*(r[j1]-r[j0]))/31 + 0.5);
|
||||
int gg=g[j0] + int((k*(g[j1]-g[j0]))/31 + 0.5);
|
||||
int bb=b[j0] + int((k*(b[j1]-b[j0]))/31 + 0.5);
|
||||
ui->widePlot->m_ColorTbl[i].setRgb(rr,gg,bb);
|
||||
}
|
||||
QFileInfo fileInfo(f);
|
||||
t=fileInfo.fileName();
|
||||
int n=t.length();
|
||||
m_waterfallPalette=t.mid(0,n-4);
|
||||
ui->labPalette->setText(m_waterfallPalette.mid(0,1).toUpper() +
|
||||
m_waterfallPalette.mid(1));
|
||||
} else {
|
||||
QMessageBox msgBox0;
|
||||
QString t="Error: Cannot find requested palette file " + fileName;
|
||||
msgBox0.setText(t);
|
||||
msgBox0.exec();
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,6 @@ public:
|
||||
void saveSettings();
|
||||
void setRxRange(int fMin);
|
||||
void setFmin(int n);
|
||||
void setPalette(QString palette);
|
||||
void setFsample(int n);
|
||||
void setPeriod(int ntrperiod, int nsps);
|
||||
void setTxFreq(int n);
|
||||
@ -35,6 +34,7 @@ public:
|
||||
void setLockTxFreq(bool b);
|
||||
double getSlope();
|
||||
double fGreen();
|
||||
void readPalette(QString fileName);
|
||||
|
||||
qint32 m_rxFreq;
|
||||
qint32 m_txFreq;
|
||||
@ -62,6 +62,7 @@ private slots:
|
||||
void on_fMinSpinBox_valueChanged(int n);
|
||||
void on_slopeSpinBox_valueChanged(double d);
|
||||
void on_fStartSpinBox_valueChanged(int n);
|
||||
void on_pbPalette_clicked();
|
||||
|
||||
private:
|
||||
double m_slope;
|
||||
@ -79,6 +80,7 @@ private:
|
||||
|
||||
QString m_mode;
|
||||
QString m_modeTx;
|
||||
QString m_waterfallPalette;
|
||||
|
||||
Ui::WideGraph *ui;
|
||||
};
|
||||
|
139
widegraph.ui
139
widegraph.ui
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>799</width>
|
||||
<height>326</height>
|
||||
<height>395</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -51,24 +51,21 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="fStartSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@ -96,23 +93,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QSpinBox" name="freqSpanSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@ -155,23 +136,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QSpinBox" name="waterfallAvgSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@ -205,23 +170,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QSpinBox" name="gainSpinBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
@ -249,23 +198,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="5">
|
||||
<widget class="QSpinBox" name="zeroSpinBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
@ -296,7 +229,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QDoubleSpinBox" name="slopeSpinBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
@ -321,23 +254,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<item row="0" column="7">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QSpinBox" name="fMinSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@ -374,23 +304,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_8">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QComboBox" name="spec2dComboBox">
|
||||
<property name="toolTip">
|
||||
<string>Select data for display curve</string>
|
||||
@ -410,18 +324,19 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="pbPalette">
|
||||
<property name="text">
|
||||
<string>Palette</string>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QLabel" name="labPalette">
|
||||
<property name="text">
|
||||
<string>Linrad</string>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
|
Loading…
Reference in New Issue
Block a user