mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-29 04:42:28 -04:00
Merge branch 'feat-autoLog' into develop: new "AutoLog" feature for contests.
Also a real-time logging window.
This commit is contained in:
commit
882ee7c871
@ -461,6 +461,8 @@ private:
|
|||||||
Q_SLOT void on_rbRTTYroundup_toggled();
|
Q_SLOT void on_rbRTTYroundup_toggled();
|
||||||
Q_SLOT void on_FieldDay_Exchange_textChanged();
|
Q_SLOT void on_FieldDay_Exchange_textChanged();
|
||||||
Q_SLOT void on_RTTY_Exchange_textChanged();
|
Q_SLOT void on_RTTY_Exchange_textChanged();
|
||||||
|
Q_SLOT void on_prompt_to_log_check_box_clicked(bool);
|
||||||
|
Q_SLOT void on_cbAutoLog_clicked(bool);
|
||||||
|
|
||||||
// typenames used as arguments must match registered type names :(
|
// typenames used as arguments must match registered type names :(
|
||||||
Q_SIGNAL void start_transceiver (unsigned seqeunce_number) const;
|
Q_SIGNAL void start_transceiver (unsigned seqeunce_number) const;
|
||||||
@ -579,6 +581,7 @@ private:
|
|||||||
bool log_as_RTTY_;
|
bool log_as_RTTY_;
|
||||||
bool report_in_comments_;
|
bool report_in_comments_;
|
||||||
bool prompt_to_log_;
|
bool prompt_to_log_;
|
||||||
|
bool autoLog_;
|
||||||
bool insert_blank_;
|
bool insert_blank_;
|
||||||
bool DXCC_;
|
bool DXCC_;
|
||||||
bool ppfx_;
|
bool ppfx_;
|
||||||
@ -692,6 +695,7 @@ bool Configuration::monitor_last_used () const {return m_->rig_is_dummy_ || m_->
|
|||||||
bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;}
|
bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;}
|
||||||
bool Configuration::report_in_comments () const {return m_->report_in_comments_;}
|
bool Configuration::report_in_comments () const {return m_->report_in_comments_;}
|
||||||
bool Configuration::prompt_to_log () const {return m_->prompt_to_log_;}
|
bool Configuration::prompt_to_log () const {return m_->prompt_to_log_;}
|
||||||
|
bool Configuration::autoLog() const {return m_->autoLog_;}
|
||||||
bool Configuration::insert_blank () const {return m_->insert_blank_;}
|
bool Configuration::insert_blank () const {return m_->insert_blank_;}
|
||||||
bool Configuration::DXCC () const {return m_->DXCC_;}
|
bool Configuration::DXCC () const {return m_->DXCC_;}
|
||||||
bool Configuration::ppfx() const {return m_->ppfx_;}
|
bool Configuration::ppfx() const {return m_->ppfx_;}
|
||||||
@ -1213,6 +1217,7 @@ void Configuration::impl::initialize_models ()
|
|||||||
ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_);
|
ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_);
|
||||||
ui_->report_in_comments_check_box->setChecked (report_in_comments_);
|
ui_->report_in_comments_check_box->setChecked (report_in_comments_);
|
||||||
ui_->prompt_to_log_check_box->setChecked (prompt_to_log_);
|
ui_->prompt_to_log_check_box->setChecked (prompt_to_log_);
|
||||||
|
ui_->cbAutoLog->setChecked(autoLog_);
|
||||||
ui_->insert_blank_check_box->setChecked (insert_blank_);
|
ui_->insert_blank_check_box->setChecked (insert_blank_);
|
||||||
ui_->DXCC_check_box->setChecked (DXCC_);
|
ui_->DXCC_check_box->setChecked (DXCC_);
|
||||||
ui_->ppfx_check_box->setChecked (ppfx_);
|
ui_->ppfx_check_box->setChecked (ppfx_);
|
||||||
@ -1466,6 +1471,7 @@ void Configuration::impl::read_settings ()
|
|||||||
rig_params_.ptt_port = settings_->value ("PTTport").toString ();
|
rig_params_.ptt_port = settings_->value ("PTTport").toString ();
|
||||||
data_mode_ = settings_->value ("DataMode", QVariant::fromValue (data_mode_none)).value<Configuration::DataMode> ();
|
data_mode_ = settings_->value ("DataMode", QVariant::fromValue (data_mode_none)).value<Configuration::DataMode> ();
|
||||||
prompt_to_log_ = settings_->value ("PromptToLog", false).toBool ();
|
prompt_to_log_ = settings_->value ("PromptToLog", false).toBool ();
|
||||||
|
autoLog_ = settings_->value ("AutoLog", false).toBool ();
|
||||||
insert_blank_ = settings_->value ("InsertBlank", false).toBool ();
|
insert_blank_ = settings_->value ("InsertBlank", false).toBool ();
|
||||||
DXCC_ = settings_->value ("DXCCEntity", false).toBool ();
|
DXCC_ = settings_->value ("DXCCEntity", false).toBool ();
|
||||||
ppfx_ = settings_->value ("PrincipalPrefix", false).toBool ();
|
ppfx_ = settings_->value ("PrincipalPrefix", false).toBool ();
|
||||||
@ -1578,6 +1584,7 @@ void Configuration::impl::write_settings ()
|
|||||||
settings_->setValue ("CATHandshake", QVariant::fromValue (rig_params_.handshake));
|
settings_->setValue ("CATHandshake", QVariant::fromValue (rig_params_.handshake));
|
||||||
settings_->setValue ("DataMode", QVariant::fromValue (data_mode_));
|
settings_->setValue ("DataMode", QVariant::fromValue (data_mode_));
|
||||||
settings_->setValue ("PromptToLog", prompt_to_log_);
|
settings_->setValue ("PromptToLog", prompt_to_log_);
|
||||||
|
settings_->setValue ("AutoLog", autoLog_);
|
||||||
settings_->setValue ("InsertBlank", insert_blank_);
|
settings_->setValue ("InsertBlank", insert_blank_);
|
||||||
settings_->setValue ("DXCCEntity", DXCC_);
|
settings_->setValue ("DXCCEntity", DXCC_);
|
||||||
settings_->setValue ("PrincipalPrefix", ppfx_);
|
settings_->setValue ("PrincipalPrefix", ppfx_);
|
||||||
@ -1999,6 +2006,7 @@ void Configuration::impl::accept ()
|
|||||||
log_as_RTTY_ = ui_->log_as_RTTY_check_box->isChecked ();
|
log_as_RTTY_ = ui_->log_as_RTTY_check_box->isChecked ();
|
||||||
report_in_comments_ = ui_->report_in_comments_check_box->isChecked ();
|
report_in_comments_ = ui_->report_in_comments_check_box->isChecked ();
|
||||||
prompt_to_log_ = ui_->prompt_to_log_check_box->isChecked ();
|
prompt_to_log_ = ui_->prompt_to_log_check_box->isChecked ();
|
||||||
|
autoLog_ = ui_->cbAutoLog->isChecked();
|
||||||
insert_blank_ = ui_->insert_blank_check_box->isChecked ();
|
insert_blank_ = ui_->insert_blank_check_box->isChecked ();
|
||||||
DXCC_ = ui_->DXCC_check_box->isChecked ();
|
DXCC_ = ui_->DXCC_check_box->isChecked ();
|
||||||
ppfx_ = ui_->ppfx_check_box->isChecked ();
|
ppfx_ = ui_->ppfx_check_box->isChecked ();
|
||||||
@ -2596,6 +2604,16 @@ void Configuration::impl::on_calibration_slope_ppm_spin_box_valueChanged (double
|
|||||||
rig_active_ = false; // force reset
|
rig_active_ = false; // force reset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Configuration::impl::on_prompt_to_log_check_box_clicked(bool checked)
|
||||||
|
{
|
||||||
|
if(checked) ui_->cbAutoLog->setChecked(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Configuration::impl::on_cbAutoLog_clicked(bool checked)
|
||||||
|
{
|
||||||
|
if(checked) ui_->prompt_to_log_check_box->setChecked(false);
|
||||||
|
}
|
||||||
|
|
||||||
void Configuration::impl::on_cbFox_clicked (bool checked)
|
void Configuration::impl::on_cbFox_clicked (bool checked)
|
||||||
{
|
{
|
||||||
if(checked) {
|
if(checked) {
|
||||||
|
@ -115,6 +115,7 @@ public:
|
|||||||
bool log_as_RTTY () const;
|
bool log_as_RTTY () const;
|
||||||
bool report_in_comments () const;
|
bool report_in_comments () const;
|
||||||
bool prompt_to_log () const;
|
bool prompt_to_log () const;
|
||||||
|
bool autoLog() const;
|
||||||
bool insert_blank () const;
|
bool insert_blank () const;
|
||||||
bool DXCC () const;
|
bool DXCC () const;
|
||||||
bool ppfx() const;
|
bool ppfx() const;
|
||||||
|
@ -1702,24 +1702,7 @@ QListView::item:hover {
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="3">
|
<item row="3" column="0">
|
||||||
<widget class="QLineEdit" name="opCallEntry">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QCheckBox" name="log_as_RTTY_check_box">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Some logging programs will not accept JT-65 or JT9 as a recognized mode.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Con&vert mode to RTTY</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QCheckBox" name="report_in_comments_check_box">
|
<widget class="QCheckBox" name="report_in_comments_check_box">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Some logging programs will not accept the type of reports
|
<string>Some logging programs will not accept the type of reports
|
||||||
@ -1732,7 +1715,7 @@ comments field.</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="2">
|
<item row="4" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="clear_DX_check_box">
|
<widget class="QCheckBox" name="clear_DX_check_box">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Check this option to force the clearing of the DX Call
|
<string>Check this option to force the clearing of the DX Call
|
||||||
@ -1743,6 +1726,30 @@ and DX Grid fields when a 73 or free text message is sent.</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QCheckBox" name="log_as_RTTY_check_box">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Some logging programs will not accept JT-65 or JT9 as a recognized mode.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Con&vert mode to RTTY</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QLineEdit" name="opCallEntry">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="cbAutoLog">
|
||||||
|
<property name="text">
|
||||||
|
<string>Log automatically</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
program t1
|
|
||||||
|
|
||||||
real x(13)
|
|
||||||
real(KIND=16) :: dlong,dlong0
|
|
||||||
character wd*13,w*13,error*5
|
|
||||||
character c*44 !NB: 44^13 = 2^(70.973)
|
|
||||||
data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?@$'/
|
|
||||||
|
|
||||||
nargs=iargc()
|
|
||||||
if(nargs.ne.1) then
|
|
||||||
print*,'Usage: t1 "FreeText13"'
|
|
||||||
print*,' t1 <iters>'
|
|
||||||
go to 999
|
|
||||||
endif
|
|
||||||
call getarg(1,w)
|
|
||||||
iters=1
|
|
||||||
read(w,*,err=10) iters
|
|
||||||
10 continue
|
|
||||||
|
|
||||||
do iter=1,iters
|
|
||||||
if(iters.gt.1) then
|
|
||||||
! Create a random free-text word
|
|
||||||
call random_number(x)
|
|
||||||
do i=1,13
|
|
||||||
j=44*x(i) + 1
|
|
||||||
w(i:i)=c(j:j)
|
|
||||||
enddo
|
|
||||||
endif
|
|
||||||
! Encode a 13-character free-text message into a 71-bit integer.
|
|
||||||
dlong=0.d0
|
|
||||||
do i=1,13
|
|
||||||
n=index(c,w(i:i))-1
|
|
||||||
dlong=44.d0*dlong + n
|
|
||||||
enddo
|
|
||||||
dlong0=dlong
|
|
||||||
|
|
||||||
! Decode a a 71-bit integer into a 13-character free-text message.
|
|
||||||
do i=13,1,-1
|
|
||||||
j=mod(dlong,44.d0)+1.d0
|
|
||||||
wd(i:i)=c(j:j)
|
|
||||||
dlong=dlong/44.d0
|
|
||||||
enddo
|
|
||||||
|
|
||||||
|
|
||||||
error=' '
|
|
||||||
if(wd.ne.w) then
|
|
||||||
error='ERROR'
|
|
||||||
write(*,1010) w,dlong0,wd,error
|
|
||||||
1010 format('"',a13,'"',f25.1,2x,'"',a13'"',2x,a5)
|
|
||||||
endif
|
|
||||||
if(mod(iter,1000).eq.0) print*,iter
|
|
||||||
enddo
|
|
||||||
|
|
||||||
999 end program t1
|
|
@ -1,25 +0,0 @@
|
|||||||
program t3
|
|
||||||
character*3 csec
|
|
||||||
character*70 line
|
|
||||||
logical eof
|
|
||||||
|
|
||||||
eof=.false.
|
|
||||||
j=1
|
|
||||||
do i=1,83
|
|
||||||
read(*,1001,end=1) csec
|
|
||||||
1001 format(a3)
|
|
||||||
go to 2
|
|
||||||
1 eof=.true.
|
|
||||||
2 line(j:j+5)='"'//csec//'",'
|
|
||||||
j=j+6
|
|
||||||
if(j.gt.60 .or. i.eq.83 .or.eof) then
|
|
||||||
line(j:j+2)=' &'
|
|
||||||
line(j+3:)=' '
|
|
||||||
write(*,1010) line
|
|
||||||
1010 format(a70)
|
|
||||||
j=1
|
|
||||||
endif
|
|
||||||
if(eof) go to 999
|
|
||||||
enddo
|
|
||||||
|
|
||||||
999 end program t3
|
|
8
lib/emedop.dat
Normal file
8
lib/emedop.dat
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Lat_A 40.35417
|
||||||
|
WLong_A 75.62500
|
||||||
|
Lat_B 45.1875
|
||||||
|
WLong_B -1.541667
|
||||||
|
TxFreqMHz 143.05
|
||||||
|
StartTime 20180907 08:00:00
|
||||||
|
StopTime 20180907 09:00:00
|
||||||
|
StepSec 60.0
|
67
lib/emedop.f90
Normal file
67
lib/emedop.f90
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
program emedop
|
||||||
|
|
||||||
|
real*8 txfreq8
|
||||||
|
real*8 rxfreq8
|
||||||
|
real*4 LST
|
||||||
|
real*4 lat_a
|
||||||
|
real*4 lat_b
|
||||||
|
character*80 infile
|
||||||
|
character*256 jpleph_file_name
|
||||||
|
common/jplcom/jpleph_file_name
|
||||||
|
data jpleph_file_name/'JPLEPH'/
|
||||||
|
|
||||||
|
nargs=iargc()
|
||||||
|
if(nargs.ne.1) then
|
||||||
|
print*,'Usage: emedop <infile>'
|
||||||
|
go to 999
|
||||||
|
endif
|
||||||
|
|
||||||
|
call getarg(1,infile)
|
||||||
|
open(10,file=infile,status='old',err=900)
|
||||||
|
read(10,1001) lat_a
|
||||||
|
1001 format(10x,f12.0)
|
||||||
|
read(10,1001) wlon_a
|
||||||
|
read(10,1001) lat_b
|
||||||
|
read(10,1001) wlon_b
|
||||||
|
read(10,1001) txfreq8
|
||||||
|
read(10,1002) nyear,month,nday,ih,im,is
|
||||||
|
1002 format(10x,i4,2i2,1x,i2,1x,i2,1x,i2)
|
||||||
|
sec_start=3600.0*ih + 60.0*im + is
|
||||||
|
read(10,1002) nyear,month,nday,ih,im,is
|
||||||
|
sec_stop=3600.0*ih + 60.0*im + is
|
||||||
|
read(10,1001) sec_step
|
||||||
|
|
||||||
|
write(*,1005)
|
||||||
|
1005 format(' Date UTC Tx Freq Rx Freq Doppler'/ &
|
||||||
|
'------------------------------------------------------')
|
||||||
|
|
||||||
|
sec=sec_start
|
||||||
|
ncalc=(sec_stop - sec_start)/sec_step
|
||||||
|
|
||||||
|
do icalc=1,ncalc
|
||||||
|
uth=sec/3600.0
|
||||||
|
call MoonDopJPL(nyear,month,nday,uth,-wlon_a,lat_a,RAMoon,DecMoon, &
|
||||||
|
LST,HA,AzMoon,ElMoon,vr_a,techo)
|
||||||
|
|
||||||
|
call MoonDopJPL(nyear,month,nday,uth,-wlon_b,lat_b,RAMoon,DecMoon, &
|
||||||
|
LST,HA,AzMoon,ElMoon,vr_b,techo)
|
||||||
|
|
||||||
|
dop_a=-txfreq8*vr_a/2.99792458e5 !One-way Doppler from a
|
||||||
|
dop_b=-txfreq8*vr_b/2.99792458e5 !One-way Doppler to b
|
||||||
|
doppler=1.e6*(dop_a + dop_b)
|
||||||
|
rxfreq8=txfreq8 + dop_a + dop_b
|
||||||
|
|
||||||
|
ih=sec/3600.0
|
||||||
|
im=(sec-ih*3600.0)/60.0
|
||||||
|
is=nint(mod(sec,60.0))
|
||||||
|
write(*,1010) nyear,month,nday,ih,im,is,txFreq8,rxFreq8,doppler
|
||||||
|
1010 format(i4,2i2.2,2x,i2.2,':',i2.2,':',i2.2,2f13.7,f8.1)
|
||||||
|
|
||||||
|
sec=sec + sec_step
|
||||||
|
enddo
|
||||||
|
go to 999
|
||||||
|
900 print*,'Cannot open file ',trim(infile)
|
||||||
|
999 end program emedop
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -59,7 +59,8 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
|
|||||||
QString const& rptSent, QString const& rptRcvd,
|
QString const& rptSent, QString const& rptRcvd,
|
||||||
QDateTime const& dateTimeOn, QDateTime const& dateTimeOff,
|
QDateTime const& dateTimeOn, QDateTime const& dateTimeOff,
|
||||||
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
|
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
|
||||||
bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, QString const& opCall)
|
bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox,
|
||||||
|
bool bAutoLog, QString const& opCall)
|
||||||
{
|
{
|
||||||
if(!isHidden()) return;
|
if(!isHidden()) return;
|
||||||
ui->call->setText(hisCall);
|
ui->call->setText(hisCall);
|
||||||
@ -87,7 +88,7 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
|
|||||||
m_myGrid=myGrid;
|
m_myGrid=myGrid;
|
||||||
ui->band->setText (m_config->bands ()->find (dialFreq));
|
ui->band->setText (m_config->bands ()->find (dialFreq));
|
||||||
ui->loggedOperator->setText(opCall);
|
ui->loggedOperator->setText(opCall);
|
||||||
if(bFox) {
|
if(bFox or bAutoLog) {
|
||||||
accept();
|
accept();
|
||||||
} else {
|
} else {
|
||||||
show ();
|
show ();
|
||||||
|
3
logqso.h
3
logqso.h
@ -33,7 +33,8 @@ public:
|
|||||||
QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn,
|
QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn,
|
||||||
QDateTime const& dateTimeOff,
|
QDateTime const& dateTimeOff,
|
||||||
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
|
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
|
||||||
bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, QString const& opCall);
|
bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox,
|
||||||
|
bool bAutoLog, QString const& opCall);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void accept();
|
void accept();
|
||||||
|
@ -1199,6 +1199,8 @@ void MainWindow::setContestType()
|
|||||||
if(m_config.bEU_VHF_Contest()) m_nContest=EU_VHF;
|
if(m_config.bEU_VHF_Contest()) m_nContest=EU_VHF;
|
||||||
if(m_config.bFieldDay()) m_nContest=FIELD_DAY;
|
if(m_config.bFieldDay()) m_nContest=FIELD_DAY;
|
||||||
if(m_config.bRTTYroundup()) m_nContest=RTTY;
|
if(m_config.bRTTYroundup()) m_nContest=RTTY;
|
||||||
|
if(m_config.bFox()) m_nContest=FOX;
|
||||||
|
if(m_config.bHound()) m_nContest=HOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::set_application_font (QFont const& font)
|
void MainWindow::set_application_font (QFont const& font)
|
||||||
@ -2388,7 +2390,7 @@ void MainWindow::on_actionAstronomical_data_toggled (bool checked)
|
|||||||
void MainWindow::on_actionFox_Log_triggered()
|
void MainWindow::on_actionFox_Log_triggered()
|
||||||
{
|
{
|
||||||
on_actionMessage_averaging_triggered();
|
on_actionMessage_averaging_triggered();
|
||||||
m_msgAvgWidget->foxLogSetup();
|
m_msgAvgWidget->foxLogSetup(m_nContest);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionColors_triggered()
|
void MainWindow::on_actionColors_triggered()
|
||||||
@ -2407,13 +2409,12 @@ void MainWindow::on_actionColors_triggered()
|
|||||||
|
|
||||||
void MainWindow::on_actionMessage_averaging_triggered()
|
void MainWindow::on_actionMessage_averaging_triggered()
|
||||||
{
|
{
|
||||||
if (!m_msgAvgWidget)
|
if(!m_msgAvgWidget) {
|
||||||
{
|
m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()});
|
||||||
m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()});
|
|
||||||
|
|
||||||
// Connect signals from Message Averaging window
|
// Connect signals from Message Averaging window
|
||||||
connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close);
|
connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close);
|
||||||
}
|
}
|
||||||
m_msgAvgWidget->showNormal();
|
m_msgAvgWidget->showNormal();
|
||||||
m_msgAvgWidget->raise ();
|
m_msgAvgWidget->raise ();
|
||||||
m_msgAvgWidget->activateWindow ();
|
m_msgAvgWidget->activateWindow ();
|
||||||
@ -3630,8 +3631,8 @@ void MainWindow::guiUpdate()
|
|||||||
if(m_config.id_after_73 ()) {
|
if(m_config.id_after_73 ()) {
|
||||||
icw[0] = m_ncw;
|
icw[0] = m_ncw;
|
||||||
}
|
}
|
||||||
if (m_config.prompt_to_log () && !m_tune) {
|
if ((m_config.prompt_to_log() or m_config.autoLog()) && !m_tune) {
|
||||||
logQSOTimer.start (0);
|
logQSOTimer.start(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3754,7 +3755,7 @@ void MainWindow::guiUpdate()
|
|||||||
|
|
||||||
//Once per second:
|
//Once per second:
|
||||||
if(nsec != m_sec0) {
|
if(nsec != m_sec0) {
|
||||||
// qDebug() << "OneSec:";
|
// qDebug() << "OneSec:" << m_nContest;
|
||||||
|
|
||||||
if(m_freqNominal!=0 and m_freqNominal<50000000 and m_config.enable_VHF_features()) {
|
if(m_freqNominal!=0 and m_freqNominal<50000000 and m_config.enable_VHF_features()) {
|
||||||
if(!m_bVHFwarned) vhfWarning();
|
if(!m_bVHFwarned) vhfWarning();
|
||||||
@ -5185,11 +5186,12 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button
|
|||||||
if (dateTimeQSOOff < m_dateTimeQSOOn) dateTimeQSOOff = m_dateTimeQSOOn;
|
if (dateTimeQSOOff < m_dateTimeQSOOn) dateTimeQSOOff = m_dateTimeQSOOn;
|
||||||
QString grid=m_hisGrid;
|
QString grid=m_hisGrid;
|
||||||
if(grid=="....") grid="";
|
if(grid=="....") grid="";
|
||||||
|
bool bAutoLog=m_config.autoLog() and m_nContest>0;
|
||||||
m_logDlg->initLogQSO (m_hisCall, grid, m_modeTx, m_rptSent, m_rptRcvd,
|
m_logDlg->initLogQSO (m_hisCall, grid, m_modeTx, m_rptSent, m_rptRcvd,
|
||||||
m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(),
|
m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(),
|
||||||
m_config.my_callsign(), m_config.my_grid(), m_noSuffix,
|
m_config.my_callsign(), m_config.my_grid(), m_noSuffix,
|
||||||
m_config.log_as_RTTY(), m_config.report_in_comments(),
|
m_config.log_as_RTTY(), m_config.report_in_comments(),
|
||||||
m_config.bFox(), m_opCall);
|
m_config.bFox(), bAutoLog, m_opCall);
|
||||||
if(m_nContest!=NONE) {
|
if(m_nContest!=NONE) {
|
||||||
if(m_nContest==NA_VHF) {
|
if(m_nContest==NA_VHF) {
|
||||||
m_xSent=m_config.my_grid().left(4);
|
m_xSent=m_config.my_grid().left(4);
|
||||||
@ -5217,6 +5219,13 @@ void MainWindow::cabLog()
|
|||||||
QTextStream out(&f);
|
QTextStream out(&f);
|
||||||
out << t << endl;
|
out << t << endl;
|
||||||
f.close();
|
f.close();
|
||||||
|
if(m_msgAvgWidget != NULL and m_msgAvgWidget->isVisible()) {
|
||||||
|
QString band;
|
||||||
|
band.sprintf(" %5d ",nfreq);
|
||||||
|
t=QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hhmm ") + band +
|
||||||
|
m_hisCall.leftJustified(13,' ') + m_xSent.leftJustified(14,' ') + m_xRcvd;
|
||||||
|
m_msgAvgWidget->foxAddLog(t);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
MessageBox::warning_message (this, tr("File Open Error"),
|
MessageBox::warning_message (this, tr("File Open Error"),
|
||||||
tr("Cannot open \"%1\" for append: %2").arg(f.fileName()).arg(f.errorString()));
|
tr("Cannot open \"%1\" for append: %2").arg(f.fileName()).arg(f.errorString()));
|
||||||
@ -6773,7 +6782,7 @@ void::MainWindow::VHF_features_enabled(bool b)
|
|||||||
ui->actionMessage_averaging->setEnabled(b);
|
ui->actionMessage_averaging->setEnabled(b);
|
||||||
ui->actionEnable_AP_DXcall->setVisible (m_mode=="QRA64");
|
ui->actionEnable_AP_DXcall->setVisible (m_mode=="QRA64");
|
||||||
ui->actionEnable_AP_JT65->setVisible (b && m_mode=="JT65");
|
ui->actionEnable_AP_JT65->setVisible (b && m_mode=="JT65");
|
||||||
if(!b && m_msgAvgWidget and !m_config.bFox()) {
|
if(!b && m_msgAvgWidget and !m_config.bFox() and !m_config.autoLog()) {
|
||||||
if(m_msgAvgWidget->isVisible()) m_msgAvgWidget->close();
|
if(m_msgAvgWidget->isVisible()) m_msgAvgWidget->close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -518,7 +518,9 @@ private:
|
|||||||
NA_VHF,
|
NA_VHF,
|
||||||
EU_VHF,
|
EU_VHF,
|
||||||
FIELD_DAY,
|
FIELD_DAY,
|
||||||
RTTY
|
RTTY,
|
||||||
|
FOX,
|
||||||
|
HOUND
|
||||||
} m_nContest; //Contest type
|
} m_nContest; //Contest type
|
||||||
|
|
||||||
enum {CALL, GRID, DXCC, MULT};
|
enum {CALL, GRID, DXCC, MULT};
|
||||||
|
@ -656,7 +656,7 @@ QLabel[oob="true"] {
|
|||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>50</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -700,7 +700,7 @@ QLabel[oob="true"] {
|
|||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>50</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -3275,13 +3275,13 @@ QPushButton[state="ok"] {
|
|||||||
</action>
|
</action>
|
||||||
<action name="actionFox_Log">
|
<action name="actionFox_Log">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Fox Log</string>
|
<string>Fox or Contest Log</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="iconText">
|
<property name="iconText">
|
||||||
<string>Fox Log</string>
|
<string>Fox or Contest Log</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Fox Log</string>
|
<string>Fox or Contest Log</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionErase_FoxQSO_txt">
|
<action name="actionErase_FoxQSO_txt">
|
||||||
@ -3304,6 +3304,11 @@ QPushButton[state="ok"] {
|
|||||||
<string>Color highlighting scheme</string>
|
<string>Color highlighting scheme</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionContest_Log">
|
||||||
|
<property name="text">
|
||||||
|
<string>Contest Log</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
@ -20,6 +20,8 @@ MessageAveraging::MessageAveraging(QSettings * settings, QFont const& font, QWid
|
|||||||
read_settings ();
|
read_settings ();
|
||||||
if(m_title_.contains("Fox")) {
|
if(m_title_.contains("Fox")) {
|
||||||
ui->header_label->setText(" Date Time Call Grid Sent Rcvd Band");
|
ui->header_label->setText(" Date Time Call Grid Sent Rcvd Band");
|
||||||
|
} else if(m_title_.contains("Contest")) {
|
||||||
|
ui->header_label->setText(" Date UTC Band Call Sent Rcvd");
|
||||||
} else {
|
} else {
|
||||||
ui->header_label->setText(" UTC Sync DT Freq ");
|
ui->header_label->setText(" UTC Sync DT Freq ");
|
||||||
ui->lab1->setVisible(false);
|
ui->lab1->setVisible(false);
|
||||||
@ -88,11 +90,18 @@ void MessageAveraging::displayAvg(QString const& t)
|
|||||||
ui->msgAvgPlainTextEdit->setPlainText(t);
|
ui->msgAvgPlainTextEdit->setPlainText(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageAveraging::foxLogSetup()
|
void MessageAveraging::foxLogSetup(int nContest)
|
||||||
{
|
{
|
||||||
m_title_=QApplication::applicationName () + " - Fox Log";
|
if(nContest==5) {
|
||||||
setWindowTitle(m_title_);
|
m_title_=QApplication::applicationName () + " - Fox Log";
|
||||||
ui->header_label->setText(" Date Time Call Grid Sent Rcvd Band");
|
setWindowTitle(m_title_);
|
||||||
|
ui->header_label->setText(" Date Time Call Grid Sent Rcvd Band");
|
||||||
|
}
|
||||||
|
if(nContest>0 and nContest<5) {
|
||||||
|
m_title_=QApplication::applicationName () + " - Contest Log";
|
||||||
|
setWindowTitle(m_title_);
|
||||||
|
ui->header_label->setText(" Date UTC Band Call Sent Rcvd");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageAveraging::foxLabCallers(int n)
|
void MessageAveraging::foxLabCallers(int n)
|
||||||
|
@ -17,7 +17,7 @@ public:
|
|||||||
~MessageAveraging();
|
~MessageAveraging();
|
||||||
void displayAvg(QString const&);
|
void displayAvg(QString const&);
|
||||||
void changeFont (QFont const&);
|
void changeFont (QFont const&);
|
||||||
void foxLogSetup();
|
void foxLogSetup(int nContest);
|
||||||
void foxLabCallers(int n);
|
void foxLabCallers(int n);
|
||||||
void foxLabQueued(int n);
|
void foxLabQueued(int n);
|
||||||
void foxLabRate(int n);
|
void foxLabRate(int n);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user