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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2144
diff changeset
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
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2144
diff changeset
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: */