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

Diff of /xlog/src/gui_openlogdialog.c

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

revision 1.6 by pa4tu, Sat Oct 9 16:23:32 2004 UTC revision 1.7 by pa4tu, Sat Oct 16 10:49:35 2004 UTC
# Line 42  extern GtkWidget *mainwindow; Line 42  extern GtkWidget *mainwindow;
42  extern GtkWidget *mainnotebook;  extern GtkWidget *mainnotebook;
43  extern GList *logwindowlist;  extern GList *logwindowlist;
44    
45    /*
46     * in case we open a non-xlog file, we have to know the xlog filename
47     */
48  static gchar *find_logname (const gchar *selected)  static gchar *find_logname (const gchar *selected)
49  {  {
50          gchar *basen, *dirn, **split, *l;          gchar *basen, *dirn, **split, *l;
# Line 117  on_menu_open_activate (GtkMenuItem * men Line 120  on_menu_open_activate (GtkMenuItem * men
120          state.utf8error = FALSE;          state.utf8error = FALSE;
121          if (response == GTK_RESPONSE_ACCEPT)          if (response == GTK_RESPONSE_ACCEPT)
122          {          {
123                  /* skip all if nothing filled in */                  /* unselect any selected QSO */
124                  sellog = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileselection));                  for (i = 0; i < g_list_length (logwindowlist); i++)
                 if (strlen(sellog) > 0)  
125                  {                  {
126                          filetype = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox));                          logwindow = g_list_nth_data (logwindowlist, i);
127                            gtk_tree_selection_unselect_all
128                                    (gtk_tree_view_get_selection(GTK_TREE_VIEW (logwindow->treeview)));
129                    }
130    
131                          filen = g_path_get_basename (sellog);                  sellog = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileselection));
132                          logn = logname (filen);                  filetype = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox));
                         g_free (filen);  
133    
134                          /* unselect any selected QSO */                  /* check by filename and if log exist jump to the page in the notebook */
135                          for (i = 0; i < g_list_length (logwindowlist); i++)                  filen = find_logname (sellog);
136                    for (i = 0; i < g_list_length (logwindowlist); i++)
137                    {
138                            logwindow = g_list_nth_data (logwindowlist, i);
139                            if (g_ascii_strcasecmp (filen, logwindow->filename) == 0)
140                          {                          {
141                                  logwindow = g_list_nth_data (logwindowlist, i);                                  gtk_notebook_set_current_page (GTK_NOTEBOOK(mainnotebook), i);
142                                  gtk_tree_selection_unselect_all                                  set_qsoframe (logwindow);
143                                          (gtk_tree_view_get_selection(GTK_TREE_VIEW (logwindow->treeview)));                                  logexist = TRUE;
144                                    break;
145                          }                          }
146                    }
147    
148                          /* if log exist jump to the page in the notebook */                  if (!logexist)
149                          for (i = 0; i < g_list_length (logwindowlist); i++)                  {
150                          {                          state.qsos = 0;
151                                  logwindow = g_list_nth_data (logwindowlist, i);                          lp = log_file_open (sellog, filetype);
152                                  if (g_ascii_strcasecmp (logn, logwindow->logname) == 0)                          if (lp)
                                 {  
                                         gtk_notebook_set_current_page (GTK_NOTEBOOK(mainnotebook), i);  
                                         set_qsoframe (logwindow);  
                                         logexist = TRUE;  
                                         break;  
                                 }  
                         }  
                         if (!logexist)  
153                          {                          {
154                                  state.qsos = 0;                                  logn = logname (g_path_get_basename (sellog));
155                                  lp = log_file_open (sellog, filetype);                                  logwindow =     openlog (lp, logn, state.logwindows++);
156                                  if (lp)                                  log_file_qso_foreach (lp, fillin_list, logwindow);
157                                    log_file_close (lp);
158                                    g_free (logn);
159                                    lp->type = filetype;
160                                    if ((lp->type) == TYPE_FLOG)
161                                  {                                  {
162                                          logwindow =     openlog (lp, logn, state.logwindows++);                                          xlogbackupfile = g_strconcat (sellog, ".backup", NULL);
163                                          log_file_qso_foreach (lp, fillin_list, logwindow);                                          unlink (xlogbackupfile);
164                                          log_file_close (lp);                                          backuplog (sellog, xlogbackupfile);
165                                          lp->type = filetype;                                          g_free (xlogbackupfile);
                                         if ((lp->type) == TYPE_FLOG)  
                                         {  
                                                 xlogbackupfile = g_strconcat (sellog, ".backup", NULL);  
                                                 unlink (xlogbackupfile);  
                                                 backuplog (sellog, xlogbackupfile);  
                                                 g_free (xlogbackupfile);  
                                         }  
                                         logwindowlist = g_list_append (logwindowlist, logwindow);  
                                         logwindow->filename = find_logname (sellog);  
                                         gtk_notebook_set_current_page  
                                                 (GTK_NOTEBOOK(mainnotebook), state.logwindows - 1);  
                                         set_qsoframe (logwindow);  
                                         temp = g_strdup_printf (_("%d QSO's loaded"), state.qsos);  
                                         update_statusbar (temp);  
                                         g_free (temp);  
166                                  }                                  }
167                                    logwindow->filename = g_strdup (filen);
168                                    logwindowlist = g_list_append (logwindowlist, logwindow);
169                                    gtk_notebook_set_current_page
170                                            (GTK_NOTEBOOK(mainnotebook), state.logwindows - 1);
171                                    set_qsoframe (logwindow);
172                                    temp = g_strdup_printf (_("%d QSO's loaded"), state.qsos);
173                                    update_statusbar (temp);
174                                    g_free (temp);
175                          }                          }
                         g_free (logn);  
                         g_free (sellog);  
                 }  
                 else  
                 {  
                         temp = g_strdup_printf (_("No filename entered, open cancelled"));  
                         update_statusbar (temp);  
                         g_free (temp);  
176                  }                  }
177                    g_free (filen);
178                    g_free (sellog);
179          }          }
180    
181          gtk_widget_destroy (fileselection);          gtk_widget_destroy (fileselection);
182          gtk_widget_set_sensitive (mainwindow, 1);          gtk_widget_set_sensitive (mainwindow, 1);
183    
184          while (gtk_events_pending ()) gtk_main_iteration ();          while (gtk_events_pending ()) gtk_main_iteration ();
185    
186          if (state.utf8error)          if (state.utf8error)
187                  warningdialog (_("xlog - open log"),                  warningdialog (_("xlog - open log"),
188                          _("There were some errors converting from your locale to UTF8, "                          _("There were some errors converting from your locale to UTF8, "

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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