~ubuntu-branches/debian/sid/xiphos/sid

« back to all changes in this revision

Viewing changes to src/gnome2/export_dialog.c

  • Committer: Package Import Robot
  • Author(s): Dimitri John Ledkov
  • Date: 2014-07-12 17:08:46 UTC
  • mfrom: (1.3.3)
  • Revision ID: package-import@ubuntu.com-20140712170846-ja9jzhgt51d3fkrd
Tags: 3.2.2+dfsg1-1
* New upstream release.
* Bump standards version.
* Switch uscan to sf.net redirector.
* Unpack waf in get-orig-source target.
* Bump to debhelper 9.
* Add uuid-dev build-dep.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * Xiphos Bible Study Tool
3
3
 * export_dialog.c -
4
4
 *
5
 
 * Copyright (C) 2008-2011 Xiphos Developer Team
 
5
 * Copyright (C) 2008-2014 Xiphos Developer Team
6
6
 *
7
7
 * This program is free software; you can redistribute it and/or modify
8
8
 * it under the terms of the GNU General Public License as published by
28
28
#ifndef USE_GTKBUILDER
29
29
  #include <glade/glade-xml.h>
30
30
#endif
 
31
#include <glib/gstdio.h>
31
32
 
32
33
#include "gui/export_dialog.h"
33
34
#include "gui/dialog.h"
37
38
#include "main/export_passage.h"
38
39
#include "main/settings.h"
39
40
#include "main/sword.h"
 
41
#include "main/xml.h"
40
42
 
41
43
#include "gui/debug_glib_null.h"
42
44
 
 
45
gchar *datafile;
43
46
 
44
47
static GtkWidget *dialog;
45
48
static gchar *filename;
61
64
        GtkWidget *sb_start_verse;
62
65
        GtkWidget *sb_end_verse;
63
66
        GtkWidget *warning_label;
 
67
        GtkWidget *cb_reference_last;
 
68
        GtkWidget *cb_version;
64
69
        gint format;
65
70
        gint start_verse;
66
71
        gint end_verse;
68
73
};
69
74
 
70
75
EXPORT_DIALOG d;
71
 
EXPORT_DATA edata;
 
76
EXPORT_DATA edata = {
 
77
    NULL,
 
78
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
79
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
80
    NULL,
 
81
    -1, -1, -1, -1, -1, -1
 
82
};
72
83
 
73
84
/******************************************************************************
74
85
 * Name
98
109
        case GTK_RESPONSE_ACCEPT:
99
110
                edata.filename = g_strdup(gtk_file_chooser_get_filename(filesel));
100
111
 
101
 
                if (d.format)
102
 
                        main_export_html(edata);
103
 
                else
104
 
                        main_export_plain(edata);
 
112
                main_export_content(edata, d.format);
105
113
                break;
106
114
 
107
115
        case GTK_RESPONSE_CANCEL:
148
156
        fdialog = gtk_file_chooser_dialog_new ("Save Export File",
149
157
                                      NULL,
150
158
                                      GTK_FILE_CHOOSER_ACTION_SAVE,
 
159
#ifdef HAVE_GTK_310
 
160
                                       "_Cancel", GTK_RESPONSE_CANCEL,
 
161
                                       "_Save", GTK_RESPONSE_ACCEPT,
 
162
#else                        
151
163
                                      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
152
 
                                      GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
 
164
                                      GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, 
 
165
#endif                                        
153
166
                                      NULL);    
154
167
#else
155
168
        gxml = glade_xml_new(glade_file, "filechooserdialog1", NULL);
166
179
#endif
167
180
}
168
181
 
 
182
static void _save_state_buttons(void)
 
183
{
 
184
        gchar value[10];/* set export-copy.xml */
 
185
        gchar *file = g_strdup_printf("%s/export-copy.xml", settings.gSwordDir);
 
186
        
 
187
        if (xml_load_copy_export_file((const xmlChar *)file)) {
 
188
                sprintf(value, "%d", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.rb_plain)));
 
189
                xml_export_set_value("Copy_Export", "dialog", "plaintext", value);
 
190
                sprintf(value, "%d", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.cb_versenum)));
 
191
                xml_export_set_value("Copy_Export", "dialog", "verse_numbers",value);
 
192
                sprintf(value, "%d", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.cb_reference_last)));
 
193
                xml_export_set_value("Copy_Export", "dialog", "reference_last",value);
 
194
                //sprintf(value, "%d", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.)));
 
195
                //xml_export_set_value("Copy_Export", "dialog", "",value );
 
196
                sprintf(value, "%d", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.cb_version)));
 
197
                xml_export_set_value("Copy_Export", "dialog", "version",value );
 
198
                xml_save_export_doc(file);
 
199
                xml_free_export_doc();
 
200
 
 
201
        }
 
202
        if(file)
 
203
                g_free(file);
 
204
}
 
205
 
169
206
/******************************************************************************
170
207
 * Name
171
208
 *   on_dialog_export_passage_response
205
242
                         : VERSE_RANGE;
206
243
 
207
244
                edata.verse_num = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.cb_versenum));
 
245
                edata.reference_last = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.cb_reference_last));
208
246
 
209
247
                if (edata.passage_type == VERSE_RANGE) {
210
248
                        edata.start_verse =
223
261
                        edata.start_verse = 0 ;
224
262
                        edata.end_verse = 0;
225
263
                }
226
 
 
 
264
                _save_state_buttons();
227
265
                if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d.rb_export)))
228
266
                        _get_export_filename();
229
267
                else {
230
268
                        edata.filename = NULL;
231
 
                        if (d.format)
232
 
                                main_export_html(edata);
233
 
                        else
234
 
                                main_export_plain(edata);
 
269
                        main_export_content(edata, d.format);
235
270
                }
236
 
 
237
271
                gtk_widget_destroy(GTK_WIDGET(dialog));
238
272
                break;
239
273
        }
307
341
        gtk_widget_set_sensitive(d.sb_end_verse, state);
308
342
}
309
343
 
 
344
static
 
345
void on_cb_version_toggled (GtkToggleButton *togglebutton,
 
346
                                gpointer user_data)
 
347
{
 
348
        if(gtk_toggle_button_get_active(togglebutton))
 
349
                edata.version = TRUE;
 
350
        else
 
351
                edata.version = FALSE;          
 
352
}
 
353
 
 
354
static
 
355
void on_reference_last_toggled (GtkToggleButton *togglebutton,
 
356
                                gpointer user_data)
 
357
{
 
358
        if(gtk_toggle_button_get_active(togglebutton))
 
359
                edata.reference_last = TRUE;
 
360
        else
 
361
                edata.reference_last = FALSE;   
 
362
}
 
363
 
 
364
/******************************************************************************
 
365
 * Name
 
366
 *   _load_data
 
367
 *
 
368
 * Synopsis
 
369
 *   #include "gui/export_dialog.h"
 
370
 *
 
371
 *   void  _load_data(gchar * filename)
 
372
 *
 
373
 * Description
 
374
 *   
 
375
 *
 
376
 * Return value
 
377
 *   void
 
378
 */
 
379
 
 
380
static
 
381
void _load_data(gchar * filename)
 
382
 
383
        gchar *buf;
 
384
        gchar *file = g_strdup_printf("%s/export-copy.xml", settings.gSwordDir);
 
385
        
 
386
        if (xml_load_copy_export_file((const xmlChar *)filename)) {
 
387
 
 
388
                /* html */
 
389
 
 
390
                edata.bookheader = xml_get_copy_export_value("book", "header");
 
391
                edata.chapterheader_book = xml_get_copy_export_value("book", "chapterheader");
 
392
                edata.versenumber = xml_get_copy_export_value("versenumber", "format");
 
393
                edata.chapterheader_chapter = xml_get_copy_export_value("chapter", "header");
 
394
                edata.verselayout_single_verse_ref_last = xml_get_copy_export_value("singleverse", "last");
 
395
                edata.verselayout_single_verse_ref_first = xml_get_copy_export_value("singleverse", "first");
 
396
                edata.verse_range_ref_first = xml_get_copy_export_value("verserange", "first");
 
397
                edata.verse_range_ref_last = xml_get_copy_export_value("verserange", "last");
 
398
                edata.verse_range_verse = xml_get_copy_export_value("verserange", "verse");
 
399
 
 
400
                if( edata.verse_range_verse == NULL) {
 
401
                        xml_add_new_item_to_export_doc_section("verserange", "verse", " %s%s");
 
402
                        edata.verse_range_verse = xml_get_copy_export_value("verserange", "verse");
 
403
                        xml_save_export_doc(file);
 
404
                }
 
405
 
 
406
                /* plain text */
 
407
                
 
408
                edata.plain_bookheader = xml_get_copy_export_value("book", "plain_header");
 
409
                edata.plain_chapterheader_book = xml_get_copy_export_value("book", "plain_chapterheader");
 
410
                edata.plain_versenumber = xml_get_copy_export_value("versenumber", "plain_format");
 
411
                edata.plain_chapterheader_chapter = xml_get_copy_export_value("chapter", "plain_header");
 
412
                edata.plain_verselayout_single_verse_ref_last = xml_get_copy_export_value("singleverse", "plain_last");
 
413
                edata.plain_verselayout_single_verse_ref_first = xml_get_copy_export_value("singleverse", "plain_first");
 
414
                edata.plain_verse_range_ref_last = xml_get_copy_export_value("verserange", "plain_last");
 
415
                edata.plain_verse_range_ref_first = xml_get_copy_export_value("verserange", "plain_first");
 
416
                
 
417
                if ((buf = xml_get_copy_export_value("dialog", "plaintext"))) {
 
418
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.rb_plain), atoi(buf));
 
419
                        g_free(buf);
 
420
                } else {
 
421
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.rb_plain), TRUE);                      
 
422
                }
 
423
                
 
424
                if ((buf = xml_get_copy_export_value("dialog", "verse_numbers"))) {
 
425
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_versenum), atoi(buf));
 
426
                        g_free(buf);
 
427
                } else {
 
428
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_versenum), TRUE);                   
 
429
                }
 
430
                
 
431
                
 
432
                if ((buf = xml_get_copy_export_value("dialog", "reference_last"))) {
 
433
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_reference_last), atoi(buf));
 
434
                        g_free(buf);
 
435
                } else {
 
436
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_reference_last), TRUE);                     
 
437
                }
 
438
                
 
439
                if ((buf = xml_get_copy_export_value("dialog", "version"))) {
 
440
                        edata.version = atoi(buf);
 
441
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_version), edata.version);
 
442
                        g_free(buf);
 
443
                } else {                        
 
444
                        edata.version = 0;
 
445
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.cb_version), TRUE);                    
 
446
                }
 
447
                
 
448
                xml_free_export_doc();
 
449
                if(file)
 
450
                        g_free(file);
 
451
        }
 
452
}
310
453
 
311
454
/******************************************************************************
312
455
 * Name
365
508
        d.sb_start_verse = UI_GET_ITEM(gxml, "sb_start_verse");
366
509
        d.sb_end_verse = UI_GET_ITEM(gxml, "sb_end_verse");
367
510
        d.warning_label = UI_GET_ITEM(gxml, "hbox2");
 
511
        d.cb_reference_last = UI_GET_ITEM(gxml, "check_reference_last");
 
512
        d.cb_version = UI_GET_ITEM(gxml, "check_include_version");
 
513
 
 
514
        /* set export-copy.xml */
 
515
        datafile = g_strdup_printf("%s/export-copy.xml", settings.gSwordDir);
 
516
        /* check for datafile */
 
517
        #ifdef HAVE_GTK_224
 
518
        if (g_access(datafile, F_OK) == -1) {
 
519
        #else
 
520
        if (g_access(datafile, 0) == -1) {
 
521
        #endif
 
522
                xml_create_copy_export_file(datafile);
 
523
        }
 
524
        _load_data(datafile);
 
525
        if(datafile)
 
526
                g_free(datafile);
368
527
 
369
528
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.rb_copy), TRUE);
370
529
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.rb_multi_verse), TRUE);
371
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d.rb_plain), TRUE);
372
530
 
373
531
        g_signal_connect(dialog, "response",
374
532
                         G_CALLBACK(on_dialog_export_passage_response), NULL);
408
566
        g_signal_connect ((gpointer) d.rb_multi_verse, "toggled",
409
567
                    G_CALLBACK (on_rb_multi_verse_toggled),
410
568
                    NULL);
 
569
        g_signal_connect ((gpointer) d.cb_version, "toggled",
 
570
                    G_CALLBACK (on_cb_version_toggled),
 
571
                    NULL);
 
572
        g_signal_connect ((gpointer) d.cb_reference_last, "toggled",
 
573
                    G_CALLBACK (on_reference_last_toggled),
 
574
                    NULL);
411
575
}