mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	Merge branch 'develop' into feat-fst280
This commit is contained in:
		
						commit
						d5c5a58c7f
					
				| @ -230,7 +230,7 @@ namespace | ||||
|           |IL|IN|KS|KY|LA|LAX|MAR|MB|MDC | ||||
|           |ME|MI|MN|MO|MS|MT|NC|ND|NE|NFL | ||||
|           |NH|NL|NLI|NM|NNJ|NNY|NT|NTX|NV | ||||
|           |OH|OK|ONE|ONN|ONS|OR|ORG|PAC | ||||
|           |OH|OK|ONE|ONN|ONS|OR|ORG|PAC|PE | ||||
|           |PR|QC|RI|SB|SC|SCV|SD|SDG|SF | ||||
|           |SFL|SJV|SK|SNJ|STX|SV|TN|UT|VA | ||||
|           |VI|VT|WCF|WI|WMA|WNY|WPA|WTX | ||||
|  | ||||
							
								
								
									
										26
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								NEWS
									
									
									
									
									
								
							| @ -13,6 +13,32 @@ | ||||
| Copyright 2001 - 2020 by Joe Taylor, K1JT. | ||||
| 
 | ||||
| 
 | ||||
| 		  Release: WSJT-X 2.2.2 | ||||
| 		       June 22, 2020 | ||||
| 		  --------------------- | ||||
| 
 | ||||
| WSJT-X v2.2.2 is a bug fix release, mainly to incorporate the new RAC | ||||
| section PE into the FT8/FT4/MSK144 Contest Mode for Field Day. | ||||
| 
 | ||||
|  - Stations intending to operate in Field Day (FD) are urged to | ||||
|    upgrade to this release, without it you cannot set your section to | ||||
|    PE, and of equal importance you cannot decode contest messages from | ||||
|    stations who are operating from PE without this upgrade. | ||||
| 
 | ||||
|  - FT8 decoder speeded up in Normal and Fast modes. This change gives | ||||
|    a speed of decoding closer to that of v2.1.2 without compromising | ||||
|    the number of decodes. It is particularly targeted for slower | ||||
|    single board computer users such as the Raspberry Pi Model 3 or | ||||
|    similar. | ||||
| 
 | ||||
|  - Thanks to our user interface language translation contributors for | ||||
|    many improvements to the translated strings. | ||||
| 
 | ||||
|  - The DX Grid field is now cleared automatically when the DX Call | ||||
|    field is changed. Care should be taken to complete entry of a | ||||
|    callsign before entering a grid square. | ||||
| 
 | ||||
| 
 | ||||
| 		  Release: WSJT-X 2.2.1 | ||||
| 		       June 6, 2020 | ||||
| 		  --------------------- | ||||
|  | ||||
| @ -425,28 +425,23 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString | ||||
| { | ||||
| #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) | ||||
|   connect (&*m_, static_cast<void (impl::*) (impl::SocketError)> (&impl::error) | ||||
|            , [this] (impl::SocketError e) | ||||
|            { | ||||
| #if defined (Q_OS_WIN) | ||||
|              if (e != impl::NetworkError // take this out when Qt 5.5
 | ||||
|                                          // stops doing this
 | ||||
|                                          // spuriously
 | ||||
|                  && e != impl::ConnectionRefusedError) // not
 | ||||
|                                                        // interested
 | ||||
|                                                        // in this with
 | ||||
|                                                        // UDP socket
 | ||||
|            , [this] (impl::SocketError e) { | ||||
| #else | ||||
|              Q_UNUSED (e); | ||||
|   connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError e) { | ||||
| #endif | ||||
| #if defined (Q_OS_WIN) | ||||
|                                          // take this out when Qt 5.5 stops doing this spuriously
 | ||||
|                                          if (e != impl::NetworkError | ||||
|                                              // not interested in this with UDP socket
 | ||||
|                                              && e != impl::ConnectionRefusedError) | ||||
| #else | ||||
|                Q_UNUSED (e); | ||||
| #endif | ||||
|                { | ||||
|                  Q_EMIT error (m_->errorString ()); | ||||
|                } | ||||
|            }); | ||||
| #else | ||||
|   connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError) { | ||||
|                                          Q_EMIT error (m_->errorString ()); | ||||
|                                        }); | ||||
| #endif | ||||
| 
 | ||||
|   set_server (server); | ||||
| } | ||||
| 
 | ||||
