mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05: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_FieldDay_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 :(
 | 
			
		||||
  Q_SIGNAL void start_transceiver (unsigned seqeunce_number) const;
 | 
			
		||||
@ -579,6 +581,7 @@ private:
 | 
			
		||||
  bool log_as_RTTY_;
 | 
			
		||||
  bool report_in_comments_;
 | 
			
		||||
  bool prompt_to_log_;
 | 
			
		||||
  bool autoLog_;
 | 
			
		||||
  bool insert_blank_;
 | 
			
		||||
  bool DXCC_;
 | 
			
		||||
  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::report_in_comments () const {return m_->report_in_comments_;}
 | 
			
		||||
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::DXCC () const {return m_->DXCC_;}
 | 
			
		||||
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_->report_in_comments_check_box->setChecked (report_in_comments_);
 | 
			
		||||
  ui_->prompt_to_log_check_box->setChecked (prompt_to_log_);
 | 
			
		||||
  ui_->cbAutoLog->setChecked(autoLog_);
 | 
			
		||||
  ui_->insert_blank_check_box->setChecked (insert_blank_);
 | 
			
		||||
  ui_->DXCC_check_box->setChecked (DXCC_);
 | 
			
		||||
  ui_->ppfx_check_box->setChecked (ppfx_);
 | 
			
		||||
@ -1466,6 +1471,7 @@ void Configuration::impl::read_settings ()
 | 
			
		||||
  rig_params_.ptt_port = settings_->value ("PTTport").toString ();
 | 
			
		||||
  data_mode_ = settings_->value ("DataMode", QVariant::fromValue (data_mode_none)).value<Configuration::DataMode> ();
 | 
			
		||||
  prompt_to_log_ = settings_->value ("PromptToLog", false).toBool ();
 | 
			
		||||
  autoLog_ = settings_->value ("AutoLog", false).toBool ();
 | 
			
		||||
  insert_blank_ = settings_->value ("InsertBlank", false).toBool ();
 | 
			
		||||
  DXCC_ = settings_->value ("DXCCEntity", 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 ("DataMode", QVariant::fromValue (data_mode_));
 | 
			
		||||
  settings_->setValue ("PromptToLog", prompt_to_log_);
 | 
			
		||||
  settings_->setValue ("AutoLog", autoLog_);
 | 
			
		||||
  settings_->setValue ("InsertBlank", insert_blank_);
 | 
			
		||||
  settings_->setValue ("DXCCEntity", DXCC_);
 | 
			
		||||
  settings_->setValue ("PrincipalPrefix", ppfx_);
 | 
			
		||||
@ -1999,6 +2006,7 @@ void Configuration::impl::accept ()
 | 
			
		||||
  log_as_RTTY_ = ui_->log_as_RTTY_check_box->isChecked ();
 | 
			
		||||
  report_in_comments_ = ui_->report_in_comments_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 ();
 | 
			
		||||
  DXCC_ = ui_->DXCC_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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
  if(checked) {
 | 
			
		||||
 | 
			
		||||
@ -115,6 +115,7 @@ public:
 | 
			
		||||
  bool log_as_RTTY () const;
 | 
			
		||||
  bool report_in_comments () const;
 | 
			
		||||
  bool prompt_to_log () const;
 | 
			
		||||
  bool autoLog() const;
 | 
			
		||||
  bool insert_blank () const;
 | 
			
		||||
  bool DXCC () const;
 | 
			
		||||
  bool ppfx() const;
 | 
			
		||||
 | 
			
		||||
@ -1702,24 +1702,7 @@ QListView::item:hover {
 | 
			
		||||
            </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="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">
 | 
			
		||||
          <item row="3" column="0">
 | 
			
		||||
           <widget class="QCheckBox" name="report_in_comments_check_box">
 | 
			
		||||
            <property name="toolTip">
 | 
			
		||||
             <string>Some logging programs will not accept the type of reports
 | 
			
		||||
@ -1732,7 +1715,7 @@ comments field.</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="3" column="0" colspan="2">
 | 
			
		||||
          <item row="4" column="0" colspan="2">
 | 
			
		||||
           <widget class="QCheckBox" name="clear_DX_check_box">
 | 
			
		||||
            <property name="toolTip">
 | 
			
		||||
             <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>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </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>
 | 
			
		||||
        </widget>
 | 
			
		||||
       </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,
 | 
			
		||||
                        QDateTime const& dateTimeOn, QDateTime const& dateTimeOff,
 | 
			
		||||
                        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;
 | 
			
		||||
  ui->call->setText(hisCall);
 | 
			
		||||
@ -87,7 +88,7 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
 | 
			
		||||
  m_myGrid=myGrid;
 | 
			
		||||
  ui->band->setText (m_config->bands ()->find (dialFreq));
 | 
			
		||||
  ui->loggedOperator->setText(opCall);
 | 
			
		||||
  if(bFox) {
 | 
			
		||||
  if(bFox or bAutoLog) {
 | 
			
		||||
    accept();
 | 
			
		||||
  } else {
 | 
			
		||||
    show ();
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								logqso.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								logqso.h
									
									
									
									
									
								
							@ -33,7 +33,8 @@ public:
 | 
			
		||||
                  QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn,
 | 
			
		||||
                  QDateTime const& dateTimeOff,
 | 
			
		||||
                  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:
 | 
			
		||||
  void accept();
 | 
			
		||||
 | 
			
		||||
@ -1199,6 +1199,8 @@ void MainWindow::setContestType()
 | 
			
		||||
  if(m_config.bEU_VHF_Contest()) m_nContest=EU_VHF;
 | 
			
		||||
  if(m_config.bFieldDay()) m_nContest=FIELD_DAY;
 | 
			
		||||
  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)
 | 
			
		||||
@ -2388,7 +2390,7 @@ void MainWindow::on_actionAstronomical_data_toggled (bool checked)
 | 
			
		||||
void MainWindow::on_actionFox_Log_triggered()
 | 
			
		||||
{
 | 
			
		||||
  on_actionMessage_averaging_triggered();
 | 
			
		||||
  m_msgAvgWidget->foxLogSetup();
 | 
			
		||||
  m_msgAvgWidget->foxLogSetup(m_nContest);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionColors_triggered()
 | 
			
		||||
@ -2407,13 +2409,12 @@ void MainWindow::on_actionColors_triggered()
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionMessage_averaging_triggered()
 | 
			
		||||
{
 | 
			
		||||
  if (!m_msgAvgWidget)
 | 
			
		||||
    {
 | 
			
		||||
      m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()});
 | 
			
		||||
  if(!m_msgAvgWidget) {
 | 
			
		||||
    m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()});
 | 
			
		||||
 | 
			
		||||
      // Connect signals from Message Averaging window
 | 
			
		||||
      connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close);
 | 
			
		||||
    }
 | 
			
		||||
    // Connect signals from Message Averaging window
 | 
			
		||||
    connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close);
 | 
			
		||||
  }
 | 
			
		||||
  m_msgAvgWidget->showNormal();
 | 
			
		||||
  m_msgAvgWidget->raise ();
 | 
			
		||||
  m_msgAvgWidget->activateWindow ();
 | 
			
		||||
@ -3630,8 +3631,8 @@ void MainWindow::guiUpdate()
 | 
			
		||||
      if(m_config.id_after_73 ()) {
 | 
			
		||||
        icw[0] = m_ncw;
 | 
			
		||||
      }
 | 
			
		||||
      if (m_config.prompt_to_log () && !m_tune) {
 | 
			
		||||
        logQSOTimer.start (0);
 | 
			
		||||
      if ((m_config.prompt_to_log() or m_config.autoLog()) && !m_tune) {
 | 
			
		||||
        logQSOTimer.start(0);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -3754,7 +3755,7 @@ void MainWindow::guiUpdate()
 | 
			
		||||
 | 
			
		||||
//Once per second:
 | 
			
		||||
  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_bVHFwarned) vhfWarning();
 | 
			
		||||
@ -5185,11 +5186,12 @@ void MainWindow::on_logQSOButton_clicked()                 //Log QSO button
 | 
			
		||||
  if (dateTimeQSOOff < m_dateTimeQSOOn) dateTimeQSOOff = m_dateTimeQSOOn;
 | 
			
		||||
  QString grid=m_hisGrid;
 | 
			
		||||
  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_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(),
 | 
			
		||||
                        m_config.my_callsign(), m_config.my_grid(), m_noSuffix,
 | 
			
		||||
                        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==NA_VHF) {
 | 
			
		||||
      m_xSent=m_config.my_grid().left(4);
 | 
			
		||||
@ -5217,6 +5219,13 @@ void MainWindow::cabLog()
 | 
			
		||||
    QTextStream out(&f);
 | 
			
		||||
    out << t << endl;
 | 
			
		||||
    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 {
 | 
			
		||||
    MessageBox::warning_message (this, tr("File Open Error"),
 | 
			
		||||
      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->actionEnable_AP_DXcall->setVisible (m_mode=="QRA64");
 | 
			
		||||
  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();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -518,7 +518,9 @@ private:
 | 
			
		||||
    NA_VHF,
 | 
			
		||||
    EU_VHF,
 | 
			
		||||
    FIELD_DAY,
 | 
			
		||||
    RTTY
 | 
			
		||||
    RTTY,
 | 
			
		||||
    FOX,
 | 
			
		||||
    HOUND
 | 
			
		||||
  } m_nContest;           //Contest type
 | 
			
		||||
 | 
			
		||||
  enum {CALL, GRID, DXCC, MULT};
 | 
			
		||||
 | 
			
		||||
@ -656,7 +656,7 @@ QLabel[oob="true"] {
 | 
			
		||||
                   </property>
 | 
			
		||||
                   <property name="maximumSize">
 | 
			
		||||
                    <size>
 | 
			
		||||
                     <width>20</width>
 | 
			
		||||
                     <width>50</width>
 | 
			
		||||
                     <height>20</height>
 | 
			
		||||
                    </size>
 | 
			
		||||
                   </property>
 | 
			
		||||
@ -700,7 +700,7 @@ QLabel[oob="true"] {
 | 
			
		||||
                   </property>
 | 
			
		||||
                   <property name="maximumSize">
 | 
			
		||||
                    <size>
 | 
			
		||||
                     <width>20</width>
 | 
			
		||||
                     <width>50</width>
 | 
			
		||||
                     <height>20</height>
 | 
			
		||||
                    </size>
 | 
			
		||||
                   </property>
 | 
			
		||||
@ -3275,13 +3275,13 @@ QPushButton[state="ok"] {
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="actionFox_Log">
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>Fox Log</string>
 | 
			
		||||
    <string>Fox or Contest Log</string>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="iconText">
 | 
			
		||||
    <string>Fox Log</string>
 | 
			
		||||
    <string>Fox or Contest Log</string>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="toolTip">
 | 
			
		||||
    <string>Fox Log</string>
 | 
			
		||||
    <string>Fox or Contest Log</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="actionErase_FoxQSO_txt">
 | 
			
		||||
@ -3304,6 +3304,11 @@ QPushButton[state="ok"] {
 | 
			
		||||
    <string>Color highlighting scheme</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="actionContest_Log">
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>Contest Log</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
 | 
			
		||||
@ -20,6 +20,8 @@ MessageAveraging::MessageAveraging(QSettings * settings, QFont const& font, QWid
 | 
			
		||||
  read_settings ();
 | 
			
		||||
  if(m_title_.contains("Fox")) {
 | 
			
		||||
    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 {
 | 
			
		||||
    ui->header_label->setText("   UTC  Sync    DT  Freq   ");
 | 
			
		||||
    ui->lab1->setVisible(false);
 | 
			
		||||
@ -88,11 +90,18 @@ void MessageAveraging::displayAvg(QString const& t)
 | 
			
		||||
  ui->msgAvgPlainTextEdit->setPlainText(t);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MessageAveraging::foxLogSetup()
 | 
			
		||||
void MessageAveraging::foxLogSetup(int nContest)
 | 
			
		||||
{
 | 
			
		||||
  m_title_=QApplication::applicationName () + " - Fox Log";
 | 
			
		||||
  setWindowTitle(m_title_);
 | 
			
		||||
  ui->header_label->setText("   Date    Time  Call    Grid Sent Rcvd Band");
 | 
			
		||||
  if(nContest==5) {
 | 
			
		||||
    m_title_=QApplication::applicationName () + " - Fox Log";
 | 
			
		||||
    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)
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ public:
 | 
			
		||||
  ~MessageAveraging();
 | 
			
		||||
  void displayAvg(QString const&);
 | 
			
		||||
  void changeFont (QFont const&);
 | 
			
		||||
  void foxLogSetup();
 | 
			
		||||
  void foxLogSetup(int nContest);
 | 
			
		||||
  void foxLabCallers(int n);
 | 
			
		||||
  void foxLabQueued(int n);
 | 
			
		||||
  void foxLabRate(int n);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user