/[xlog]/xlog/src/main.c
ViewVC logotype

Diff of /xlog/src/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.54 by pa4tu, Tue Sep 28 12:36:51 2004 UTC revision 1.55 by pa4tu, Fri Oct 8 09:39:07 2004 UTC
# Line 80  glong msgid; Line 80  glong msgid;
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;
# Line 94  GList *riglist = NULL; Line 97  GList *riglist = NULL;
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)
# Line 104  parsecommandline (int argc, char *argv[] Line 107  parsecommandline (int argc, char *argv[]
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);
# Line 116  parsecommandline (int argc, char *argv[] Line 119  parsecommandline (int argc, char *argv[]
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 */
# Line 182  main (int argc, char *argv[]) Line 195  main (int argc, char *argv[])
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    
# Line 243  main (int argc, char *argv[]) Line 255  main (int argc, char *argv[])
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);
# Line 306  main (int argc, char *argv[]) Line 315  main (int argc, char *argv[])
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");
# Line 358  main (int argc, char *argv[]) Line 370  main (int argc, char *argv[])
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");
# Line 454  trace hamlib menu is disabled in gui_mai Line 466  trace hamlib menu is disabled in gui_mai
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 ();

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26