Mercurial > hg > forks > geeqie
annotate src/bar_comment.c @ 2916:ae6cdcd69d9f default tip
Merge with upstream/master.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 May 2019 11:46:50 +0300 |
parents | eb2ce489ceea |
children |
rev | line source |
---|---|
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
1 /* |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
2 * Copyright (C) 2004 John Ellis |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
3 * Copyright (C) 2008 - 2016 The Geeqie Team |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
4 * |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
5 * Author: John Ellis |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
6 * |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
10 * (at your option) any later version. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
11 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
15 * GNU General Public License for more details. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
16 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
17 * You should have received a copy of the GNU General Public License along |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
18 * with this program; if not, write to the Free Software Foundation, Inc., |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2185
diff
changeset
|
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
20 */ |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
21 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
22 #include "main.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
23 #include "bar_comment.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
24 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
25 #include "bar.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
26 #include "metadata.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
27 #include "filedata.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
28 #include "ui_menu.h" |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
29 #include "ui_misc.h" |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
30 #include "rcfile.h" |
1387
add2c9869a56
simplified bar interface
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1384
diff
changeset
|
31 #include "layout.h" |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
32 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
33 static void bar_pane_comment_changed(GtkTextBuffer *buffer, gpointer data); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
34 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
35 /* |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
36 *------------------------------------------------------------------- |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
37 * keyword / comment utils |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
38 *------------------------------------------------------------------- |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
39 */ |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
40 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
41 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
42 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
43 typedef struct _PaneCommentData PaneCommentData; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
44 struct _PaneCommentData |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
45 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
46 PaneData pane; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
47 GtkWidget *widget; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
48 GtkWidget *comment_view; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
49 FileData *fd; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
50 gchar *key; |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
51 gint height; |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
52 }; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
53 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
54 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
55 static void bar_pane_comment_write(PaneCommentData *pcd) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
56 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
57 gchar *comment; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
58 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
59 if (!pcd->fd) return; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
60 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
61 comment = text_widget_text_pull(pcd->comment_view); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
62 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
63 metadata_write_string(pcd->fd, pcd->key, comment); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
64 g_free(comment); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
65 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
66 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
67 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
68 static void bar_pane_comment_update(PaneCommentData *pcd) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
69 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
70 gchar *comment = NULL; |
2108
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
71 gchar *orig_comment = NULL; |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
72 gchar *comment_not_null; |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
73 GtkTextBuffer *comment_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pcd->comment_view)); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
74 |
2108
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
75 orig_comment = text_widget_text_pull(pcd->comment_view); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
76 comment = metadata_read_string(pcd->fd, pcd->key, METADATA_PLAIN); |
2108
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
77 comment_not_null = (comment) ? comment : ""; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
78 |
2108
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
79 if (strcmp(orig_comment, comment_not_null) != 0) |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
80 { |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
81 g_signal_handlers_block_by_func(comment_buffer, bar_pane_comment_changed, pcd); |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
82 gtk_text_buffer_set_text(comment_buffer, comment_not_null, -1); |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
83 g_signal_handlers_unblock_by_func(comment_buffer, bar_pane_comment_changed, pcd); |
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
84 } |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
85 g_free(comment); |
2108
2fcf3c151ca8
fixed updating of comment and keyword pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
86 g_free(orig_comment); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
87 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
88 gtk_widget_set_sensitive(pcd->comment_view, (pcd->fd != NULL)); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
89 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
90 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
91 static void bar_pane_comment_set_selection(PaneCommentData *pcd, gboolean append) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
92 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
93 GList *list = NULL; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
94 GList *work; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
95 gchar *comment = NULL; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
96 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
97 comment = text_widget_text_pull(pcd->comment_view); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
98 |
1387
add2c9869a56
simplified bar interface
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1384
diff
changeset
|
99 list = layout_selection_list(pcd->pane.lw); |
1754
4659e78fd247
fixed selection handling in sidebar
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1740
diff
changeset
|
100 list = file_data_process_groups_in_selection(list, FALSE, NULL); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
101 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
102 work = list; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
103 while (work) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
104 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
105 FileData *fd = work->data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
106 work = work->next; |
1754
4659e78fd247
fixed selection handling in sidebar
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1740
diff
changeset
|
107 if (fd == pcd->fd) continue; |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
108 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
109 if (append) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
110 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
111 metadata_append_string(fd, pcd->key, comment); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
112 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
113 else |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
114 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
115 metadata_write_string(fd, pcd->key, comment); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
116 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
117 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
118 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
119 filelist_free(list); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
120 g_free(comment); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
121 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
122 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
123 static void bar_pane_comment_sel_add_cb(GtkWidget *button, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
124 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
125 PaneCommentData *pcd = data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
126 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
127 bar_pane_comment_set_selection(pcd, TRUE); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
128 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
129 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
130 static void bar_pane_comment_sel_replace_cb(GtkWidget *button, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
131 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
132 PaneCommentData *pcd = data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
133 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
134 bar_pane_comment_set_selection(pcd, FALSE); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
135 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
136 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
137 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
138 static void bar_pane_comment_set_fd(GtkWidget *bar, FileData *fd) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
139 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
140 PaneCommentData *pcd; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
141 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
142 pcd = g_object_get_data(G_OBJECT(bar), "pane_data"); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
143 if (!pcd) return; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
144 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
145 file_data_unref(pcd->fd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
146 pcd->fd = file_data_ref(fd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
147 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
148 bar_pane_comment_update(pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
149 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
150 |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
151 static gint bar_pane_comment_event(GtkWidget *bar, GdkEvent *event) |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
152 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
153 PaneCommentData *pcd; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
154 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
155 pcd = g_object_get_data(G_OBJECT(bar), "pane_data"); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
156 if (!pcd) return FALSE; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
157 |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
158 if (gtk_widget_has_focus(pcd->comment_view)) return gtk_widget_event(pcd->comment_view, event); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
159 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
160 return FALSE; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
161 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
162 |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
163 static void bar_pane_comment_write_config(GtkWidget *pane, GString *outstr, gint indent) |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
164 { |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
165 PaneCommentData *pcd; |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
166 |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
167 pcd = g_object_get_data(G_OBJECT(pane), "pane_data"); |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
168 if (!pcd) return; |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
169 |
2482
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
170 if (!g_strcmp0(pcd->pane.id, "title")) |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
171 { |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
172 pcd->height = options->info_title.height; |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
173 } |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
174 if (!g_strcmp0(pcd->pane.id, "comment")) |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
175 { |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
176 pcd->height = options->info_comment.height; |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
177 } |
2500
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
178 if (!g_strcmp0(pcd->pane.id, "rating")) |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
179 { |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
180 pcd->height = options->info_rating.height; |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
181 } |
2482
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
182 |
1461
8f4df7710af8
improved config file formatting
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1389
diff
changeset
|
183 WRITE_NL(); WRITE_STRING("<pane_comment "); |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
184 write_char_option(outstr, indent, "id", pcd->pane.id); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
185 write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(pcd->pane.title))); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
186 WRITE_BOOL(pcd->pane, expanded); |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
187 WRITE_CHAR(*pcd, key); |
2184 | 188 WRITE_INT(*pcd, height); |
1461
8f4df7710af8
improved config file formatting
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1389
diff
changeset
|
189 WRITE_STRING("/>"); |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
190 } |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
191 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
192 static void bar_pane_comment_notify_cb(FileData *fd, NotifyType type, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
193 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
194 PaneCommentData *pcd = data; |
2184 | 195 if ((type & (NOTIFY_REREAD | NOTIFY_CHANGE | NOTIFY_METADATA)) && fd == pcd->fd) |
1498
2b0712dcf139
improved debug messages
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1489
diff
changeset
|
196 { |
2b0712dcf139
improved debug messages
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1489
diff
changeset
|
197 DEBUG_1("Notify pane_comment: %s %04x", fd->path, type); |
2b0712dcf139
improved debug messages
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1489
diff
changeset
|
198 |
2b0712dcf139
improved debug messages
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1489
diff
changeset
|
199 bar_pane_comment_update(pcd); |
2b0712dcf139
improved debug messages
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1489
diff
changeset
|
200 } |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
201 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
202 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
203 static void bar_pane_comment_changed(GtkTextBuffer *buffer, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
204 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
205 PaneCommentData *pcd = data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
206 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
207 bar_pane_comment_write(pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
208 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
209 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
210 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
211 static void bar_pane_comment_populate_popup(GtkTextView *textview, GtkMenu *menu, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
212 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
213 PaneCommentData *pcd = data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
214 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
215 menu_item_add_divider(GTK_WIDGET(menu)); |
1295
9cf6c7fb629b
Fix up few compilation warnings.
Laurent Monin <geeqie@norz.org>
parents:
1291
diff
changeset
|
216 menu_item_add_stock(GTK_WIDGET(menu), _("Add text to selected files"), GTK_STOCK_ADD, G_CALLBACK(bar_pane_comment_sel_add_cb), pcd); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
217 menu_item_add_stock(GTK_WIDGET(menu), _("Replace existing text in selected files"), GTK_STOCK_CONVERT, G_CALLBACK(bar_pane_comment_sel_replace_cb), data); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
218 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
219 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
220 static void bar_pane_comment_destroy(GtkWidget *widget, gpointer data) |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
221 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
222 PaneCommentData *pcd = data; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
223 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
224 file_data_unregister_notify_func(bar_pane_comment_notify_cb, pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
225 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
226 file_data_unref(pcd->fd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
227 g_free(pcd->key); |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
228 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
229 g_free(pcd->pane.id); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
230 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
231 g_free(pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
232 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
233 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
234 |
1485
baf93db3d65f
pane interface cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1471
diff
changeset
|
235 static GtkWidget *bar_pane_comment_new(const gchar *id, const gchar *title, const gchar *key, gboolean expanded, gint height) |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
236 { |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
237 PaneCommentData *pcd; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
238 GtkWidget *scrolled; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
239 GtkTextBuffer *buffer; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
240 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
241 pcd = g_new0(PaneCommentData, 1); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
242 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
243 pcd->pane.pane_set_fd = bar_pane_comment_set_fd; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
244 pcd->pane.pane_event = bar_pane_comment_event; |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
245 pcd->pane.pane_write_config = bar_pane_comment_write_config; |
1389
f674e5503097
Use a common function bar_pane_expander_title() to set expanders title widget.
Laurent Monin <geeqie@norz.org>
parents:
1387
diff
changeset
|
246 pcd->pane.title = bar_pane_expander_title(title); |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
247 pcd->pane.id = g_strdup(id); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
248 pcd->pane.type = PANE_COMMENT; |
1387
add2c9869a56
simplified bar interface
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1384
diff
changeset
|
249 |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
250 pcd->pane.expanded = expanded; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
251 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
252 pcd->key = g_strdup(key); |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
253 pcd->height = height; |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
254 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
255 scrolled = gtk_scrolled_window_new(NULL, NULL); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
256 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
257 pcd->widget = scrolled; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
258 g_object_set_data(G_OBJECT(pcd->widget), "pane_data", pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
259 g_signal_connect(G_OBJECT(pcd->widget), "destroy", |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
260 G_CALLBACK(bar_pane_comment_destroy), pcd); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
261 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
262 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
263 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
264 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
265 |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
266 gtk_widget_set_size_request(pcd->widget, -1, height); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
267 gtk_widget_show(scrolled); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
268 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
269 pcd->comment_view = gtk_text_view_new(); |
1384
b1d8136a6dd2
enable wrap mode in comment pane
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1343
diff
changeset
|
270 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pcd->comment_view), GTK_WRAP_WORD); |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
271 gtk_container_add(GTK_CONTAINER(scrolled), pcd->comment_view); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
272 g_signal_connect(G_OBJECT(pcd->comment_view), "populate-popup", |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
273 G_CALLBACK(bar_pane_comment_populate_popup), pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
274 gtk_widget_show(pcd->comment_view); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
275 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
276 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pcd->comment_view)); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
277 g_signal_connect(G_OBJECT(buffer), "changed", |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
278 G_CALLBACK(bar_pane_comment_changed), pcd); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
279 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
280 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
281 file_data_register_notify_func(bar_pane_comment_notify_cb, pcd, NOTIFY_PRIORITY_LOW); |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
282 |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
283 return pcd->widget; |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
284 } |
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
285 |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
286 GtkWidget *bar_pane_comment_new_from_config(const gchar **attribute_names, const gchar **attribute_values) |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
287 { |
1471
89ed5df7dc28
update translated pane titles
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1469
diff
changeset
|
288 gchar *title = NULL; |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
289 gchar *key = g_strdup(COMMENT_KEY); |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
290 gboolean expanded = TRUE; |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
291 gint height = 50; |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
292 gchar *id = g_strdup("comment"); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
293 GtkWidget *ret; |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
294 |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
295 while (*attribute_names) |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
296 { |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
297 const gchar *option = *attribute_names++; |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
298 const gchar *value = *attribute_values++; |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
299 |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
300 if (READ_CHAR_FULL("title", title)) continue; |
1315
4f8f11de5c36
Since READ_*() macros are now exported, do not hide
Laurent Monin <geeqie@norz.org>
parents:
1314
diff
changeset
|
301 if (READ_CHAR_FULL("key", key)) continue; |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
302 if (READ_BOOL_FULL("expanded", expanded)) continue; |
1315
4f8f11de5c36
Since READ_*() macros are now exported, do not hide
Laurent Monin <geeqie@norz.org>
parents:
1314
diff
changeset
|
303 if (READ_INT_FULL("height", height)) continue; |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
304 if (READ_CHAR_FULL("id", id)) continue; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
305 |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
306 |
1464
6c71e4a9d06a
be more verbose on parse errors
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1461
diff
changeset
|
307 log_printf("unknown attribute %s = %s\n", option, value); |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
308 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
309 |
2482
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
310 if (!g_strcmp0(id, "title")) |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
311 { |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
312 options->info_title.height = height; |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
313 } |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
314 if (!g_strcmp0(id, "comment")) |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
315 { |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
316 options->info_comment.height = height; |
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
317 } |
2500
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
318 if (!g_strcmp0(id, "rating")) |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
319 { |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
320 options->info_rating.height = height; |
eb2ce489ceea
Fix #323: Rating system
Colin Clark <colin.clark@cclark.uk>
parents:
2482
diff
changeset
|
321 } |
2482
9b050f7e7b6c
Fix #445: Info sidebar section heights
Colin Clark <colin.clark@cclark.uk>
parents:
2350
diff
changeset
|
322 |
1471
89ed5df7dc28
update translated pane titles
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1469
diff
changeset
|
323 bar_pane_translate_title(PANE_COMMENT, id, &title); |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
324 ret = bar_pane_comment_new(id, title, key, expanded, height); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
325 g_free(title); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
326 g_free(key); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
327 g_free(id); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
328 return ret; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
329 } |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
330 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
331 void bar_pane_comment_update_from_config(GtkWidget *pane, const gchar **attribute_names, const gchar **attribute_values) |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
332 { |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
333 PaneCommentData *pcd; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
334 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
335 pcd = g_object_get_data(G_OBJECT(pane), "pane_data"); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
336 if (!pcd) return; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
337 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
338 gchar *title = NULL; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
339 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
340 while (*attribute_names) |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
341 { |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
342 const gchar *option = *attribute_names++; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
343 const gchar *value = *attribute_values++; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
344 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
345 if (READ_CHAR_FULL("title", title)) continue; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
346 if (READ_CHAR_FULL("key", pcd->key)) continue; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
347 if (READ_BOOL_FULL("expanded", pcd->pane.expanded)) continue; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
348 if (READ_INT_FULL("height", pcd->height)) continue; |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
349 if (READ_CHAR_FULL("id", pcd->pane.id)) continue; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
350 |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
351 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
352 log_printf("unknown attribute %s = %s\n", option, value); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
353 } |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
354 |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
355 if (title) |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
356 { |
1471
89ed5df7dc28
update translated pane titles
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1469
diff
changeset
|
357 bar_pane_translate_title(PANE_COMMENT, pcd->pane.id, &title); |
1469
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
358 gtk_label_set_text(GTK_LABEL(pcd->pane.title), title); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
359 g_free(title); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
360 } |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
361 gtk_widget_set_size_request(pcd->widget, -1, pcd->height); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
362 bar_update_expander(pane); |
b9ef2bfd9d95
added a possibility to update existing bars from config
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1464
diff
changeset
|
363 bar_pane_comment_update(pcd); |
1309
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
364 } |
d89f8c4d593b
config file format changed to XML
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1295
diff
changeset
|
365 |
1291
abf5d1de9102
replaced bar_info with an universal bar, restored the original
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
diff
changeset
|
366 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |