kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Use Logbook record
* Added Dial button in logbook editor to set frequency / mode / operator
to the the current record.
- allows easy retrieval of logged data to either continue a QSO or
set one up based on a log entry.
pull/2/head
rodzic
ee27d64e6e
commit
11d699ea27
|
|
@ -83,6 +83,8 @@ extern void cb_btnUpdateCancel(Fl_Button*, void*);
|
|||
extern Fl_Button *bUpdateCancel;
|
||||
extern void cb_btnDelete(Fl_Button*, void*);
|
||||
extern Fl_Button *bDelete;
|
||||
extern void cb_btnDialFreq(Fl_Button*, void*);
|
||||
extern Fl_Button *bDialFreq;
|
||||
extern Fl_Input2 *txtNbrRecs_log;
|
||||
extern Fl_Input2 *inpSerNoOut_log;
|
||||
extern Fl_Input2 *inpMyXchg_log;
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ extern void clearRecord ();
|
|||
extern void updateRecord ();
|
||||
extern void deleteRecord ();
|
||||
extern void AddRecord ();
|
||||
extern void DisplayRecord (int idxRec);
|
||||
extern void SearchLastQSO (const char *);
|
||||
extern cQsoRec* SearchLog(const char *callsign);
|
||||
extern void DupCheck();
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public:
|
|||
void putField (int, const char *);
|
||||
void putField (int, const char *, int);
|
||||
void addtoField (int, const char *);
|
||||
const char *getField (int);
|
||||
const char *getField (int) const;
|
||||
void trimFields();
|
||||
void clearRec ();
|
||||
int validRec();
|
||||
|
|
|
|||
|
|
@ -90,13 +90,13 @@ FIELD fields[] = {
|
|||
{XCHG1, 0, &btnSelectXchgIn} // contest exchange #1 / free1 in xlog
|
||||
};
|
||||
|
||||
void initfields()
|
||||
static void initfields()
|
||||
{
|
||||
for (int i = 0; i < NUMFIELDS; i++)
|
||||
fields[i].name = new string(fieldnames[i]);
|
||||
}
|
||||
|
||||
int findfield( char *p )
|
||||
static int findfield( const char *p )
|
||||
{
|
||||
int m;
|
||||
int test;
|
||||
|
|
|
|||
|
|
@ -261,6 +261,8 @@ Fl_Button *bUpdateCancel=(Fl_Button *)0;
|
|||
|
||||
Fl_Button *bDelete=(Fl_Button *)0;
|
||||
|
||||
Fl_Button *bDialFreq=(Fl_Button *)0;
|
||||
|
||||
Fl_Input2 *txtNbrRecs_log=(Fl_Input2 *)0;
|
||||
|
||||
Fl_Input2 *inpSerNoOut_log=(Fl_Input2 *)0;
|
||||
|
|
@ -818,23 +820,33 @@ void create_logbook_dialogs() {
|
|||
inpNotes_log->when(FL_WHEN_RELEASE);
|
||||
} // Fl_Input2* inpNotes_log
|
||||
{ bNewSave = new Fl_Button(163, 263, 55, 22, _("New"));
|
||||
bNewSave->tooltip(_("New record / Save record"));
|
||||
bNewSave->shortcut(0x8004e);
|
||||
bNewSave->color((Fl_Color)FL_LIGHT1);
|
||||
bNewSave->selection_color((Fl_Color)48);
|
||||
bNewSave->callback((Fl_Callback*)cb_btnNewSave);
|
||||
} // Fl_Button* bNewSave
|
||||
{ bUpdateCancel = new Fl_Button(235, 263, 55, 22, _("Update"));
|
||||
bUpdateCancel->tooltip(_("Update the current record"));
|
||||
bUpdateCancel->shortcut(0x80055);
|
||||
bUpdateCancel->color((Fl_Color)FL_LIGHT1);
|
||||
bUpdateCancel->selection_color((Fl_Color)48);
|
||||
bUpdateCancel->callback((Fl_Callback*)cb_btnUpdateCancel);
|
||||
} // Fl_Button* bUpdateCancel
|
||||
{ bDelete = new Fl_Button(307, 263, 55, 22, _("Delete"));
|
||||
bDelete->tooltip(_("Delete the current record"));
|
||||
bDelete->shortcut(0x80044);
|
||||
bDelete->color((Fl_Color)FL_LIGHT1);
|
||||
bDelete->selection_color((Fl_Color)48);
|
||||
bDelete->callback((Fl_Callback*)cb_btnDelete);
|
||||
} // Fl_Button* bDelete
|
||||
{ bDialFreq = new Fl_Button(380, 263, 55, 22, _("Dial"));
|
||||
bDialFreq->tooltip(_("Retrieve for active modem use"));
|
||||
bDialFreq->shortcut(0x50066);
|
||||
bDialFreq->color((Fl_Color)FL_LIGHT1);
|
||||
bDialFreq->selection_color((Fl_Color)48);
|
||||
bDialFreq->callback((Fl_Callback*)cb_btnDialFreq);
|
||||
} // Fl_Button* bDialFreq
|
||||
{ txtNbrRecs_log = new Fl_Input2(41, 263, 65, 22, _("Recs"));
|
||||
txtNbrRecs_log->tooltip(_("# Records in logbook"));
|
||||
txtNbrRecs_log->box(FL_DOWN_BOX);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Function {create_logbook_dialogs()} {open return_type void
|
|||
} {
|
||||
Fl_Window wExport {
|
||||
label {Export Setup} open
|
||||
xywh {588 534 655 385} type Double modal visible
|
||||
xywh {588 534 655 385} type Double hide modal
|
||||
} {
|
||||
Fl_Group {} {
|
||||
label {Select Records to Export} open
|
||||
|
|
@ -283,7 +283,7 @@ btnSelectNotes->value(0);}
|
|||
label Logbook open
|
||||
xywh {574 55 585 410} type Double color 47 resizable visible
|
||||
} {
|
||||
Fl_Group editGroup {open selected
|
||||
Fl_Group editGroup {open
|
||||
xywh {2 2 602 290} box ENGRAVED_FRAME color 52
|
||||
} {
|
||||
Fl_Input inpDate_log {
|
||||
|
|
@ -420,17 +420,22 @@ btnSelectNotes->value(0);}
|
|||
Fl_Button bNewSave {
|
||||
label New
|
||||
callback cb_btnNewSave
|
||||
xywh {163 263 55 22} shortcut 0x8004e color 50 selection_color 48
|
||||
tooltip {New record / Save record} xywh {163 263 55 22} shortcut 0x8004e color 50 selection_color 48
|
||||
}
|
||||
Fl_Button bUpdateCancel {
|
||||
label Update
|
||||
callback cb_btnUpdateCancel
|
||||
xywh {235 263 55 22} shortcut 0x80055 color 50 selection_color 48
|
||||
tooltip {Update the current record} xywh {235 263 55 22} shortcut 0x80055 color 50 selection_color 48
|
||||
}
|
||||
Fl_Button bDelete {
|
||||
label Delete
|
||||
callback cb_btnDelete
|
||||
xywh {307 263 55 22} shortcut 0x80044 color 50 selection_color 48
|
||||
tooltip {Delete the current record} xywh {307 263 55 22} shortcut 0x80044 color 50 selection_color 48
|
||||
}
|
||||
Fl_Button bDialFreq {
|
||||
label Dial
|
||||
callback cb_btnDialFreq
|
||||
tooltip {Retrieve for active modem use} xywh {380 263 55 22} shortcut 0x50066 color 50 selection_color 48
|
||||
}
|
||||
Fl_Input txtNbrRecs_log {
|
||||
label Recs
|
||||
|
|
@ -475,7 +480,7 @@ btnSelectNotes->value(0);}
|
|||
code0 {bSearchPrev->image(new Fl_Pixmap(left_arrow_icon));}
|
||||
}
|
||||
Fl_Button bSearchNext {
|
||||
callback cb_search
|
||||
callback cb_search selected
|
||||
tooltip {Find next} xywh {550 263 24 22} color 50 selection_color 48 align 16
|
||||
code0 {bSearchNext->image(new Fl_Pixmap(right_arrow_icon));}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
#include "adif_io.h"
|
||||
#include "textio.h"
|
||||
#include "logbook.h"
|
||||
#include "rigsupport.h"
|
||||
|
||||
#include "logger.h"
|
||||
#include "fl_digi.h"
|
||||
|
|
@ -547,7 +548,51 @@ int log_search_handler(int)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int editNbr = 0;
|
||||
static int editNbr = 0;
|
||||
|
||||
void cb_btnDialFreq(Fl_Button* b, void* d)
|
||||
{
|
||||
double drf = atof(inpFreq_log->value());
|
||||
if (!drf) return;
|
||||
|
||||
int rf1, rf, audio;
|
||||
rf1 = drf * 1e6;
|
||||
rf = rf1 / 10000;
|
||||
rf *= 10000;
|
||||
audio = rf1 - rf;
|
||||
// try to keep within normal xcvr bw, 500 - 3000 Hz
|
||||
while (audio > 3000) {
|
||||
audio -= 3000;
|
||||
rf += 3000;
|
||||
}
|
||||
if (audio < 500) {
|
||||
audio += 500;
|
||||
rf -= 500;
|
||||
}
|
||||
qsy(rf, audio);
|
||||
|
||||
std::string mode_name = inpMode_log->value();
|
||||
trx_mode m;
|
||||
for (m = 0; m < NUM_MODES; m++)
|
||||
if (mode_name == mode_info[m].adif_name)
|
||||
break;
|
||||
// do we have a valid modem?
|
||||
if (m < NUM_MODES && active_modem->get_mode() != mode_info[m].mode)
|
||||
init_modem(mode_info[m].mode);
|
||||
|
||||
const cQsoRec *qsoPtr = qsodb.getRec(editNbr);
|
||||
inpCall->value(qsoPtr->getField(CALL));
|
||||
inpName->value (qsoPtr->getField(NAME));
|
||||
inpTimeOn->value (inpTimeOff->value());
|
||||
inpState->value (qsoPtr->getField(STATE));
|
||||
inpCountry->value (qsoPtr->getField(COUNTRY));
|
||||
inpXchgIn->value(qsoPtr->getField(XCHG1));
|
||||
inpQth->value (qsoPtr->getField(QTH));
|
||||
inpLoc->value (qsoPtr->getField(GRIDSQUARE));
|
||||
inpNotes->value (qsoPtr->getField(NOTES));
|
||||
|
||||
wBrowser->take_focus();
|
||||
}
|
||||
|
||||
void clearRecord() {
|
||||
Date tdy;
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ void cQsoRec::trimFields () {
|
|||
}
|
||||
}
|
||||
|
||||
const char * cQsoRec::getField (int n) {
|
||||
const char * cQsoRec::getField (int n) const {
|
||||
if (n < 0 || n >= NUMFIELDS) return 0;
|
||||
return (qsofield[n].c_str());
|
||||
}
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue