Separate out the UI from the program logic

The following are UI toolkit specific:
gtk-gui.c   - overall layout, main window of the UI
divelist.c  - list of dives subsurface maintains
equipment.c - equipment / tank information for each dive
info.c      - detailed dive info
print.c     - printing

The rest is independent of the UI:
main.c i    - program frame
dive.c i    - creates and maintaines the internal dive list structure
libdivecomputer.c
uemis.c
parse-xml.c
save-xml.c  - interface with dive computers and the XML files
profile.c   - creates the data for the profile and draws it using cairo

This commit should contain NO functional changes, just moving code around
and a couple of minor abstractions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2011-09-20 12:40:34 -07:00
parent 6ea5132463
commit 682135838f
18 changed files with 808 additions and 648 deletions

47
uemis.c
View file

@ -16,10 +16,7 @@
#include <time.h>
#include <regex.h>
#include <gtk/gtk.h>
#include "dive.h"
#include "display.h"
#include "uemis.h"
/*
@ -214,8 +211,11 @@ static void parse_divelog_binary(char *base64, struct dive **divep) {
return;
}
/* parse a single file
* TODO: we don't report any errors when the parse fails - we simply don't add them to the list
*/
void
parse_uemis_file(char *divelogfilename,GError **error) {
parse_uemis_file(char *divelogfilename) {
char *found=NULL;
struct tm tm;
struct dive *dive;
@ -261,40 +261,7 @@ bail:
*/
void
uemis_import() {
GtkWidget *dialog;
GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*.SDA");
gtk_file_filter_set_name(filter, "uemis Zurich SDA files");
dialog = gtk_file_chooser_dialog_new("Open File",
GTK_WINDOW(main_window),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
GSList *filenames;
char *filename;
filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
GError *error = NULL;
while(filenames != NULL) {
filename = (char *)filenames->data;
parse_uemis_file(filename, &error);
if (error != NULL)
{
report_error(error);
g_error_free(error);
error = NULL;
}
g_free(filename);
filenames = g_slist_next(filenames);
}
g_slist_free(filenames);
if (open_import_file_dialog("*.SDA","uemis Zurich SDA files",
&parse_uemis_file))
report_dives();
}
gtk_widget_destroy(dialog);
}
}