2
2
* Xiphos Bible Study Tool
3
3
* utilities.c - support functions
5
* Copyright (C) 2000-2009 Xiphos Developer Team
5
* Copyright (C) 2000-2010 Xiphos Developer Team
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
173
172
strcpy(sidebar.mod_name, module_name);
175
if (verse_list[0] == 'S' && verse_list[1] == 'e'
176
&& verse_list[2] == 'e') {
174
if (!strncmp(verse_list, "See ", 4))
180
tmp = backend->parse_verse_list(verse_list, key);
181
while (tmp != NULL) {
177
if ((*verse_list != '/') &&
178
((tmp = backend->parse_verse_list(verse_list, key)) != NULL)) {
179
// normal verse list.
180
while (tmp != NULL) {
181
gtk_list_store_append(list_store, &iter);
182
gtk_list_store_set(list_store, &iter, 0,
183
(const char *) tmp->data, -1);
185
list_item = g_new(RESULTS, 1);
186
list_item->module = g_strdup(module_name);
187
list_item->key = g_strdup((const char *) tmp->data);
188
list_of_verses = g_list_append(list_of_verses,
189
(RESULTS *) list_item);
191
tmp = g_list_next(tmp);
194
// not normal verse list. probably a genbook or dict key.
182
195
gtk_list_store_append(list_store, &iter);
183
gtk_list_store_set(list_store, &iter, 0,
184
(const char *) tmp->data, -1);
196
gtk_list_store_set(list_store, &iter, 0, verse_list, -1);
187
list_item = g_new(RESULTS,1);
198
list_item = g_new(RESULTS, 1);
188
199
list_item->module = g_strdup(module_name);
189
list_item->key = g_strdup((const char *) tmp->data);
200
list_item->key = g_strdup((const char *) verse_list);
190
201
list_of_verses = g_list_append(list_of_verses,
191
202
(RESULTS *) list_item);
193
tmp = g_list_next(tmp);
196
205
selection = gtk_tree_view_get_selection
510
519
COL_OPEN_PIXBUF, pixbufs->pixbuf_opened, -1);
511
520
if (backend->module_has_testament(mod_name, 1)) {
512
521
while (j < key.BMAX[0]) {
513
#ifdef SWORD_MULTIVERSE
514
522
key.Testament(1);
516
524
buf = strdup((gchar *) key.getBookName());
518
buf = strdup((gchar *) key.books[0][j].name);
520
525
gchar *key = g_strdup_printf("book://%s/%s 1:1",
522
527
gtk_tree_store_append(GTK_TREE_STORE(model),
540
545
if (backend->module_has_testament(mod_name, 2)) {
541
546
while (j < key.BMAX[1]) {
542
#ifdef SWORD_MULTIVERSE
543
547
key.Testament(2);
545
549
buf = strdup((gchar *) key.getBookName());
547
buf = strdup((gchar *) key.books[1][j].name);
549
550
gchar *key = g_strdup_printf("book://%s/%s 1:1",
551
552
gtk_tree_store_append(GTK_TREE_STORE(model),
643
641
&mod, 4, &key, -1);
646
645
if (!g_utf8_collate(cap, _("Parallel View"))) {
647
646
if (settings.dockedInt) {
648
gtk_notebook_set_current_page (GTK_NOTEBOOK
647
gtk_notebook_set_current_page(GTK_NOTEBOOK
650
649
notebook_bible_parallel),
706
704
notebook_bible_parallel),
708
706
// MainWindowModule is set in main_bible_display(), not here.
709
/*if (!gtk_tree_model_iter_has_child
708
#ifdef ALLOW_BIBLE_NAVIGATION_FROM_SIDEBAR_TREE
709
if (!gtk_tree_model_iter_has_child
710
710
(GTK_TREE_MODEL(model), &selected)
712
712
add_books_to_bible(model, selected, mod);
718
718
(GTK_TREE_MODEL(model), &selected)
719
719
&& strstr(key, "chapter:"))
720
720
add_verses_to_chapter(model, selected, key);
723
723
if (!GTK_CHECK_MENU_ITEM(widgets.viewtexts_item)->active) {
724
724
GTK_CHECK_MENU_ITEM(widgets.viewtexts_item)->active = 1;
745
745
on_show_commentary_activate
746
746
(GTK_MENU_ITEM(widgets.viewcomms_item), NULL);
749
748
main_display_commentary(mod, settings.currentverse);
751
751
case DICTIONARY_TYPE:
752
752
if (!GTK_CHECK_MENU_ITEM(widgets.viewdicts_item)->active) {
753
753
GTK_CHECK_MENU_ITEM(widgets.viewdicts_item)->active = 1;
754
754
on_show_dictionary_lexicon_activate
755
755
(GTK_MENU_ITEM(widgets.viewcomms_item), NULL);
758
757
main_display_dictionary(mod, settings.dictkey);
761
761
case PRAYERLIST_TYPE:
762
762
GS_message(("key %s", (key ? key : "-null-")));
770
770
if (!gtk_tree_model_iter_has_child
771
771
(GTK_TREE_MODEL(model), &selected)
773
add_children_to_tree(model,
773
add_children_to_tree(model, selected, mod, 0);
778
775
if (!gtk_tree_model_iter_has_child
779
776
(GTK_TREE_MODEL(model), &selected)
780
777
&& backend->treekey_has_children(key ? atoi(key) : 0)) {
781
add_children_to_tree(model,
782
selected, mod, atol(key));
778
add_children_to_tree(model, selected, mod, atol(key));
785
/* *** until after 3.1 ***
786
path_str = gtk_tree_path_to_string (path);
787
//GS_message (("path: %s", path_str));
781
#ifdef USE_TREEVIEW_PATH
782
gchar *path_str = gtk_tree_path_to_string (path);
783
GS_message (("path: %s", path_str));
788
784
gui_save_treeview_path_string (path_str, mod);
789
785
g_free (path_str);
786
#endif /* USE_TREEVIEW_PATH */
791
788
gtk_tree_view_expand_row(GTK_TREE_VIEW
792
789
(sidebar.module_list), path,
1034
1028
COL_MODULE, NULL,
1035
1029
COL_OFFSET, _("Dictionaries"), -1);
1031
/* Glossaries folders */
1032
gtk_tree_store_append(store, &glossary, NULL);
1033
gtk_tree_store_set(store, &glossary,
1034
COL_OPEN_PIXBUF, pixbufs->pixbuf_opened,
1035
COL_CLOSED_PIXBUF, pixbufs->pixbuf_closed,
1036
COL_CAPTION, _("Glossaries"),
1038
COL_OFFSET, _("Glossaries"), -1);
1037
1040
/* Devotionals folders */
1038
1041
gtk_tree_store_append(store, &devotional, NULL);
1039
1042
gtk_tree_store_set(store, &devotional,
1070
1073
COL_MODULE, NULL,
1071
1074
COL_OFFSET, _("Images"), -1);
1076
/* Cult/Unorthodox/Questionable folders */
1077
gtk_tree_store_append(store, &cult, NULL);
1078
gtk_tree_store_set(store, &cult,
1079
COL_OPEN_PIXBUF, pixbufs->pixbuf_opened,
1080
COL_CLOSED_PIXBUF, pixbufs->pixbuf_closed,
1081
COL_CAPTION, _("Cult/Unorthodox"),
1083
COL_OFFSET, _("Cult/Unorthodox"), -1);
1073
1085
/* Prayer lists folder */
1074
1086
if (settings.prayerlist) {
1075
1087
gtk_tree_store_append(store, &prayerlist, NULL);
1086
1098
language_make_list(tmp, store,
1087
1099
text, commentary, map, image,
1088
devotional, dictionary, book,
1100
devotional, dictionary, glossary, book, cult,
1090
language_add_folders);
1102
language_add_folders, FALSE);
1092
1104
// fast-n-loose w/known string values to avoid pointless strcmp costs.
1093
1105
// TEXT_MODS => 'B' ("Biblical Texts")
1102
1114
while (tmp2 != NULL) {
1103
1115
info = (MOD_MGR *) tmp2->data;
1105
if (info->type[0] == 'B') {
1117
if (info->is_cult) {
1118
add_module_to_language_folder(GTK_TREE_MODEL(store),
1119
cult, info->language,
1122
else if (info->type[0] == 'B') {
1106
1123
add_module_to_language_folder(GTK_TREE_MODEL(store),
1107
1124
text, info->language,
1127
1144
devotional, info->language,
1147
else if (info->is_glossary) {
1148
add_module_to_language_folder(GTK_TREE_MODEL(store),
1149
glossary, info->language,
1130
1152
else if (info->type[0] == 'L') {
1131
1153
add_module_to_language_folder(GTK_TREE_MODEL(store),
1132
1154
dictionary, info->language,