mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 13:48:42 -05:00
Making progress on what will become QRA65 mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6794 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
132596242f
commit
9c19ff3eea
@ -481,6 +481,16 @@ set (ldpc_CSRCS
|
|||||||
lib/ldpc/distrib.c
|
lib/ldpc/distrib.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set (qra_CSRCS
|
||||||
|
lib/qra/qra65/qra65.c
|
||||||
|
lib/qra/qra65/qra65_subs.c
|
||||||
|
lib/qra/qracodes/npfwht.c
|
||||||
|
lib/qra/qracodes/pdmath.c
|
||||||
|
lib/qra/qracodes/qra12_63_64_irr_b.c
|
||||||
|
lib/qra/qracodes/qra13_64_64_irr_e.c
|
||||||
|
lib/qra/qracodes/qracodes.c
|
||||||
|
)
|
||||||
|
|
||||||
set (wsjt_CSRCS
|
set (wsjt_CSRCS
|
||||||
${ka9q_CSRCS}
|
${ka9q_CSRCS}
|
||||||
lib/ftrsd/ftrsd2.c
|
lib/ftrsd/ftrsd2.c
|
||||||
@ -497,6 +507,7 @@ set (wsjt_CSRCS
|
|||||||
lib/wisdom.c
|
lib/wisdom.c
|
||||||
lib/wrapkarn.c
|
lib/wrapkarn.c
|
||||||
${ldpc_CSRCS}
|
${ldpc_CSRCS}
|
||||||
|
${qra_CSRCS}
|
||||||
)
|
)
|
||||||
|
|
||||||
set (wsjt_qt_UISRCS
|
set (wsjt_qt_UISRCS
|
||||||
@ -1004,12 +1015,18 @@ target_link_libraries (jt4sim wsjt_fort wsjt_cxx)
|
|||||||
add_executable (jt65sim lib/jt65sim.f90 wsjtx.rc)
|
add_executable (jt65sim lib/jt65sim.f90 wsjtx.rc)
|
||||||
target_link_libraries (jt65sim wsjt_fort wsjt_cxx)
|
target_link_libraries (jt65sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (qra65sim lib/qra/qra65/qra65sim.f90 wsjtx.rc)
|
||||||
|
target_link_libraries (qra65sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
add_executable (jt9sim lib/jt9sim.f90 wsjtx.rc)
|
add_executable (jt9sim lib/jt9sim.f90 wsjtx.rc)
|
||||||
target_link_libraries (jt9sim wsjt_fort wsjt_cxx)
|
target_link_libraries (jt9sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
add_executable (jt65code lib/jt65code.f90 wsjtx.rc)
|
add_executable (jt65code lib/jt65code.f90 wsjtx.rc)
|
||||||
target_link_libraries (jt65code wsjt_fort wsjt_cxx)
|
target_link_libraries (jt65code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (qra65code lib/qra65code.f90 wsjtx.rc)
|
||||||
|
target_link_libraries (qra65code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
add_executable (jt9code lib/jt9code.f90 wsjtx.rc)
|
add_executable (jt9code lib/jt9code.f90 wsjtx.rc)
|
||||||
target_link_libraries (jt9code wsjt_fort wsjt_cxx)
|
target_link_libraries (jt9code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
@ -1174,7 +1191,7 @@ install (TARGETS udp_daemon message_aggregator
|
|||||||
BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
install (TARGETS jt9 jt65code jt9code jt4code wsprd
|
install (TARGETS jt9 jt65code qra65code jt9code jt4code wsprd
|
||||||
RUNTIME DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
RUNTIME DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
||||||
BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
ISCAT,
|
ISCAT,
|
||||||
JTMSK,
|
JTMSK,
|
||||||
MSK144,
|
MSK144,
|
||||||
QRA,
|
QRA65,
|
||||||
MODES_END_SENTINAL_AND_COUNT // this must be last
|
MODES_END_SENTINAL_AND_COUNT // this must be last
|
||||||
};
|
};
|
||||||
Q_ENUM (Mode)
|
Q_ENUM (Mode)
|
||||||
|
@ -20,7 +20,7 @@ CAboutDlg::CAboutDlg(QWidget *parent) :
|
|||||||
"weak-signal Amateur Radio communication. <br /><br />"
|
"weak-signal Amateur Radio communication. <br /><br />"
|
||||||
"© 2001-2016 by Joe Taylor, K1JT, with grateful <br />"
|
"© 2001-2016 by Joe Taylor, K1JT, with grateful <br />"
|
||||||
"acknowledgment for contributions from AC6SL, AE4JY, <br />"
|
"acknowledgment for contributions from AC6SL, AE4JY, <br />"
|
||||||
"DJ0OT, G4KLA, G4WJS, IW3RAB, K3WYC, K9AN, KA6MAL, <br />"
|
"DJ0OT, G4KLA, G4WJS, IV3NWV, IW3RAB, K3WYC, K9AN, KA6MAL, <br />"
|
||||||
"KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, <br />"
|
"KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, <br />"
|
||||||
"VK3ACF, VK4BDJ, W4TI, W4TV, and W9MDB.<br /><br />"
|
"VK3ACF, VK4BDJ, W4TI, W4TV, and W9MDB.<br /><br />"
|
||||||
"WSJT-X is licensed under the terms of Version 3 <br />"
|
"WSJT-X is licensed under the terms of Version 3 <br />"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
FC = gfortran
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS = -O2 -Wall -I. -D_WIN32
|
CFLAGS = -O2 -Wall -I. -D_WIN32
|
||||||
|
|
||||||
@ -13,14 +14,17 @@ CFLAGS = -O2 -Wall -I. -D_WIN32
|
|||||||
%.o: %.F90
|
%.o: %.F90
|
||||||
${FC} ${FFLAGS} -c $<
|
${FC} ${FFLAGS} -c $<
|
||||||
|
|
||||||
all: qra65sim.exe
|
all: qra65.exe
|
||||||
|
|
||||||
OBJS1 = main.o qra65.o
|
OBJS1 = main.o qra65.o
|
||||||
|
qra65.exe: $(OBJS1)
|
||||||
|
${CC} -o qra65.exe $(OBJS1) ../qracodes/libqra65.a -lm
|
||||||
|
|
||||||
qra65sim.exe: $(OBJS1)
|
OBJS2 = qra65sim.o options.o wavhdr.o
|
||||||
${CC} -o qra65sim.exe $(OBJS1) ../qracodes/libqra65.a -lm
|
qra65sim.exe: $(OBJS2)
|
||||||
|
${FC} -o qra65sim.exe $(OBJS2) ../qracodes/libqra65.a -lm
|
||||||
|
|
||||||
.PHONY : clean
|
.PHONY : clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) *.o qra65sim.exe
|
$(RM) *.o qra65.exe qra65sim.exe
|
||||||
|
@ -463,7 +463,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
ui->actionISCAT->setActionGroup(modeGroup);
|
ui->actionISCAT->setActionGroup(modeGroup);
|
||||||
ui->actionJTMSK->setActionGroup(modeGroup);
|
ui->actionJTMSK->setActionGroup(modeGroup);
|
||||||
ui->actionMSK144->setActionGroup(modeGroup);
|
ui->actionMSK144->setActionGroup(modeGroup);
|
||||||
ui->actionQRA->setActionGroup(modeGroup);
|
ui->actionQRA65->setActionGroup(modeGroup);
|
||||||
|
|
||||||
QActionGroup* saveGroup = new QActionGroup(this);
|
QActionGroup* saveGroup = new QActionGroup(this);
|
||||||
ui->actionNone->setActionGroup(saveGroup);
|
ui->actionNone->setActionGroup(saveGroup);
|
||||||
@ -737,7 +737,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
|
|
||||||
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
|
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
|
||||||
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK" or m_mode=="MSK144" or
|
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK" or m_mode=="MSK144" or
|
||||||
m_mode=="QRA");
|
m_mode=="QRA65");
|
||||||
VHF_controls_visible(b);
|
VHF_controls_visible(b);
|
||||||
|
|
||||||
ui->txFirstCheckBox->setChecked(m_txFirst);
|
ui->txFirstCheckBox->setChecked(m_txFirst);
|
||||||
@ -765,7 +765,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
if(m_mode=="ISCAT") on_actionISCAT_triggered();
|
if(m_mode=="ISCAT") on_actionISCAT_triggered();
|
||||||
if(m_mode=="JTMSK") on_actionJTMSK_triggered();
|
if(m_mode=="JTMSK") on_actionJTMSK_triggered();
|
||||||
if(m_mode=="MSK144") on_actionMSK144_triggered();
|
if(m_mode=="MSK144") on_actionMSK144_triggered();
|
||||||
if(m_mode=="QRA") on_actionQRA_triggered();
|
if(m_mode=="QRA65") on_actionQRA65_triggered();
|
||||||
if(m_mode=="Echo") monitor(false); //Don't auto-start Monitor in Echo mode.
|
if(m_mode=="Echo") monitor(false); //Don't auto-start Monitor in Echo mode.
|
||||||
|
|
||||||
ui->sbTR->setValue(m_TRindex);
|
ui->sbTR->setValue(m_TRindex);
|
||||||
@ -820,7 +820,15 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
}
|
}
|
||||||
|
|
||||||
statusChanged();
|
statusChanged();
|
||||||
|
//###
|
||||||
|
{
|
||||||
|
QString t=m_config.my_callsign();
|
||||||
|
if(t!="IV3NWV" and t!="K1JT" and t!="K9AN" and t!="G4WJS" and t!="IW0HDV") {
|
||||||
|
ui->actionQRA65->setChecked(false);
|
||||||
|
ui->actionQRA65->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//###
|
||||||
// this must be the last statement of constructor
|
// this must be the last statement of constructor
|
||||||
if (!m_valid) throw std::runtime_error {"Fatal initialization exception"};
|
if (!m_valid) throw std::runtime_error {"Fatal initialization exception"};
|
||||||
}
|
}
|
||||||
@ -1306,7 +1314,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
|||||||
displayDialFrequency ();
|
displayDialFrequency ();
|
||||||
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
|
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
|
||||||
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK" or
|
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK" or
|
||||||
m_mode=="MSK144" or m_mode=="QRA");
|
m_mode=="MSK144" or m_mode=="QRA65");
|
||||||
VHF_features_enabled(b);
|
VHF_features_enabled(b);
|
||||||
VHF_controls_visible(b);
|
VHF_controls_visible(b);
|
||||||
}
|
}
|
||||||
@ -1981,7 +1989,7 @@ void MainWindow::decode() //decode()
|
|||||||
dec_data.params.ntxmode=9;
|
dec_data.params.ntxmode=9;
|
||||||
if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
|
if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
|
||||||
dec_data.params.nmode=9;
|
dec_data.params.nmode=9;
|
||||||
if(m_mode=="JT65" or m_mode=="QRA") dec_data.params.nmode=65;
|
if(m_mode=="JT65" or m_mode=="QRA65") dec_data.params.nmode=65;
|
||||||
if(m_mode=="JT9+JT65") dec_data.params.nmode=9+65; // = 74
|
if(m_mode=="JT9+JT65") dec_data.params.nmode=9+65; // = 74
|
||||||
if(m_mode=="JT4") {
|
if(m_mode=="JT4") {
|
||||||
dec_data.params.nmode=4;
|
dec_data.params.nmode=4;
|
||||||
@ -2172,7 +2180,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
QByteArray t=proc_jt9.readLine();
|
QByteArray t=proc_jt9.readLine();
|
||||||
bool bAvgMsg=false;
|
bool bAvgMsg=false;
|
||||||
int navg=0;
|
int navg=0;
|
||||||
if(m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA") {
|
if(m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA65") {
|
||||||
int n=t.indexOf("f");
|
int n=t.indexOf("f");
|
||||||
if(n<0) n=t.indexOf("d");
|
if(n<0) n=t.indexOf("d");
|
||||||
if(n>0) {
|
if(n>0) {
|
||||||
@ -2284,7 +2292,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA") and m_msgAvgWidget!=NULL) {
|
if((m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA65") and m_msgAvgWidget!=NULL) {
|
||||||
if(m_msgAvgWidget->isVisible()) {
|
if(m_msgAvgWidget->isVisible()) {
|
||||||
QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt"));
|
QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt"));
|
||||||
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
@ -2383,7 +2391,7 @@ void MainWindow::guiUpdate()
|
|||||||
txDuration=0.0;
|
txDuration=0.0;
|
||||||
if(m_modeTx=="JT4") txDuration=1.0 + 207.0*2520/11025.0; // JT4
|
if(m_modeTx=="JT4") txDuration=1.0 + 207.0*2520/11025.0; // JT4
|
||||||
if(m_modeTx=="JT9") txDuration=1.0 + 85.0*m_nsps/12000.0; // JT9
|
if(m_modeTx=="JT9") txDuration=1.0 + 85.0*m_nsps/12000.0; // JT9
|
||||||
if(m_modeTx=="JT65" or m_mode=="QRA") txDuration=1.0 + 126*4096/11025.0; // JT65 or QRA
|
if(m_modeTx=="JT65" or m_mode=="QRA65") txDuration=1.0 + 126*4096/11025.0; // JT65 or QRA65
|
||||||
if(m_mode=="WSPR-2") txDuration=2.0 + 162*8192/12000.0; // WSPR
|
if(m_mode=="WSPR-2") txDuration=2.0 + 162*8192/12000.0; // WSPR
|
||||||
if(m_mode=="ISCAT" or m_mode=="JTMSK" or m_mode=="MSK144" or m_bFast9) {
|
if(m_mode=="ISCAT" or m_mode=="JTMSK" or m_mode=="MSK144" or m_bFast9) {
|
||||||
txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, JTMSK, MSK144
|
txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, JTMSK, MSK144
|
||||||
@ -2563,7 +2571,7 @@ void MainWindow::guiUpdate()
|
|||||||
&m_currentMessageType, len1, len1);
|
&m_currentMessageType, len1, len1);
|
||||||
//###
|
//###
|
||||||
// To be changed!
|
// To be changed!
|
||||||
if(m_modeTx=="QRA") gen65_(message, &ichk, msgsent, const_cast<int *> (itone),
|
if(m_modeTx=="QRA65") gen65_(message, &ichk, msgsent, const_cast<int *> (itone),
|
||||||
&m_currentMessageType, len1, len1);
|
&m_currentMessageType, len1, len1);
|
||||||
//###
|
//###
|
||||||
if(m_mode.startsWith ("WSPR")) genwspr_(message, msgsent, const_cast<int *> (itone),
|
if(m_mode.startsWith ("WSPR")) genwspr_(message, msgsent, const_cast<int *> (itone),
|
||||||
@ -3075,7 +3083,7 @@ void MainWindow::processMessage(QString const& messages, int position, bool ctrl
|
|||||||
if (ui->TxFreqSpinBox->isEnabled ()) {
|
if (ui->TxFreqSpinBox->isEnabled ()) {
|
||||||
if(!m_bFastMode) ui->TxFreqSpinBox->setValue(frequency);
|
if(!m_bFastMode) ui->TxFreqSpinBox->setValue(frequency);
|
||||||
} else if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") &&
|
} else if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") &&
|
||||||
m_mode != "QRA") {
|
m_mode != "QRA65") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3785,17 +3793,18 @@ void MainWindow::on_actionMSK144_triggered()
|
|||||||
ui->actionMSK144->setChecked(true);
|
ui->actionMSK144->setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionQRA_triggered()
|
void MainWindow::on_actionQRA65_triggered()
|
||||||
{
|
{
|
||||||
on_actionJT65_triggered();
|
on_actionJT65_triggered();
|
||||||
m_mode="QRA";
|
m_mode="QRA65";
|
||||||
m_modeTx="QRA";
|
m_modeTx="QRA65";
|
||||||
ui->actionQRA->setChecked(true);
|
ui->actionQRA65->setChecked(true);
|
||||||
switch_mode (Modes::QRA);
|
switch_mode (Modes::QRA65);
|
||||||
statusChanged();
|
statusChanged();
|
||||||
mode_label->setStyleSheet("QLabel{background-color: #99ff33}");
|
mode_label->setStyleSheet("QLabel{background-color: #99ff33}");
|
||||||
QString t1=(QString)QChar(short(m_nSubMode+65));
|
QString t1=(QString)QChar(short(m_nSubMode+65));
|
||||||
mode_label->setText(m_mode + " " + t1);
|
// mode_label->setText(m_mode + " " + t1);
|
||||||
|
mode_label->setText("QRA01 " + t1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4689,11 +4698,11 @@ void MainWindow::transmit (double snr)
|
|||||||
true, false, snr, m_TRperiod);
|
true, false, snr, m_TRperiod);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_modeTx == "QRA") {
|
if (m_modeTx == "QRA65") {
|
||||||
if(m_nSubMode==0) toneSpacing=11025.0/4096.0;
|
if(m_nSubMode==0) toneSpacing=11025.0/4096.0;
|
||||||
if(m_nSubMode==1) toneSpacing=2*11025.0/4096.0;
|
if(m_nSubMode==1) toneSpacing=2*11025.0/4096.0;
|
||||||
if(m_nSubMode==2) toneSpacing=4*11025.0/4096.0;
|
if(m_nSubMode==2) toneSpacing=4*11025.0/4096.0;
|
||||||
Q_EMIT sendMessage (NUM_QRA_SYMBOLS,
|
Q_EMIT sendMessage (NUM_QRA65_SYMBOLS,
|
||||||
4096.0*12000.0/11025.0, ui->TxFreqSpinBox->value () - m_XIT,
|
4096.0*12000.0/11025.0, ui->TxFreqSpinBox->value () - m_XIT,
|
||||||
toneSpacing, m_soundOutput, m_config.audio_output_channel (),
|
toneSpacing, m_soundOutput, m_config.audio_output_channel (),
|
||||||
true, false, snr, m_TRperiod);
|
true, false, snr, m_TRperiod);
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
#define NUM_ISCAT_SYMBOLS 1291 //30*11025/256
|
#define NUM_ISCAT_SYMBOLS 1291 //30*11025/256
|
||||||
#define NUM_JTMSK_SYMBOLS 234 //(72+15+12)*2 + 3*11 sync + 3 f0-parity
|
#define NUM_JTMSK_SYMBOLS 234 //(72+15+12)*2 + 3*11 sync + 3 f0-parity
|
||||||
#define NUM_MSK144_SYMBOLS 144 //s8 + d48 + s8 + d80
|
#define NUM_MSK144_SYMBOLS 144 //s8 + d48 + s8 + d80
|
||||||
#define NUM_QRA_SYMBOLS 126 //63 data + 63 sync
|
#define NUM_QRA65_SYMBOLS 126 //63 data + 63 sync
|
||||||
|
|
||||||
#define NUM_CW_SYMBOLS 250
|
#define NUM_CW_SYMBOLS 250
|
||||||
#define TX_SAMPLE_RATE 48000
|
#define TX_SAMPLE_RATE 48000
|
||||||
@ -248,7 +248,7 @@ private slots:
|
|||||||
void on_sbCQRxFreq_valueChanged(int n);
|
void on_sbCQRxFreq_valueChanged(int n);
|
||||||
void on_cbCQRx_toggled(bool b);
|
void on_cbCQRx_toggled(bool b);
|
||||||
void on_actionMSK144_triggered();
|
void on_actionMSK144_triggered();
|
||||||
void on_actionQRA_triggered();
|
void on_actionQRA65_triggered();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_SIGNAL void initializeAudioOutputStream (QAudioDeviceInfo,
|
Q_SIGNAL void initializeAudioOutputStream (QAudioDeviceInfo,
|
||||||
|
@ -2,6 +2,14 @@
|
|||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>MainWindow</class>
|
<class>MainWindow</class>
|
||||||
<widget class="QMainWindow" name="MainWindow">
|
<widget class="QMainWindow" name="MainWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>896</width>
|
||||||
|
<height>565</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>WSJT-X by K1JT</string>
|
<string>WSJT-X by K1JT</string>
|
||||||
</property>
|
</property>
|
||||||
@ -2276,6 +2284,14 @@ QPushButton[state="ok"] {
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenuBar" name="menuBar">
|
<widget class="QMenuBar" name="menuBar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>896</width>
|
||||||
|
<height>21</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>File</string>
|
<string>File</string>
|
||||||
@ -2353,7 +2369,7 @@ QPushButton[state="ok"] {
|
|||||||
<addaction name="actionISCAT"/>
|
<addaction name="actionISCAT"/>
|
||||||
<addaction name="actionJTMSK"/>
|
<addaction name="actionJTMSK"/>
|
||||||
<addaction name="actionMSK144"/>
|
<addaction name="actionMSK144"/>
|
||||||
<addaction name="actionQRA"/>
|
<addaction name="actionQRA65"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuConfig">
|
<widget class="QMenu" name="menuConfig">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@ -2823,12 +2839,12 @@ QPushButton[state="ok"] {
|
|||||||
<string>MSK144</string>
|
<string>MSK144</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionQRA">
|
<action name="actionQRA65">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>QRA</string>
|
<string>QRA01</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
|
Loading…
Reference in New Issue
Block a user