diff --git a/configure.ac b/configure.ac index 5cdcaa85..510a9c78 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may dnl contain other characters or be empty m4_define(FLDIGI_MAJOR, [3]) m4_define(FLDIGI_MINOR, [0]) -m4_define(FLDIGI_PATCH, [4BD]) +m4_define(FLDIGI_PATCH, [4BE]) AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com]) diff --git a/src/dialogs/confdialog.cxx b/src/dialogs/confdialog.cxx index c451f92d..d5309136 100644 --- a/src/dialogs/confdialog.cxx +++ b/src/dialogs/confdialog.cxx @@ -199,12 +199,15 @@ Fl_Button *btnPSKRepInit=(Fl_Button *)0; static void cb_btnPSKRepInit(Fl_Button* o, void*) { pskrep_stop(); -if (!pskrep_start()) +if (!pskrep_start()) { boxPSKRepMsg->copy_label(pskrep_error()); -else { + progdefaults.usepskrep = false; +} else { boxPSKRepMsg->label(0); o->labelcolor(FL_FOREGROUND_COLOR); -}; + progdefaults.usepskrep = true; +} +progdefaults.changed = true; } Fl_Box *boxPSKRepMsg=(Fl_Box *)0; diff --git a/src/dialogs/confdialog.fl b/src/dialogs/confdialog.fl index 53c9edc2..8232bdc6 100644 --- a/src/dialogs/confdialog.fl +++ b/src/dialogs/confdialog.fl @@ -286,12 +286,15 @@ progdefaults.changed = true;} Fl_Button btnPSKRepInit { label Initialize callback {pskrep_stop(); -if (!pskrep_start()) +if (!pskrep_start()) { boxPSKRepMsg->copy_label(pskrep_error()); -else { + progdefaults.usepskrep = false; +} else { boxPSKRepMsg->label(0); o->labelcolor(FL_FOREGROUND_COLOR); -}} + progdefaults.usepskrep = true; +} +progdefaults.changed = true;} xywh {303 186 80 24} } Fl_Box boxPSKRepMsg { diff --git a/src/dialogs/fl_digi.cxx b/src/dialogs/fl_digi.cxx index 4194de4a..b6945ab9 100644 --- a/src/dialogs/fl_digi.cxx +++ b/src/dialogs/fl_digi.cxx @@ -196,14 +196,14 @@ AFCind *AFCindicator; int pad = 1; //wSpace; int x_qsoframe = BTNWIDTH; -int w_inpFreq = 80; -int w_inpTime = 38; -int w_qsoTime = 24; -int w_inpCall = 80; +int w_inpFreq = 80; +int w_inpTime = 38; +int w_qsoTime = 24; +int w_inpCall = 120; int w_inpName = 60; -int w_inpRstIn = 30; +int w_inpRstIn = 30; int w_inpRstOut = 30; -int w_inpSerNo = 40; +int w_inpSerNo = 40; int wf1 = pad + w_inpFreq + pad + w_inpTime + w_qsoTime + pad + w_inpCall + pad + w_inpName + pad + w_inpRstIn + pad + w_inpRstOut + pad + w_inpSerNo; @@ -213,11 +213,12 @@ int w_fm2 = 20; int w_fm3 = 20; int w_fm4 = 25; int w_fm5 = 20; -int w_inpCnty = 24; +int w_inpCnty = 90; +int w_inpProv = 30; int w_inpLOC = 65; int w_inpAZ = 30; int w_inpQth = wf1 - w_fm1 - w_fm2 - w_fm3 - w_fm4 - w_fm5 - - 2*w_inpCnty - w_inpLOC - w_inpAZ; + w_inpCnty - w_inpProv - w_inpLOC - w_inpAZ; int qh = Hqsoframe / 2; int rig_control_width = FREQWIDTH + 4; @@ -2126,11 +2127,13 @@ void create_fl_digi_main() { Fl_Box *fm2box = new Fl_Box(rightof(inpQth), y3, w_fm2, qh - pad, "St"); fm2box->align(FL_ALIGN_INSIDE); inpCnty = new Fl_Input(rightof(fm2box), y3, w_inpCnty, qh - pad, ""); + inpCnty->tooltip("US State or Country"); inpCnty->align(FL_ALIGN_INSIDE); - Fl_Box *fm3box = new Fl_Box(rightof(inpCnty), y3, w_fm3, qh - pad, "Pv"); + Fl_Box *fm3box = new Fl_Box(rightof(inpCnty), y3, w_fm3, qh - pad, "Pr"); fm3box->align(FL_ALIGN_INSIDE); - inpVEprov = new Fl_Input(rightof(fm3box), y3, w_inpCnty, qh - pad, ""); + inpVEprov = new Fl_Input(rightof(fm3box), y3, w_inpProv, qh - pad, ""); + inpVEprov->tooltip("Can. Province"); inpVEprov->align(FL_ALIGN_INSIDE); Fl_Box *fm4box = new Fl_Box(rightof(inpVEprov), y3, w_fm4, qh - pad, "Loc"); diff --git a/src/include/configuration.h b/src/include/configuration.h index a535eec7..49230bd2 100644 --- a/src/include/configuration.h +++ b/src/include/configuration.h @@ -303,6 +303,7 @@ ELEM_(std::string, arq_address, "", "127.0.0.1") \ ELEM_(std::string, arq_port, "", "3122") \ /* PSK reporter */ \ + ELEM_(bool, usepskrep, "USEPSKREP", false) \ ELEM_(bool, pskrep_auto, "PSKREPAUTO", false) \ ELEM_(bool, pskrep_log, "PSKREPLOG", false) \ ELEM_(bool, pskrep_qrg, "PSKREPQRG", false) \ diff --git a/src/include/fldigi-config.h b/src/include/fldigi-config.h index 49561e1f..2294d3f4 100644 --- a/src/include/fldigi-config.h +++ b/src/include/fldigi-config.h @@ -75,7 +75,7 @@ //#define DEFAULT_HWFALL 144 #define DEFAULT_HWFALL 124 #define DEFAULT_HNOM 500 -#define WMIN 600 +#define WMIN 645 #define HMIN 500 //#define Wwfall (DEFAULT_HNOM + 2 * BEZEL) #define DEFAULT_WNOM (Wwfall + 2* DEFAULT_SW) diff --git a/src/logger/logger.cxx b/src/logger/logger.cxx index 93a97ba2..fed1e7af 100644 --- a/src/logger/logger.cxx +++ b/src/logger/logger.cxx @@ -38,6 +38,8 @@ #include "modem.h" #include "debug.h" #include "macros.h" +#include "status.h" +#include "spot.h" #include @@ -102,7 +104,7 @@ FIELD fields[] = { {AGE, "AGE", 3}, // 1 - contacted operators age in years {ARRL_SECT, "ARRL_SECT", 12}, // 2 - contacted stations ARRL section {BAND, "BAND", 6}, // 3 - QSO band - {CALL, "CALL", 10}, // 4 - contacted stations CALLSIGN + {CALL, "CALL", 14}, // 4 - contacted stations CALLSIGN {CNTY, "CNTY", 20}, // 5 - secondary political subdivision, ie: STATE {COMMENT, "COMMENT", 80}, // 6 - comment field for QSO {CONT, "CONT", 10}, // 7 - contacted stations continent @@ -212,6 +214,9 @@ char LOG_MSEPARATOR[2] = {1,0}; int submit_log(void) { + if (progStatus.spot_log) + spot_log(inpCall->value(), inpLoc->value()); + char logdate[32], logtime[32], adifdate[32]; #ifndef __CYGWIN__ int msqid, len; @@ -254,7 +259,7 @@ int submit_log(void) putadif(NAME, inpName->value()); log_msg = log_msg + "qth:" + inpQth->value() + LOG_MSEPARATOR; putadif(QTH, inpQth->value()); - log_msg = log_msg + "state:" + inpCnty->value() + LOG_MSEPARATOR; + log_msg = log_msg + "cnty:" + inpCnty->value() + LOG_MSEPARATOR; putadif(CNTY, inpCnty->value()); log_msg = log_msg + "province:" + inpVEprov->value() + LOG_MSEPARATOR; putadif(VE_PROV, inpVEprov->value()); diff --git a/src/main.cxx b/src/main.cxx index b37fb3bd..2bd8a2fd 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -286,8 +286,9 @@ int main(int argc, char ** argv) XML_RPC_Server::start(progdefaults.xmlrpc_address.c_str(), progdefaults.xmlrpc_port.c_str()); #endif - if (!pskrep_start()) - LOG_ERROR("Could not start PSK reporter: %s", pskrep_error()); + if (progdefaults.usepskrep) + if (!pskrep_start()) + LOG_ERROR("Could not start PSK reporter: %s", pskrep_error()); int ret = Fl::run(); @@ -297,7 +298,8 @@ int main(int argc, char ** argv) XML_RPC_Server::stop(); #endif - pskrep_stop(); + if (progdefaults.usepskrep) + pskrep_stop(); for (int i = 0; i < NUM_QRUNNER_THREADS; i++) { cbq[i]->detach(); diff --git a/src/misc/lookupcall.cxx b/src/misc/lookupcall.cxx index b246e567..dea7a6a9 100644 --- a/src/misc/lookupcall.cxx +++ b/src/misc/lookupcall.cxx @@ -29,6 +29,7 @@ #include #include "signal.h" #include +#include #include #include #include @@ -423,6 +424,8 @@ void QRZ_disp_result() inpQth->value(lookup_qth.c_str()); inpCnty->value(lookup_state.c_str()); + inpCnty->position(0); + inpVEprov->value(lookup_province.c_str()); inpLoc->value(lookup_grid.c_str()); @@ -559,7 +562,8 @@ void QRZquery() if (!qrzalert.empty() || !qrzerror.empty()) REQ(QRZAlert); else { - lookup_qth.clear(); +// lookup_qth.clear(); + lookup_qth = lookup_addr2; REQ(QRZ_disp_result); } } @@ -687,19 +691,20 @@ bool parseQRZdetails(string &htmlpage) lookup_fname.erase(snip, 1); } - snip = htmlpage.find(BEGIN_ADDR1); - if (snip != string::npos) { - snip += strlen(BEGIN_ADDR1); - snip_end = htmlpage.find(snip_end_RECORD, snip); - lookup_addr1 = htmlpage.substr(snip, snip_end - snip); - } +// snip = htmlpage.find(BEGIN_ADDR1); +// if (snip != string::npos) { +// snip += strlen(BEGIN_ADDR1); +// snip_end = htmlpage.find(snip_end_RECORD, snip); +// lookup_addr1 = htmlpage.substr(snip, snip_end - snip); +// } snip = htmlpage.find(BEGIN_ADDR2); if (snip != string::npos) { snip += strlen(BEGIN_ADDR2); snip_end = htmlpage.find(snip_end_RECORD, snip); lookup_addr2 = htmlpage.substr(snip, snip_end - snip); - lookup_qth += lookup_addr2; +// lookup_qth += lookup_addr2; + lookup_qth = lookup_addr2; } string isUS = "aAkKnNwW"; @@ -729,11 +734,17 @@ bool parseQRZdetails(string &htmlpage) lookup_province = lookup_province.substr(0,pos); } } else { + size_t pos = lookup_qth.find(','); + if (pos != string::npos) + lookup_qth = lookup_qth.substr(0, pos); snip = htmlpage.find(BEGIN_COUNTRY); if (snip != string::npos) { snip += strlen(BEGIN_COUNTRY); snip_end = htmlpage.find(snip_end_RECORD, snip); lookup_state = htmlpage.substr(snip, snip_end - snip); + pos = lookup_state.find(','); + if (pos != string::npos) + lookup_state = lookup_state.substr(0, pos); } } @@ -744,7 +755,7 @@ bool parseQRZdetails(string &htmlpage) lookup_grid = htmlpage.substr(snip, snip_end - snip); } - lookup_notes = "Courtesy of WWW.QRZ.COM"; + lookup_notes = "Courtesy of\nWWW.QRZ.COM"; return true; } @@ -834,10 +845,10 @@ void CALLSIGNquery() switch (DB_query = static_cast(progdefaults.QRZ)) { case QRZ_NET_SUB: case QRZ_NET_HTML: - inpNotes->value("Request sent to qrz.com..."); + inpNotes->value("Request sent to\nqrz.com..."); break; case QRZ_HAMCALL: - inpNotes->value("Request sent to www.hamcall.net..."); + inpNotes->value("Request sent to\nwww.hamcall.net..."); break; case QRZ_CD: if (!qCall)