| @ -573,7 +568,7 @@ void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QStr | ||||
|                                 , QString const& comments, QString const& name, QDateTime time_on | ||||
|                                 , QString const& operator_call, QString const& my_call | ||||
|                                 , QString const& my_grid, QString const& exchange_sent | ||||
|                                 , QString const& exchange_rcvd) | ||||
|                                 , QString const& exchange_rcvd, QString const& propmode) | ||||
| { | ||||
|    if (m_->server_port_ && !m_->server_string_.isEmpty ()) | ||||
|     { | ||||
| @ -582,8 +577,8 @@ void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QStr | ||||
|       out << time_off << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 () | ||||
|           << report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 () | ||||
|           << name.toUtf8 () << time_on << operator_call.toUtf8 () << my_call.toUtf8 () << my_grid.toUtf8 () | ||||
|           << exchange_sent.toUtf8 () << exchange_rcvd.toUtf8 (); | ||||
|       TRACE_UDP ("time off:" << time_off << "DX:" << dx_call << "DX grid:" << dx_grid << "dial:" << dial_frequency << "mode:" << mode << "sent:" << report_sent << "rcvd:" << report_received << "pwr:" << tx_power << "comments:" << comments << "name:" << name << "time on:" << time_on << "op:" << operator_call << "DE:" << my_call << "DE grid:" << my_grid << "exch sent:" << exchange_sent << "exch rcvd:" << exchange_rcvd); | ||||
|           << exchange_sent.toUtf8 () << exchange_rcvd.toUtf8 () << propmode.toUtf8 (); | ||||
|       TRACE_UDP ("time off:" << time_off << "DX:" << dx_call << "DX grid:" << dx_grid << "dial:" << dial_frequency << "mode:" << mode << "sent:" << report_sent << "rcvd:" << report_received << "pwr:" << tx_power << "comments:" << comments << "name:" << name << "time on:" << time_on << "op:" << operator_call << "DE:" << my_call << "DE grid:" << my_grid << "exch sent:" << exchange_sent << "exch rcvd:" << exchange_rcvd  << "prop_mode:" << propmode); | ||||
|       m_->send_message (out, message); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -69,7 +69,8 @@ public: | ||||
|                           , QString const& report_received, QString const& tx_power, QString const& comments | ||||
|                           , QString const& name, QDateTime time_on, QString const& operator_call | ||||
|                           , QString const& my_call, QString const& my_grid | ||||
|                           , QString const& exchange_sent, QString const& exchange_rcvd); | ||||
|                           , QString const& exchange_sent, QString const& exchange_rcvd | ||||
|                           , QString const& propmode); | ||||
| 
 | ||||
|   // ADIF_record argument should be valid ADIF excluding any <EOR> end
 | ||||
|   // of record marker
 | ||||
|  | ||||
| @ -308,6 +308,7 @@ | ||||
|  *                         My grid                utf8 | ||||
|  *                         Exchange sent          utf8 | ||||
|  *                         Exchange received      utf8 | ||||
|  *                         ADIF Propagation mode  utf8 | ||||
|  * | ||||
|  *      The  QSO logged  message is  sent  to the  server(s) when  the | ||||
|  *      WSJT-X user accepts the "Log  QSO" dialog by clicking the "OK" | ||||
|  | ||||
| @ -13,6 +13,32 @@ | ||||
| Copyright 2001 - 2020 by Joe Taylor, K1JT. | ||||
| 
 | ||||
| 
 | ||||
| 		  Release: WSJT-X 2.2.2 | ||||
| 		       June 22, 2020 | ||||
| 		  --------------------- | ||||
| 
 | ||||
| WSJT-X v2.2.2 is a bug fix release, mainly to incorporate the new RAC | ||||
| section PE into the FT8/FT4/MSK144 Contest Mode for Field Day. | ||||
| 
 | ||||
|  - Stations intending to operate in Field Day (FD) are urged to | ||||
|    upgrade to this release, without it you cannot set your section to | ||||
|    PE, and of equal importance you cannot decode contest messages from | ||||
|    stations who are operating from PE without this upgrade. | ||||
| 
 | ||||
|  - FT8 decoder speeded up in Normal and Fast modes. This change gives | ||||
|    a speed of decoding closer to that of v2.1.2 without compromising | ||||
|    the number of decodes. It is particularly targeted for slower | ||||
|    single board computer users such as the Raspberry Pi Model 3 or | ||||
|    similar. | ||||
| 
 | ||||
|  - Thanks to our user interface language translation contributors for | ||||
|    many improvements to the translated strings. | ||||
| 
 | ||||
|  - The DX Grid field is now cleared automatically when the DX Call | ||||
|    field is changed. Care should be taken to complete entry of a | ||||
|    callsign before entering a grid square. | ||||
| 
 | ||||
| 
 | ||||
