1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 // David Freese, W1HKJ
4 //
5 // This file is part of flmsg
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20
21 #include <iostream>
22 #include <fstream>
23 #include <string>
24
25 #include <FL/Fl_Preferences.H>
26
27 #include "status.h"
28 #include "config.h"
29 #include "flmsg.h"
30 #include "flmsg_dialog.h"
31 #include "wrap.h"
32
33 status progStatus = {
34 50, // int mainX;
35 50, // int mainY;
36 570, // int mainW;
37 492, // int mainH;
38
39 5, // int wpl;
40 false, // bool open_on_export;
41 0, // int UTC
42 // 0: HHMM, 1: HH:MM
43 // 2: HHMMZ, 3: HH:MMZ
44 // 4: HHMM UTC, 5: HH:MM UTC
45 0, // date format 0: YYYY-MM-DD, 1: MM/DD/YY, 2: DD/MM/YY
46 "", // my_call
47 "", // my_tel
48 "", // my_name
49 "", // my_addr
50 "", // my_city
51 "", // my_email
52 true, // bool sernbr_fname;
53 true, // bool call_fname;
54 1, // int dt_fname;
55 // 1: not used
56 // 2: local time, append L
57 // 3: local time, append time zone, i.e: CDT
58 // 4: greenwich mean time, append Z
59 true, // bool rgrnbr_fname;
60 true, // bool arl_desc;
61 "1", // string sernbr;
62 "1", // string rgnbr
63 true, // bool rri
64 false, // bool insert_x;
65 RADIOGRAM, // int tab;
66 "",
67 72, // charcount
68 true, // autowordwrap
69 true, // send_original
70 "127.0.0.1", // fldigi xmlrpc socket address
71 "7362", // fldigi xmlrpc socket port
72 false, // use_compression
73 0, // selected_mode
74 0, // index default_state
75 0, // index default_county
76 "", // swx_default_city;
77 "", // swx_default_location;
78 "", // swx_default_zone;
79 "", // swx_default_profile;
80 true, // change_modem_with_autosend
81 false, // sync_modem_to_fldigi
82 false, // caplocal
83 false, // auto_open_url
84 5, // retries;
85 60000, // timeout;
86 5, // exponent;
87 true, // ID_on;
88 true, // ID_off;
89 true, // ID_restore;
90 false, // arq_shown;
91 false, // UI_expert;
92 false, // UI_default;
93
94 0, // int arq_notify_timeout
95 false // bool notify_receipt
96 };
97
saveLastState()98 void status::saveLastState()
99 {
100 Fl_Preferences flmsgpref(FLMSG_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
101
102 int mX = mainwindow->x();
103 int mY = mainwindow->y();
104 int mW = expert_dialog->w();
105 int mH = expert_dialog->h();
106
107 if (mX >= 0 && mX >= 0) {
108 mainX = mX;
109 mainY = mY;
110 }
111 selected_mode = cbo_modes->index();
112
113 flmsgpref.set("version", PACKAGE_VERSION);
114 flmsgpref.set("mainx", mX);
115 flmsgpref.set("mainy", mY);
116 flmsgpref.set("expertW", mW);
117 flmsgpref.set("expertH", mH);
118
119 flmsgpref.set("wpl", wpl);
120 flmsgpref.set("open_on_export", open_on_export);
121 flmsgpref.set("utc", UTC);
122 flmsgpref.set("dtformat", dtformat);
123 flmsgpref.set("mycall", my_call.c_str());
124 flmsgpref.set("mytel", my_tel.c_str());
125 flmsgpref.set("myname", my_name.c_str());
126 flmsgpref.set("myaddr", my_addr.c_str());
127 flmsgpref.set("mycity", my_city.c_str());
128 flmsgpref.set("myemail", my_email.c_str());
129 flmsgpref.set("sernbr", sernbr.c_str());
130 flmsgpref.set("rgnbr", rgnbr.c_str());
131 flmsgpref.set("rri", rri);
132 flmsgpref.set("sernbr_fname", sernbr_fname);
133 flmsgpref.set("rgnbr_fname", rgnbr_fname);
134 flmsgpref.set("arl_desc", arl_desc);
135 flmsgpref.set("call_fname", call_fname);
136 flmsgpref.set("dt_fname", dt_fname);
137
138 flmsgpref.set("insert_x", insert_x);
139
140 flmsgpref.set("charcount", charcount);
141 flmsgpref.set("autowordwrap", autowordwrap);
142 flmsgpref.set("send_original", send_original);
143
144 tab = selected_form;
145 flmsgpref.set("preset_tab", tab);
146
147 flmsgpref.set("mars_roster_file", mars_roster_file.c_str());
148
149 // flmsgpref.set("socket_address", socket_addr.c_str());
150 // flmsgpref.set("socket_port", socket_port.c_str());
151
152 flmsgpref.set("xmlrpc_address", xmlrpc_addr.c_str());
153 flmsgpref.set("xmlrpc_port", xmlrpc_port.c_str());
154
155 flmsgpref.set("use_compression", use_compression);
156 flmsgpref.set("selected_mode", selected_mode);
157
158 flmsgpref.set("swx_index_default_state", swx_index_default_state);
159 flmsgpref.set("swx_index_default_county", swx_index_default_county);
160 flmsgpref.set("swx_default_city", swx_default_city.c_str());
161 flmsgpref.set("swx_default_location", swx_default_location.c_str());
162 flmsgpref.set("swx_default_zone", swx_default_zone.c_str());
163 flmsgpref.set("swx_default_profile", swx_default_profile.c_str());
164
165 flmsgpref.set("change_modem_with_autosend", change_modem_with_autosend);
166 flmsgpref.set("sync_modem_to_fldigi", sync_modem_to_fldigi);
167
168 flmsgpref.set("caplocal", caplocal);
169
170 flmsgpref.set("auto_open_url", auto_open_url);
171 flmsgpref.set("retries", retries);
172 flmsgpref.set("timeout", timeout);
173 flmsgpref.set("exponent", exponent);
174 flmsgpref.set("ID_on", ID_on);
175 flmsgpref.set("ID_off", ID_off);
176 flmsgpref.set("ID_restore", ID_restore);
177
178 arq_shown = arq_group->visible();
179
180 flmsgpref.set("arq_shown", arq_shown);
181
182 flmsgpref.set("UI_expert", UI_expert);
183 flmsgpref.set("UI_default", UI_default);
184
185 flmsgpref.set("arq_notify_timeout", arq_notify_timeout);
186 flmsgpref.set("notify_receipt", notify_receipt);
187 }
188
loadLastState()189 void status::loadLastState()
190 {
191 Fl_Preferences flmsgpref(FLMSG_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
192
193 if (flmsgpref.entryExists("version")) {
194 int i = 0;
195 char *defbuffer;
196
197 flmsgpref.get("mainx", mainX, mainX);
198 flmsgpref.get("mainy", mainY, mainY);
199
200 flmsgpref.get("expertW", expertW, expertW);
201 flmsgpref.get("expertH", expertH, expertH);
202
203 flmsgpref.get("wpl", wpl, wpl);
204 if (flmsgpref.get("open_on_export", i, i)) open_on_export = i;
205
206 flmsgpref.get("utc", UTC, UTC);
207
208 flmsgpref.get("dtformat", dtformat, dtformat);
209
210 flmsgpref.get("mycall", defbuffer, "");
211 my_call = defbuffer; free(defbuffer);
212
213 flmsgpref.get("mytel", defbuffer, "");
214 my_tel = defbuffer; free(defbuffer);
215
216 flmsgpref.get("myname", defbuffer, "");
217 my_name = defbuffer; free(defbuffer);
218
219 flmsgpref.get("myaddr", defbuffer, "");
220 my_addr = defbuffer; free(defbuffer);
221
222 flmsgpref.get("mycity", defbuffer, "");
223 my_city = defbuffer; free(defbuffer);
224
225 flmsgpref.get("myemail", defbuffer, "");
226 my_email = defbuffer; free(defbuffer);
227
228 if (flmsgpref.get("sernbr", defbuffer, "")) {
229 sernbr = defbuffer;
230 free(defbuffer);
231 }
232
233 if (flmsgpref.get("rgnbr", defbuffer, "")) {
234 rgnbr = defbuffer;
235 free(defbuffer);
236 }
237
238 if (flmsgpref.get("rri", i, rri)) rri = i;
239
240 if (flmsgpref.get("sernbr_fname", i, i)) sernbr_fname = i;
241 if (flmsgpref.get("arl_desc", i, i)) arl_desc = i;
242 if (flmsgpref.get("rgnbr_fname", i, i)) rgnbr_fname = i;
243 if (flmsgpref.get("call_fname", i, i)) call_fname = i;
244 if (flmsgpref.get("dt_fname", i, i)) dt_fname = i;
245
246 if (flmsgpref.get("insert_x", i, i)) insert_x = i;
247
248 flmsgpref.get("charcount", charcount, charcount);
249 if (flmsgpref.get("autowordwrap", i, autowordwrap)) autowordwrap = i;
250
251 if (flmsgpref.get("send_original", i, send_original)) send_original = i;
252
253 flmsgpref.get("preset_tab", tab, tab);
254
255 flmsgpref.get("mars_roster_file", defbuffer, "");
256 mars_roster_file = defbuffer; free(defbuffer);
257
258 if (mars_roster_file.empty()) {
259 mars_roster_file = ICS_dir;
260 mars_roster_file.append("MARS_ROSTER.csv");
261 }
262
263 flmsgpref.get("xmlrpc_address", defbuffer, xmlrpc_addr.c_str());
264 xmlrpc_addr = defbuffer; free(defbuffer);
265 flmsgpref.get("xmlrpc_port", defbuffer, xmlrpc_port.c_str());
266 xmlrpc_port = defbuffer; free(defbuffer);
267
268 if (flmsgpref.get("use_compression", i, use_compression)) use_compression = i;
269
270 flmsgpref.get("selected_mode", selected_mode, selected_mode);
271
272 flmsgpref.get("swx_index_default_state", swx_index_default_state, swx_index_default_state);
273 flmsgpref.get("swx_index_default_county", swx_index_default_county, swx_index_default_county);
274
275 flmsgpref.get("swx_default_city", defbuffer, swx_default_city.c_str());
276 swx_default_city = defbuffer; free(defbuffer);
277
278 flmsgpref.get("swx_default_location", defbuffer, swx_default_location.c_str());
279 swx_default_location = defbuffer; free(defbuffer);
280
281 flmsgpref.get("swx_default_zone", defbuffer, swx_default_zone.c_str());
282 swx_default_zone = defbuffer; free(defbuffer);
283
284 flmsgpref.get("swx_default_profile", defbuffer, swx_default_profile.c_str());
285 swx_default_profile = defbuffer; free(defbuffer);
286
287 if (flmsgpref.get("change_modem_with_autosend", i, change_modem_with_autosend))
288 change_modem_with_autosend = i;
289
290 if (flmsgpref.get("sync_modem_to_fldigi", i, sync_modem_to_fldigi))
291 sync_modem_to_fldigi = i;
292
293 if (flmsgpref.get("caplocal", i, caplocal))
294 caplocal = i;
295
296 if (flmsgpref.get("auto_open_url", i, auto_open_url))
297 auto_open_url = i;
298
299 if (flmsgpref.get("retries", i, retries))
300 retries = i;
301
302 if (flmsgpref.get("timeout", i, timeout))
303 timeout = i;
304
305 if (flmsgpref.get("exponent", i, exponent))
306 exponent = i;
307
308 if (flmsgpref.get("ID_on", i, ID_on))
309 ID_on = i;
310
311 if (flmsgpref.get("ID_off", i, ID_off))
312 ID_off = i;
313
314 if (flmsgpref.get("ID_restore", i, ID_restore))
315 ID_restore = i;
316
317 if (flmsgpref.get("arq_shown", i, arq_shown))
318 arq_shown = i;
319
320 if (flmsgpref.get("UI_expert", i, UI_expert))
321 UI_expert = i;
322
323 if (flmsgpref.get("UI_default", i, UI_default))
324 UI_default = i;
325
326 if (flmsgpref.get("arq_notify_timeout", i, arq_notify_timeout))
327 arq_notify_timeout = i;
328
329 if (flmsgpref.get("notify_receipt", i, notify_receipt))
330 notify_receipt = i;
331 }
332
333 }
334
335