80 |
GList *logwindowlist = NULL; |
GList *logwindowlist = NULL; |
81 |
GdkColormap *colormap; |
GdkColormap *colormap; |
82 |
|
|
83 |
|
static gboolean openhere = FALSE; |
84 |
|
static GString *logs; |
85 |
|
|
86 |
extern GtkWidget *mainwindow; |
extern GtkWidget *mainwindow; |
87 |
extern GtkWidget *mainnotebook; |
extern GtkWidget *mainnotebook; |
88 |
extern preferencestype preferences; |
extern preferencestype preferences; |
97 |
static void |
static void |
98 |
parsecommandline (int argc, char *argv[]) |
parsecommandline (int argc, char *argv[]) |
99 |
{ |
{ |
100 |
gint p; |
gint i, p; |
101 |
gchar *versionstr; |
gchar *versionstr; |
102 |
|
|
103 |
while ((p = getopt (argc, argv, "hv")) != -1) |
while ((p = getopt (argc, argv, "hv")) != -1) |
107 |
case ':': |
case ':': |
108 |
case '?': |
case '?': |
109 |
case 'h': |
case 'h': |
110 |
g_print ("Usage: %s [option]...\n", PACKAGE); |
g_print ("Usage: %s [option] <log1.xlog> <log2.xlog>... \n", PACKAGE); |
111 |
g_print (" -h Display this help and exit\n"); |
g_print (" -h Display this help and exit\n"); |
112 |
g_print (" -v Output version information and exit\n"); |
g_print (" -v Output version information and exit\n"); |
113 |
exit (0); |
exit (0); |
119 |
exit (0); |
exit (0); |
120 |
} |
} |
121 |
} |
} |
122 |
|
if (argc > 1) |
123 |
|
{ |
124 |
|
openhere = TRUE; |
125 |
|
logs = g_string_new (""); |
126 |
|
for (i = 1; i < argc; i++) |
127 |
|
{ |
128 |
|
g_string_append (logs, argv[i]); |
129 |
|
g_string_append_c (logs, '\n'); |
130 |
|
} |
131 |
|
} |
132 |
} |
} |
133 |
|
|
134 |
/* see if we can create the ~/.xlog directory */ |
/* see if we can create the ~/.xlog directory */ |
195 |
gchar *xlogfile, *xlogbackupfile, *temp, *logstoload, **loglist = NULL; |
gchar *xlogfile, *xlogbackupfile, *temp, *logstoload, **loglist = NULL; |
196 |
gint i, ctyresult; |
gint i, ctyresult; |
197 |
gboolean showmainwindow = TRUE, logsfromprefs = FALSE; |
gboolean showmainwindow = TRUE, logsfromprefs = FALSE; |
|
GString *logs; |
|
198 |
logtype *logwindow; |
logtype *logwindow; |
199 |
LOGDB *lp = NULL; |
LOGDB *lp = NULL; |
200 |
|
|
255 |
hpaned = lookup_widget (mainwindow, "hpaned"); |
hpaned = lookup_widget (mainwindow, "hpaned"); |
256 |
gtk_paned_pack2 (GTK_PANED (hpaned), mainnotebook, TRUE, FALSE); |
gtk_paned_pack2 (GTK_PANED (hpaned), mainnotebook, TRUE, FALSE); |
257 |
|
|
|
/* check for multiple *.xlog */ |
|
258 |
if (!opendir (preferences.savedir)) |
if (!opendir (preferences.savedir)) |
259 |
preferences.savedir = g_strdup (xlogdir); |
preferences.savedir = g_strdup (xlogdir); |
260 |
|
|
261 |
|
/* check for multiple *.xlog */ |
262 |
|
if (!openhere) |
263 |
|
{ |
264 |
if (g_strrstr (preferences.logstoload, "*")) |
if (g_strrstr (preferences.logstoload, "*")) |
265 |
/* read all logs of type xlog with a wildcard used */ |
/* read all logs of type xlog with a wildcard used */ |
266 |
logs = getlogs (preferences.savedir, preferences.logstoload); |
logs = getlogs (preferences.savedir, preferences.logstoload); |
267 |
else |
else |
268 |
{ /* read logs from preferences.logstoload */ |
{ /* read logs from preferences.logstoload */ |
269 |
logstoload = g_strdup (preferences.logstoload); |
logstoload = g_strdup (preferences.logstoload); |
270 |
g_strdelimit (logstoload, ",", '\n'); |
g_strdelimit (logstoload, ",", '\n'); |
271 |
logs = g_string_new (logstoload); |
logs = g_string_new (logstoload); |
272 |
g_free (logstoload); |
g_free (logstoload); |
273 |
logsfromprefs = TRUE; |
logsfromprefs = TRUE; |
274 |
} |
} |
275 |
|
} |
276 |
|
|
277 |
if ((logs->len) > 0) /* flexible logs */ |
if ((logs->len) > 0) /* flexible logs */ |
278 |
loglist = g_strsplit (logs->str, "\n", -1); |
loglist = g_strsplit (logs->str, "\n", -1); |
|
else /* old log type */ |
|
|
{ |
|
|
loglist = g_malloc0 (2 * sizeof (gchar *)); |
|
|
loglist[0] = g_strdup ("log"); |
|
|
} |
|
279 |
|
|
280 |
state.utf8error = FALSE; |
state.utf8error = FALSE; |
281 |
for (i = 0;; i++) |
for (i = 0;; i++) |
282 |
|
{ |
283 |
|
if (!loglist || !loglist[i] || (strlen(loglist[i]) == 0)) |
284 |
|
break; |
285 |
|
if (logsfromprefs) |
286 |
|
xlogfile = g_strconcat (preferences.savedir, G_DIR_SEPARATOR_S, |
287 |
|
loglist[i], ".xlog", NULL); |
288 |
|
else |
289 |
{ |
{ |
290 |
if (!loglist || !loglist[i] || (strlen(loglist[i]) == 0)) |
if (!openhere) |
|
break; |
|
|
if (logsfromprefs) |
|
|
xlogfile = g_strconcat (preferences.savedir, G_DIR_SEPARATOR_S, |
|
|
loglist[i], ".xlog", NULL); |
|
|
else |
|
291 |
xlogfile = g_strconcat (preferences.savedir, G_DIR_SEPARATOR_S, |
xlogfile = g_strconcat (preferences.savedir, G_DIR_SEPARATOR_S, |
292 |
loglist[i], NULL); |
loglist[i], NULL); |
|
lp = log_file_open (xlogfile, TYPE_FLOG); |
|
|
if (!lp) /* create a new log */ |
|
|
{ |
|
|
xlogfile = g_strconcat (preferences.savedir, G_DIR_SEPARATOR_S, |
|
|
"log.xlog", NULL); |
|
|
lp = log_file_create (xlogfile, TYPE_FLOG, qso_field_nr, qso_fields, |
|
|
qso_widths); |
|
|
} |
|
293 |
else |
else |
294 |
{ |
xlogfile = g_strdup (loglist[i]); |
295 |
logwindow = openlog (lp, loglist[i], i); |
} |
296 |
log_file_qso_foreach (lp, fillin_list, logwindow); |
lp = log_file_open (xlogfile, TYPE_FLOG); |
297 |
log_file_close (lp); |
if (lp) |
298 |
logwindowlist = g_list_append (logwindowlist, logwindow); |
{ |
299 |
/* backup */ |
logwindow = openlog (lp, loglist[i], i); |
300 |
xlogbackupfile = g_strconcat (xlogfile, ".backup", NULL); |
log_file_qso_foreach (lp, fillin_list, logwindow); |
301 |
backuplog (xlogfile, xlogbackupfile); |
log_file_close (lp); |
302 |
g_free (xlogbackupfile); |
logwindowlist = g_list_append (logwindowlist, logwindow); |
303 |
} |
/* backup */ |
304 |
g_free (xlogfile); |
xlogbackupfile = g_strconcat (xlogfile, ".backup", NULL); |
305 |
|
backuplog (xlogfile, xlogbackupfile); |
306 |
|
g_free (xlogbackupfile); |
307 |
} |
} |
308 |
|
g_free (xlogfile); |
309 |
|
} |
310 |
state.logwindows = i; |
state.logwindows = i; |
311 |
g_strfreev (loglist); |
g_strfreev (loglist); |
312 |
g_string_free (logs, TRUE); |
g_string_free (logs, TRUE); |
315 |
G_CALLBACK (on_mainnotebook_switch_page), NULL); |
G_CALLBACK (on_mainnotebook_switch_page), NULL); |
316 |
|
|
317 |
/* first page has focus */ |
/* first page has focus */ |
318 |
logwindow = g_list_nth_data (logwindowlist, 0); |
if (lp && i > 0) |
319 |
set_qsoframe (logwindow); |
{ |
320 |
|
logwindow = g_list_nth_data (logwindowlist, 0); |
321 |
|
set_qsoframe (logwindow); |
322 |
|
} |
323 |
|
|
324 |
/* we have to set the labels of the unknown fields, wether they are visible or not */ |
/* we have to set the labels of the unknown fields, wether they are visible or not */ |
325 |
unknownlabel1 = lookup_widget (mainwindow, "unknownlabel1"); |
unknownlabel1 = lookup_widget (mainwindow, "unknownlabel1"); |
370 |
clockhandlebox = lookup_widget (mainwindow, "clockhandlebox"); |
clockhandlebox = lookup_widget (mainwindow, "clockhandlebox"); |
371 |
setlabelstyle (clocklabel, preferences.themecolor, preferences.themefont); |
setlabelstyle (clocklabel, preferences.themecolor, preferences.themefont); |
372 |
if (preferences.clock == 0) |
if (preferences.clock == 0) |
373 |
{ /* no clock */ |
{ /* no clock */ |
374 |
gtk_widget_hide (clockhandlebox); |
gtk_widget_hide (clockhandlebox); |
375 |
} |
} |
376 |
else |
else |
377 |
{ /* clock on statusbar */ |
{ /* clock on statusbar */ |
378 |
gtk_widget_show (clockhandlebox); |
gtk_widget_show (clockhandlebox); |
379 |
clocktimer = g_timeout_add (1000, (GSourceFunc) updateclock, NULL); |
clocktimer = g_timeout_add (1000, (GSourceFunc) updateclock, NULL); |
380 |
} |
} |
381 |
|
|
382 |
/* set appearance of the QSO, DXCC and locator frame */ |
/* set appearance of the QSO, DXCC and locator frame */ |
383 |
dxccframe = lookup_widget (mainwindow, "dxccframe"); |
dxccframe = lookup_widget (mainwindow, "dxccframe"); |
466 |
/* create wkd B4 dialog in case we need it */ |
/* create wkd B4 dialog in case we need it */ |
467 |
b4dialog = create_b4dialog (); |
b4dialog = create_b4dialog (); |
468 |
|
|
469 |
if (showmainwindow) |
gtk_widget_show (mainwindow); |
470 |
|
/* position the main window */ |
471 |
|
gdk_window_move_resize (mainwindow->window, preferences.x, |
472 |
|
preferences.y, preferences.width, preferences.height); |
473 |
|
|
474 |
|
handlebox = lookup_widget (mainwindow, "handlebox"); |
475 |
|
if (preferences.viewtoolbar == 1) |
476 |
|
gtk_widget_show (handlebox); |
477 |
|
else |
478 |
|
gtk_widget_hide (handlebox); |
479 |
|
|
480 |
|
if (preferences.viewb4 == 1) |
481 |
{ |
{ |
482 |
gtk_widget_show (mainwindow); |
gtk_widget_show (b4dialog); |
483 |
/* position the main window */ |
gdk_window_move_resize (b4dialog->window, preferences.b4x, |
484 |
gdk_window_move_resize (mainwindow->window, preferences.x, |
preferences.b4y, preferences.b4width, preferences.b4height); |
485 |
preferences.y, preferences.width, preferences.height); |
} |
486 |
|
else |
487 |
handlebox = lookup_widget (mainwindow, "handlebox"); |
gtk_widget_hide (b4dialog); |
|
if (preferences.viewtoolbar == 1) |
|
|
gtk_widget_show (handlebox); |
|
|
else |
|
|
gtk_widget_hide (handlebox); |
|
|
if (preferences.viewb4 == 1) |
|
|
{ |
|
|
gtk_widget_show (b4dialog); |
|
|
gdk_window_move_resize (b4dialog->window, preferences.b4x, |
|
|
preferences.b4y, preferences.b4width, preferences.b4height); |
|
|
} |
|
|
else |
|
|
{ |
|
|
gtk_widget_hide (b4dialog); |
|
|
} |
|
|
gtk_window_present (GTK_WINDOW(mainwindow)); |
|
488 |
|
|
489 |
if (state.utf8error) |
gtk_window_present (GTK_WINDOW(mainwindow)); |
490 |
warningdialog (_("xlog - open log"), |
|
491 |
_("There were some errors converting from your locale to UTF8, " |
if (state.utf8error) |
492 |
"which is used by GTK+ internally. It is best if you start xlog " |
{ |
493 |
"from a terminal and see what the errors are. Please check your " |
warningdialog (_("xlog - open log"), |
494 |
"language settings and your log fields!")); |
_("There were some errors converting from your locale to UTF8, " |
495 |
|
"which is used by GTK+ internally. It is best if you start xlog " |
496 |
|
"from a terminal and see what the errors are. Please check your " |
497 |
|
"language settings and your log fields!")); |
498 |
} |
} |
499 |
|
|
500 |
gtk_main (); |
gtk_main (); |