| 		  Release: WSJT-X 2.2.1 | ||||
| 		       June 6, 2020 | ||||
| 		  --------------------- | ||||
|  | ||||
| @ -25,8 +25,9 @@ namespace | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Operator"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "My Call"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "My Grid"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exchange Sent"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exchange Rcvd"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exch Sent"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exch Rcvd"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Prop"), | ||||
|     QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Comments"), | ||||
|   }; | ||||
| } | ||||
| @ -212,7 +213,8 @@ void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime time | ||||
|                                            , QString const& tx_power, QString const& comments | ||||
|                                            , QString const& name, QDateTime time_on, QString const& operator_call | ||||
|                                            , QString const& my_call, QString const& my_grid | ||||
|                                            , QString const& exchange_sent, QString const& exchange_rcvd) | ||||
|                                            , QString const& exchange_sent, QString const& exchange_rcvd | ||||
|                                            , QString const& prop_mode) | ||||
| { | ||||
|   QList<QStandardItem *> row; | ||||
|   row << new QStandardItem {time_on.toString ("dd-MMM-yyyy hh:mm:ss")} | ||||
| @ -230,6 +232,7 @@ void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime time | ||||
|   << new QStandardItem {my_grid} | ||||
|   << new QStandardItem {exchange_sent} | ||||
|   << new QStandardItem {exchange_rcvd} | ||||
|   << new QStandardItem {prop_mode} | ||||
|   << new QStandardItem {comments}; | ||||
|   log_->appendRow (row); | ||||
|   log_table_view_->resizeColumnsToContents (); | ||||
|  | ||||
| @ -33,7 +33,7 @@ public: | ||||
|                        , QString const& report_received, QString const& tx_power, QString const& comments | ||||
|                        , QString const& name, QDateTime time_on, QString const& operator_call | ||||
|                        , QString const& my_call, QString const& my_grid | ||||
|                        , QString const& exchange_sent, QString const& exchange_rcvd); | ||||
|                        , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode); | ||||
| 
 | ||||
| private: | ||||
|   void add_client (QString const& id, QString const& version, QString const& revision); | ||||
|  | ||||
| @ -345,9 +345,10 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s | ||||
|                 QByteArray my_grid; | ||||
|                 QByteArray exchange_sent; | ||||
|                 QByteArray exchange_rcvd; | ||||
|                 QByteArray prop_mode; | ||||
|                 in >> time_off >> dx_call >> dx_grid >> dial_frequency >> mode >> report_sent >> report_received | ||||
|                    >> tx_power >> comments >> name >> time_on >> operator_call >> my_call >> my_grid | ||||
|                    >> exchange_sent >> exchange_rcvd; | ||||
|                    >> exchange_sent >> exchange_rcvd >> prop_mode; | ||||
|                 if (check_status (in) != Fail) | ||||
|                   { | ||||
|                     Q_EMIT self_->qso_logged (id, time_off, QString::fromUtf8 (dx_call), QString::fromUtf8 (dx_grid) | ||||
| @ -356,7 +357,7 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s | ||||
|                                               , QString::fromUtf8 (comments), QString::fromUtf8 (name), time_on | ||||
|                                               , QString::fromUtf8 (operator_call), QString::fromUtf8 (my_call) | ||||
|                                               , QString::fromUtf8 (my_grid), QString::fromUtf8 (exchange_sent) | ||||
|                                               , QString::fromUtf8 (exchange_rcvd)); | ||||
|                                               , QString::fromUtf8 (exchange_rcvd), QString::fromUtf8 (prop_mode)); | ||||
|                   } | ||||
|               } | ||||
|               break; | ||||
|  | ||||
| @ -106,7 +106,7 @@ public: | ||||
|                             , QString const& report_received, QString const& tx_power, QString const& comments | ||||
|                             , QString const& name, QDateTime time_on, QString const& operator_call | ||||
|                             , QString const& my_call, QString const& my_grid | ||||
|                             , QString const& exchange_sent, QString const& exchange_rcvd); | ||||
|                             , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode); | ||||
|   Q_SIGNAL void decodes_cleared (QString const& id); | ||||
|   Q_SIGNAL void logged_ADIF (QString const& id, QByteArray const& ADIF); | ||||
| 
 | ||||
|  | ||||
| @ -102,7 +102,7 @@ public: | ||||
|                           , QString const& report_received, QString const& tx_power | ||||
|                           , QString const& comments, QString const& name, QDateTime time_on | ||||
|                           , QString const& operator_call, QString const& my_call, QString const& my_grid | ||||
|                           , QString const& exchange_sent, QString const& exchange_rcvd) | ||||
|                           , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode) | ||||
|   { | ||||
|       if (client_id == id_) | ||||
|       { | ||||
| @ -111,12 +111,13 @@ public: | ||||
|                   << "rpt_rcvd:" << report_received << "Tx_pwr:" << tx_power << "comments:" << comments | ||||
|                   << "name:" << name << "operator_call:" << operator_call << "my_call:" << my_call | ||||
|                   << "my_grid:" << my_grid << "exchange_sent:" << exchange_sent | ||||
|                   << "exchange_rcvd:" << exchange_rcvd; | ||||
|                   << "exchange_rcvd:" << exchange_rcvd << "prop_mode:" << prop_mode; | ||||
|         std::cout << QByteArray {80, '-'}.data () << '\n'; | ||||
|         std::cout << tr ("%1: Logged %2 grid: %3 power: %4 sent: %5 recd: %6 freq: %7 time_off: %8 op: %9 my_call: %10 my_grid: %11") | ||||
|         std::cout << tr ("%1: Logged %2 grid: %3 power: %4 sent: %5 recd: %6 freq: %7 time_off: %8 op: %9 my_call: %10 my_grid: %11 exchange_sent: %12 exchange_rcvd: %13 comments: %14 prop_mode: %15") | ||||
|           .arg (id_).arg (dx_call).arg (dx_grid).arg (tx_power).arg (report_sent).arg (report_received) | ||||
|           .arg (dial_frequency).arg (time_off.toString("yyyy-MM-dd hh:mm:ss.z")).arg (operator_call) | ||||
|           .arg (my_call).arg (my_grid).toStdString () | ||||
|           .arg (my_call).arg (my_grid).arg (exchange_sent).arg (exchange_rcvd) | ||||
|           .arg (comments).arg (prop_mode).toStdString () | ||||
|                   << std::endl; | ||||
|       } | ||||
|   } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| // Status=edited | ||||
| 
 | ||||
| Download and execute the package file {win32} (WinXP, Vista, Win 7, | ||||
| Win 8, Win10, 32-bit) or {win64} (Vista, Win 7, Win 8, Win10, 64-bit) | ||||
| Download and execute the package file {win32} (Win 7, | ||||
| Win 8, Win10, 32-bit) or {win64} (Win 7, Win 8, Win10, 64-bit) | ||||
| following these instructions: | ||||
| 
 | ||||
| * Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `C:\WSJT\WSJTX`, rather than the conventional location `C:\Program | ||||
|  | ||||
| @ -196,7 +196,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) | ||||
| ! the value of nrx is used to decide when mycall13 or dxcall13 should | ||||
| ! be used in place of a callsign from the hashtable | ||||
| ! | ||||
|   parameter (NSEC=84)      !Number of ARRL Sections | ||||
|   parameter (NSEC=85)      !Number of ARRL Sections | ||||
|   parameter (NUSCAN=65)    !Number of US states and Canadian provinces | ||||
|   parameter (MAXGRID4=32400) | ||||
|   integer*8 n58 | ||||
| @ -228,7 +228,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) | ||||
|        "ONS","OR ","ORG","PAC","PR ","QC ","RI ","SB ","SC ","SCV",  &        | ||||
|        "SD ","SDG","SF ","SFL","SJV","SK ","SNJ","STX","SV ","TN ",  &        | ||||
|        "UT ","VA ","VI ","VT ","WCF","WI ","WMA","WNY","WPA","WTX",  &        | ||||
|        "WV ","WWA","WY ","DX "/ | ||||
|        "WV ","WWA","WY ","DX ","PE "/ | ||||
|   data cmult/                                                        & | ||||
|        "AL ","AK ","AZ ","AR ","CA ","CO ","CT ","DE ","FL ","GA ",  & | ||||
|        "HI ","ID ","IL ","IN ","IA ","KS ","KY ","LA ","ME ","MD ",  & | ||||
| @ -868,7 +868,7 @@ subroutine pack77_03(nwords,w,i3,n3,c77) | ||||
| ! Check 0.3 and 0.4 (ARRL Field Day exchange) | ||||
| ! Example message:  WA9XYZ KA1ABC R 16A EMA       28 28 1 4 3 7    71   | ||||
| 
 | ||||
|   parameter (NSEC=84)      !Number of ARRL Sections | ||||
|   parameter (NSEC=85)      !Number of ARRL Sections | ||||
|   character*13 w(19) | ||||
|   character*77 c77 | ||||
|   character*6 bcall_1,bcall_2 | ||||
| @ -883,7 +883,7 @@ subroutine pack77_03(nwords,w,i3,n3,c77) | ||||
|        "ONS","OR ","ORG","PAC","PR ","QC ","RI ","SB ","SC ","SCV",  &        | ||||
|        "SD ","SDG","SF ","SFL","SJV","SK ","SNJ","STX","SV ","TN ",  &        | ||||
|        "UT ","VA ","VI ","VT ","WCF","WI ","WMA","WNY","WPA","WTX",  &        | ||||
|        "WV ","WWA","WY ","DX "/ | ||||
|        "WV ","WWA","WY ","DX ","PE "/ | ||||
| 
 | ||||
|   if(nwords.lt.4 .or. nwords.gt.5) return   | ||||
|   call chkcall(w(1),bcall_1,ok1) | ||||
|  | ||||
| @ -442,7 +442,7 @@ bool WorkedBefore::add (QString const& call | ||||
|           QTextStream out {&file}; | ||||
|           if (!file.size ()) | ||||
|             { | ||||
|               out << "WSJT-X ADIF Export<eh>" << // new file
 | ||||
|               out << "WSJT-X ADIF Export<eoh>" << // new file
 | ||||
| #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) | ||||
|                  endl | ||||
| #else | ||||
|  | ||||
| @ -74,7 +74,7 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q | ||||
|                                QDateTime const& dateTimeOff, QString const& band, QString const& comments, | ||||
|                                QString const& name, QString const& strDialFreq, QString const& myCall, | ||||
|                                QString const& myGrid, QString const& txPower, QString const& operator_call, | ||||
|                                QString const& xSent, QString const& xRcvd) | ||||
|                                QString const& xSent, QString const& xRcvd, QString const& propmode) | ||||
| { | ||||
|   QString t; | ||||
|   t = "<call:" + QString::number(hisCall.size()) + ">" + hisCall; | ||||
| @ -101,6 +101,7 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q | ||||
|   if(comments!="") t += " <comment:" + QString::number(comments.size()) + ">" + comments; | ||||
|   if(name!="") t += " <name:" + QString::number(name.size()) + ">" + name; | ||||
|   if(operator_call!="") t+=" <operator:" + QString::number(operator_call.size()) + ">" + operator_call; | ||||
|   if(propmode!="") t += " <prop_mode:" + QString::number(propmode.size()) + ">" + propmode; | ||||
|   if (xSent.size ()) | ||||
|     { | ||||
|       auto words = xSent.split (' ' | ||||
|  | ||||
| @ -44,7 +44,7 @@ public: | ||||
|                         QDateTime const& dateTimeOff, QString const& band, QString const& comments, | ||||
|                         QString const& name, QString const& strDialFreq, QString const& myCall, | ||||
|                         QString const& m_myGrid, QString const& m_txPower, QString const& operator_call, | ||||
|                         QString const& xSent, QString const& xRcvd); | ||||
|                         QString const& xSent, QString const& xRcvd, QString const& propmode); | ||||
| 
 | ||||
|   Q_SIGNAL void finished_loading (int worked_before_record_count, QString const& error) const; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								main.cpp
									
									
									
									
									
								
							| @ -323,6 +323,7 @@ int main(int argc, char *argv[]) | ||||
|       db.exec ("PRAGMA locking_mode=EXCLUSIVE"); | ||||
| 
 | ||||
|       int result; | ||||
|       auto const& original_style_sheet = a.styleSheet (); | ||||
|       do | ||||
|         { | ||||
| #if WSJT_QDEBUG_TO_FILE | ||||
| @ -387,6 +388,9 @@ int main(int argc, char *argv[]) | ||||
|           splash.raise (); | ||||
|           QObject::connect (&a, SIGNAL (lastWindowClosed()), &a, SLOT (quit())); | ||||
|           result = a.exec(); | ||||
| 
 | ||||
|           // ensure config switches start with the right style sheet
 | ||||
|           a.setStyleSheet (original_style_sheet); | ||||
|         } | ||||
|       while (!result && !multi_settings.exit ()); | ||||
| 
 | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -888,6 +888,16 @@ Format: | ||||
| </context> | ||||
| <context> | ||||
|     <name>Directory</name> | ||||
|     <message> | ||||
|         <location filename="../SampleDownloader/Directory.cpp" line="51"/> | ||||
|         <source>File</source> | ||||
|         <translation type="unfinished">ファイル</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../SampleDownloader/Directory.cpp" line="51"/> | ||||
|         <source>Progress</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../SampleDownloader/Directory.cpp" line="113"/> | ||||
|         <location filename="../SampleDownloader/Directory.cpp" line="189"/> | ||||
|  | ||||
| @ -4173,9 +4173,8 @@ UDP 服务器 %2:%3</translation> | ||||
| <context> | ||||
|     <name>QObject</name> | ||||
|     <message> | ||||
|         <location filename="../main.cpp" line="340"/> | ||||
|         <source>Invalid rig name - \ & / not allowed</source> | ||||
|         <translation>无效的无线电设备名称 - \ & / 不允许</translation> | ||||
|         <translation type="vanished">无效的无线电设备名称 - \ & / 不允许</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../widgets/widegraph.cpp" line="18"/> | ||||
|  | ||||
| @ -4173,7 +4173,6 @@ UDP 服務器 %2:%3</translation> | ||||
| <context> | ||||
|     <name>QObject</name> | ||||
|     <message> | ||||
|         <location filename="../main.cpp" line="340"/> | ||||
|         <source>Invalid rig name - \ & / not allowed</source> | ||||
|         <translation>無效的無線電裝置名稱 - \ & / 不允許</translation> | ||||
|     </message> | ||||
|  | ||||
| @ -20,10 +20,10 @@ CAboutDlg::CAboutDlg(QWidget *parent) : | ||||
|                          "weak-signal Amateur Radio communication.  <br /><br />" | ||||
|                          "© 2001-2020 by Joe Taylor, K1JT, Bill Somerville, G4WJS, <br />" | ||||
|                          "and Steve Franke, K9AN.  <br /><br />" | ||||
|                          "We gratefully acknowledge contributions from AC6SL, AE4JY, DJ0OT, <br />" | ||||
|                          "G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL, KA9Q, KB1ZMX,<br />" | ||||
|                          "KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF, VK4BDJ,<br />" | ||||
|                          "VK7MO, W4TI, W4TV, and W9MDB.<br /><br />" | ||||
|                          "We gratefully acknowledge contributions from AC6SL, AE4JY,<br />" | ||||
|                          "DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL,<br />" | ||||
|                          "KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY,<br />" | ||||
|                          "VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.<br /><br />" | ||||
|                          "WSJT-X is licensed under the terms of Version 3 <br />" | ||||
|                          "of the GNU General Public License (GPL) <br /><br />" | ||||
|                          "<a href=" WSJTX_STRINGIZE (PROJECT_HOMEPAGE) ">" | ||||
|  | ||||
| @ -46,7 +46,8 @@ Astro::Astro(QSettings * settings, Configuration const * configuration, QWidget | ||||
| { | ||||
|   ui_->setupUi (this); | ||||
|   setWindowTitle (QApplication::applicationName () + " - " + tr ("Astronomical Data")); | ||||
|   setStyleSheet ("QWidget {background: white;}"); | ||||
|   setBackgroundRole (QPalette::Base); | ||||
|   setAutoFillBackground (true); | ||||
|   connect (ui_->cbDopplerTracking, &QAbstractButton::toggled, ui_->doppler_widget, &QWidget::setVisible); | ||||
|   read_settings (); | ||||
|   ui_->text_label->clear (); | ||||
|  | ||||
| @ -15,6 +15,37 @@ | ||||
| #include "ui_logqso.h" | ||||
| #include "moc_logqso.cpp" | ||||
| 
 | ||||
| namespace | ||||
| { | ||||
|   struct PropMode | ||||
|   { | ||||
|     char const * id_; | ||||
|     char const * name_; | ||||
|   }; | ||||
|   constexpr PropMode prop_modes[] = | ||||
|     { | ||||
|      {"", ""} | ||||
|      , {"AS", QT_TRANSLATE_NOOP ("LogQSO", "Aircraft scatter")} | ||||
|      , {"AUE", QT_TRANSLATE_NOOP ("LogQSO", "Aurora-E")} | ||||
|      , {"AUR", QT_TRANSLATE_NOOP ("LogQSO", "Aurora")} | ||||
|      , {"BS", QT_TRANSLATE_NOOP ("LogQSO", "Back scatter")} | ||||
|      , {"ECH", QT_TRANSLATE_NOOP ("LogQSO", "Echolink")} | ||||
|      , {"EME", QT_TRANSLATE_NOOP ("LogQSO", "Earth-moon-earth")} | ||||
|      , {"ES", QT_TRANSLATE_NOOP ("LogQSO", "Sporadic E")} | ||||
|      , {"F2", QT_TRANSLATE_NOOP ("LogQSO", "F2 Reflection")} | ||||
|      , {"FAI", QT_TRANSLATE_NOOP ("LogQSO", "Field aligned irregularities")} | ||||
|      , {"INTERNET", QT_TRANSLATE_NOOP ("LogQSO", "Internet-assisted")} | ||||
|      , {"ION", QT_TRANSLATE_NOOP ("LogQSO", "Ionoscatter")} | ||||
|      , {"IRL", QT_TRANSLATE_NOOP ("LogQSO", "IRLP")} | ||||
|      , {"MS", QT_TRANSLATE_NOOP ("LogQSO", "Meteor scatter")} | ||||
|      , {"RPT", QT_TRANSLATE_NOOP ("LogQSO", "Non-satellite repeater or transponder")} | ||||
|      , {"RS", QT_TRANSLATE_NOOP ("LogQSO", "Rain scatter")} | ||||
|      , {"SAT", QT_TRANSLATE_NOOP ("LogQSO", "Satellite")} | ||||
|      , {"TEP", QT_TRANSLATE_NOOP ("LogQSO", "Trans-equatorial")} | ||||
|      , {"TR", QT_TRANSLATE_NOOP ("LogQSO", "Troposheric ducting")} | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| LogQSO::LogQSO(QString const& programTitle, QSettings * settings | ||||
|                , Configuration const * config, LogBook * log, QWidget *parent) | ||||
|   : QDialog {parent, Qt::WindowStaysOnTopHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint} | ||||
| @ -25,6 +56,10 @@ LogQSO::LogQSO(QString const& programTitle, QSettings * settings | ||||
| { | ||||
|   ui->setupUi(this); | ||||
|   setWindowTitle(programTitle + " - Log QSO"); | ||||
|   for (auto const& prop_mode : prop_modes) | ||||
|     { | ||||
|       ui->comboBoxPropMode->addItem (prop_mode.name_, prop_mode.id_); | ||||
|     } | ||||
|   loadSettings (); | ||||
|   ui->grid->setValidator (new MaidenheadLocatorValidator {this}); | ||||
| } | ||||
| @ -39,8 +74,15 @@ void LogQSO::loadSettings () | ||||
|   restoreGeometry (m_settings->value ("geometry", saveGeometry ()).toByteArray ()); | ||||
|   ui->cbTxPower->setChecked (m_settings->value ("SaveTxPower", false).toBool ()); | ||||
|   ui->cbComments->setChecked (m_settings->value ("SaveComments", false).toBool ()); | ||||
|   ui->cbPropMode->setChecked (m_settings->value ("SavePropMode", false).toBool ()); | ||||
|   m_txPower = m_settings->value ("TxPower", "").toString (); | ||||
|   m_comments = m_settings->value ("LogComments", "").toString(); | ||||
|   int prop_index {0}; | ||||
|   if (ui->cbPropMode->isChecked ()) | ||||
|     { | ||||
|       prop_index = ui->comboBoxPropMode->findData (m_settings->value ("PropMode", "").toString()); | ||||
|     } | ||||
|   ui->comboBoxPropMode->setCurrentIndex (prop_index); | ||||
|   m_settings->endGroup (); | ||||
| } | ||||
| 
 | ||||
| @ -50,8 +92,10 @@ void LogQSO::storeSettings () const | ||||
|   m_settings->setValue ("geometry", saveGeometry ()); | ||||
|   m_settings->setValue ("SaveTxPower", ui->cbTxPower->isChecked ()); | ||||
|   m_settings->setValue ("SaveComments", ui->cbComments->isChecked ()); | ||||
|   m_settings->setValue ("SavePropMode", ui->cbPropMode->isChecked ()); | ||||
|   m_settings->setValue ("TxPower", m_txPower); | ||||
|   m_settings->setValue ("LogComments", m_comments); | ||||
|   m_settings->setValue ("PropMode", ui->comboBoxPropMode->currentData ()); | ||||
|   m_settings->endGroup (); | ||||
| } | ||||
| 
 | ||||
| @ -100,6 +144,10 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString | ||||
|   ui->loggedOperator->setText(m_config->opCall()); | ||||
|   ui->exchSent->setText (xSent); | ||||
|   ui->exchRcvd->setText (xRcvd); | ||||
|   if (!ui->cbPropMode->isChecked ()) | ||||
|     { | ||||
|       ui->comboBoxPropMode->setCurrentIndex (-1); | ||||
|     } | ||||
| 
 | ||||
|   using SpOp = Configuration::SpecialOperatingActivity; | ||||
|   auto special_op = m_config->special_op_id (); | ||||
| @ -178,6 +226,7 @@ void LogQSO::accept() | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|   auto const& prop_mode = ui->comboBoxPropMode->currentData ().toString (); | ||||
|   //Log this QSO to file "wsjtx.log"
 | ||||
|   static QFile f {QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx.log")}; | ||||
|   if(!f.open(QIODevice::Text | QIODevice::Append)) { | ||||
| @ -191,7 +240,7 @@ void LogQSO::accept() | ||||
|       dateTimeOff.time().toString("hh:mm:ss,") + hisCall + "," + | ||||
|       hisGrid + "," + strDialFreq + "," + mode + | ||||
|       "," + rptSent + "," + rptRcvd + "," + m_txPower + | ||||
|       "," + m_comments + "," + name; | ||||
|       "," + m_comments + "," + name + "," + prop_mode; | ||||
|     QTextStream out(&f); | ||||
|     out << logEntry << | ||||
| #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) | ||||
| @ -220,6 +269,7 @@ void LogQSO::accept() | ||||
|                     , m_myGrid | ||||
|                     , xsent | ||||
|                     , xrcvd | ||||
|                     , prop_mode | ||||
|                     , m_log->QSOToADIF (hisCall | ||||
|                                         , hisGrid | ||||
|                                         , mode | ||||
| @ -236,7 +286,8 @@ void LogQSO::accept() | ||||
|                                         , m_txPower | ||||
|                                         , operator_call | ||||
|                                         , xsent | ||||
|                                         , xrcvd)); | ||||
|                                         , xrcvd | ||||
|                                         , prop_mode)); | ||||
|   QDialog::accept(); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -42,7 +42,7 @@ signals: | ||||
|                   , QString const& name, QDateTime const& QSO_date_on,  QString const& operator_call | ||||
|                   , QString const& my_call, QString const& my_grid | ||||
|                   , QString const& exchange_sent, QString const& exchange_rcvd | ||||
|                   , QByteArray const& ADIF); | ||||
|                   , QString const& propmode, QByteArray const& ADIF); | ||||
| 
 | ||||
| protected: | ||||
|   void hideEvent (QHideEvent *); | ||||
|  | ||||
| @ -6,8 +6,8 @@ | ||||
|    <rect> | ||||
|     <x>0</x> | ||||
|     <y>0</y> | ||||
|     <width>377</width> | ||||
|     <height>287</height> | ||||
|     <width>440</width> | ||||
|     <height>322</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <property name="sizePolicy"> | ||||
| @ -46,6 +46,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>call</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -68,6 +71,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>start_date_time</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -103,6 +109,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>end_date_time</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -142,6 +151,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>mode</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -171,6 +183,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>band</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -200,6 +215,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>sent</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -229,6 +247,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>rcvd</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -258,6 +279,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>grid</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -290,6 +314,9 @@ | ||||
|          <property name="alignment"> | ||||
|           <set>Qt::AlignCenter</set> | ||||
|          </property> | ||||
|          <property name="buddy"> | ||||
|           <cstring>name</cstring> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
| @ -310,6 +337,9 @@ | ||||
|        <property name="text"> | ||||
|         <string>Tx power</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>txPower</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
| @ -339,6 +369,9 @@ | ||||
|        <property name="text"> | ||||
|         <string>Comments</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>comments</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
| @ -369,6 +402,9 @@ | ||||
|        <property name="text"> | ||||
|         <string>Operator</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>loggedOperator</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
| @ -403,6 +439,9 @@ | ||||
|        <property name="text"> | ||||
|         <string>Exch sent</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>exchSent</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
| @ -433,6 +472,9 @@ | ||||
|        <property name="text"> | ||||
|         <string>Rcvd</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>exchRcvd</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
| @ -447,6 +489,30 @@ | ||||
|      </item> | ||||
|     </layout> | ||||
|    </item> | ||||
|    <item> | ||||
|     <layout class="QHBoxLayout" name="horizontalLayout_8" stretch="0,0,0"> | ||||
|      <item> | ||||
|       <widget class="QLabel" name="label_5"> | ||||
|        <property name="text"> | ||||
|         <string>Prop Mode</string> | ||||
|        </property> | ||||
|        <property name="buddy"> | ||||
|         <cstring>comboBoxPropMode</cstring> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QComboBox" name="comboBoxPropMode"/> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QCheckBox" name="cbPropMode"> | ||||
|        <property name="text"> | ||||
|         <string>Retain</string> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|     </layout> | ||||
|    </item> | ||||
|    <item> | ||||
|     <spacer name="verticalSpacer"> | ||||
|      <property name="orientation"> | ||||
| @ -486,6 +552,11 @@ | ||||
|   <tabstop>cbTxPower</tabstop> | ||||
|   <tabstop>comments</tabstop> | ||||
|   <tabstop>cbComments</tabstop> | ||||
|   <tabstop>loggedOperator</tabstop> | ||||
|   <tabstop>exchSent</tabstop> | ||||
|   <tabstop>exchRcvd</tabstop> | ||||
|   <tabstop>comboBoxPropMode</tabstop> | ||||
|   <tabstop>cbPropMode</tabstop> | ||||
|  </tabstops> | ||||
|  <resources/> | ||||
|  <connections> | ||||
|  | ||||
| @ -5700,7 +5700,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, | ||||
|                             , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call | ||||
|                             , QString const& my_call, QString const& my_grid | ||||
|                             , QString const& exchange_sent, QString const& exchange_rcvd | ||||
|                             , QByteArray const& ADIF) | ||||
|                             , QString const& propmode, QByteArray const& ADIF) | ||||
| { | ||||
|   QString date = QSO_date_on.toString("yyyyMMdd"); | ||||
|   if (!m_logBook.add (call, grid, m_config.bands()->find(dial_freq), mode, ADIF)) | ||||
| @ -5711,7 +5711,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, | ||||
| 
 | ||||
|   m_messageClient->qso_logged (QSO_date_off, call, grid, dial_freq, mode, rpt_sent, rpt_received | ||||
|                                , tx_power, comments, name, QSO_date_on, operator_call, my_call, my_grid | ||||
|                                , exchange_sent, exchange_rcvd); | ||||
|                                , exchange_sent, exchange_rcvd, propmode); | ||||
|   m_messageClient->logged_ADIF (ADIF); | ||||
| 
 | ||||
|   // Log to N1MM Logger
 | ||||
|  | ||||
| @ -243,7 +243,7 @@ private slots: | ||||
|                   , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call | ||||
|                   , QString const& my_call, QString const& my_grid | ||||
|                   , QString const& exchange_sent, QString const& exchange_rcvd | ||||
|                   , QByteArray const& ADIF); | ||||
|                   , QString const& propmode, QByteArray const& ADIF); | ||||
|   void on_bandComboBox_currentIndexChanged (int index); | ||||
|   void on_bandComboBox_activated (int index); | ||||
|   void on_readFreq_clicked(); | ||||
|  | ||||
| @ -10,7 +10,7 @@ SOURCES += \ | ||||
|   widgets/AbstractLogWindow.cpp \ | ||||
|   widgets/FrequencyLineEdit.cpp widgets/FrequencyDeltaLineEdit.cpp \ | ||||
|   widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp \ | ||||
|   widgets/HelpTextWindow.cpp | ||||
|   widgets/HelpTextWindow.cpp widgets/RestrictedSpinBox.cpp | ||||
| HEADERS  += \ | ||||
|   widgets/mainwindow.h widgets/plotter.h \ | ||||
|   widgets/about.h widgets/widegraph.h  \ | ||||
| @ -21,7 +21,8 @@ HEADERS  += \ | ||||
|   widgets/fastplot.h widgets/MessageBox.hpp widgets/colorhighlighting.h \ | ||||
|   widgets/ExportCabrillo.h widgets/AbstractLogWindow.hpp \ | ||||
|   widgets/FoxLogWindow.hpp widgets/CabrilloLogWindow.hpp \ | ||||
|   widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp | ||||
|   widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp \ | ||||
|   widgets/RestrictedSpinBox.hpp | ||||
| 
 | ||||
| FORMS    += \ | ||||
|   widgets/mainwindow.ui widgets/about.ui \ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user