pidgin/pidginlog.c

Mon, 20 May 2019 21:50:28 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 20 May 2019 21:50:28 -0500
changeset 39608
8d68fba092e7
parent 39606
d0e0be301638
child 39628
52c772b30a1c
permissions
-rw-r--r--

remove a few more references to webview

20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
1 /* pidgin
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7685
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7685
diff changeset
5 * source distribution.
7537
4c3be2f554b1 [gaim-migrate @ 8150]
Christian Hammond <chipx86@chipx86.com>
parents: 7535
diff changeset
6 *
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 *
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 *
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18743
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9624
diff changeset
21 #include "internal.h"
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
22 #include "pidgin.h"
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
24 #include "account.h"
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
25 #include "debug.h"
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
26 #include "log.h"
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
27 #include "notify.h"
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
28 #include "request.h"
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
29 #include "util.h"
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
30
15883
969b74a3e27a According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
31 #include "pidginstock.h"
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
32 #include "gtkblist.h"
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33 #include "gtkutils.h"
32439
2c681e5daeeb Webkit Message views.
Arnold Noronha <tdrhq@soc.pidgin.im>
parents: 25889
diff changeset
34 #include "gtkwebview.h"
39603
98fd85e156e0 Rename gtklog -> pidginlog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38897
diff changeset
35 #include "pidginlog.h"
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
36
33170
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33142
diff changeset
37 #include "gtk3compat.h"
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
38
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
39 #define PIDGIN_TYPE_LOG_VIEWER pidgin_log_viewer_get_type()
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
40 /**
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
41 * PidginLogViewer:
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
42 * @logs: The list of logs viewed in this viewer
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
43 * @treestore: The treestore containing said logs
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
44 * @treeview: The treeview representing said treestore
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
45 * @log_view: The webkit web view to display said logs
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
46 * @entry: The search entry, in which search terms are entered
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
47 * @search: The string currently being searched for
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
48 * @label: The label at the top of the log viewer
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
49 *
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
50 * A Pidgin Log Viewer. You can look at logs with it.
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
51 */
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
52 G_DECLARE_FINAL_TYPE(PidginLogViewer, pidgin_log_viewer, PIDGIN, LOG_VIEWER, GtkDialog)
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
53
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
54 struct _PidginLogViewer {
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
55 GtkDialog parent;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
56
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
57 GList *logs;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
58
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
59 GtkTreeStore *treestore;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
60 GtkWidget *treeview;
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
61 GtkWidget *log_view;
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
62 GtkWidget *entry;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
63
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
64 char *search;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
65 GtkLabel *label;
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
66 };
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
67
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
68 G_DEFINE_TYPE(PidginLogViewer, pidgin_log_viewer, GTK_TYPE_DIALOG)
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
69
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
70 static GHashTable *log_viewers = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
71 static void populate_log_tree(PidginLogViewer *lv);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
72 static PidginLogViewer *syslog_viewer = NULL;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
73
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
74 struct log_viewer_hash_t {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
75 PurpleLogType type;
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
76 char *buddyname;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
77 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
78 PurpleContact *contact;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79 };
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
80
7440
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
81 static guint log_viewer_hash(gconstpointer data)
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
82 {
7440
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
83 const struct log_viewer_hash_t *viewer = data;
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
84
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
85 if (viewer->contact != NULL)
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
86 return g_direct_hash(viewer->contact);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
87
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
88 return g_str_hash(viewer->buddyname) +
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
89 g_str_hash(purple_account_get_username(viewer->account));
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
90 }
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
91
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
92 static gboolean log_viewer_equal(gconstpointer y, gconstpointer z)
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
93 {
7440
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
94 const struct log_viewer_hash_t *a, *b;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
95 int ret;
7440
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
96 char *normal;
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
97
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
98 a = y;
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
99 b = z;
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
100
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
101 if (a->contact != NULL) {
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
102 if (b->contact != NULL)
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
103 return (a->contact == b->contact);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
104 else
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
105 return FALSE;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
106 } else {
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
107 if (b->contact != NULL)
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
108 return FALSE;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
109 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
110
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
111 normal = g_strdup(purple_normalize(a->account, a->buddyname));
7440
e0d8f6bc36c2 [gaim-migrate @ 8045]
Nathan Walp <nwalp@pidgin.im>
parents: 7436
diff changeset
112 ret = (a->account == b->account) &&
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 33728
diff changeset
113 purple_strequal(normal, purple_normalize(b->account, b->buddyname));
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
114 g_free(normal);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
115
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
116 return ret;
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
117 }
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
118
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
119 static void select_first_log(PidginLogViewer *lv)
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
120 {
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
121 GtkTreeModel *model;
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
122 GtkTreeIter iter, it;
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
123 GtkTreePath *path;
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
124
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
125 model = GTK_TREE_MODEL(lv->treestore);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
126
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
127 if (!gtk_tree_model_get_iter_first(model, &iter))
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
128 return;
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
129
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
130 path = gtk_tree_model_get_path(model, &iter);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
131 if (gtk_tree_model_iter_children(model, &it, &iter))
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
132 {
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
133 gtk_tree_view_expand_row(GTK_TREE_VIEW(lv->treeview), path, TRUE);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
134 path = gtk_tree_model_get_path(model, &it);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
135 }
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
136
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
137 gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(lv->treeview)), path);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
138
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
139 gtk_tree_path_free(path);
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
140 }
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
141
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
142 static gchar *log_get_date(PurpleLog *log)
15060
a5d9fafd2b8c [gaim-migrate @ 17777]
Richard Laager <rlaager@pidgin.im>
parents: 14861
diff changeset
143 {
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
144 GDateTime *dt;
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
145 gchar *ret;
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
146 dt = g_date_time_to_local(log->time);
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
147 ret = g_date_time_format(dt, "%c");
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
148 g_date_time_unref(dt);
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
149 return ret;
15060
a5d9fafd2b8c [gaim-migrate @ 17777]
Richard Laager <rlaager@pidgin.im>
parents: 14861
diff changeset
150 }
a5d9fafd2b8c [gaim-migrate @ 17777]
Richard Laager <rlaager@pidgin.im>
parents: 14861
diff changeset
151
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
152 static void search_cb(GtkWidget *button, PidginLogViewer *lv)
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
153 {
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
154 const char *search_term = gtk_entry_get_text(GTK_ENTRY(lv->entry));
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
155 GList *logs;
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
156
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 11869
diff changeset
157 if (!(*search_term)) {
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 11869
diff changeset
158 /* reset the tree */
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
159 gtk_tree_store_clear(lv->treestore);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
160 populate_log_tree(lv);
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
161 g_free(lv->search);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
162 lv->search = NULL;
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
163 webkit_web_view_unmark_text_matches(WEBKIT_WEB_VIEW(lv->log_view));
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
164 select_first_log(lv);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
165 return;
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
166 }
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
167
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 33728
diff changeset
168 if (lv->search != NULL && purple_strequal(lv->search, search_term))
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
169 {
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
170 /* Searching for the same term acts as "Find Next" */
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
171 webkit_web_view_search_text(WEBKIT_WEB_VIEW(lv->log_view), lv->search, FALSE, TRUE, TRUE);
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
172 return;
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
173 }
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
174
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
175 pidgin_set_cursor(GTK_WIDGET(lv), GDK_WATCH);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
176
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
177 g_free(lv->search);
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
178 lv->search = g_strdup(search_term);
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
179
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
180 gtk_tree_store_clear(lv->treestore);
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
181 webkit_web_view_open(WEBKIT_WEB_VIEW(lv->log_view), "about:blank"); /* clear the view */
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
182
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
183 for (logs = lv->logs; logs != NULL; logs = logs->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
184 char *read = purple_log_read((PurpleLog*)logs->data, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
185 if (read && *read && purple_strcasestr(read, search_term)) {
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
186 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
187 PurpleLog *log = logs->data;
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
188 gchar *log_date = log_get_date(log);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 11869
diff changeset
189
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
190 gtk_tree_store_append (lv->treestore, &iter, NULL);
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
191 gtk_tree_store_set(lv->treestore, &iter,
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
192 0, log_date,
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
193 1, log, -1);
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
194 g_free(log_date);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
195 }
10574
5abb2931b6ff [gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10181
diff changeset
196 g_free(read);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
197 }
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
198
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
199 select_first_log(lv);
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
200 pidgin_clear_cursor(GTK_WIDGET(lv));
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
201 }
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
202
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
203 static void destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
204 PidginLogViewer *lv = syslog_viewer;
7454
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
205
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
206 #ifdef _WIN32
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
207 if (resp == GTK_RESPONSE_HELP) {
18743
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
208 GtkTreeSelection *sel;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
209 GtkTreeIter iter;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
210 GtkTreeModel *model;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
211 PurpleLog *log = NULL;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
212 char *logdir;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
213
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
214 if (ht != NULL)
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
215 lv = g_hash_table_lookup(log_viewers, ht);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
216 model = GTK_TREE_MODEL(lv->treestore);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
217
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
218 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lv->treeview));
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
219 if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
220 GValue val;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
221
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
222 val.g_type = 0;
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
223 gtk_tree_model_get_value (model, &iter, 1, &val);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
224 log = g_value_get_pointer(&val);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
225 g_value_unset(&val);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
226 }
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
227
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
228
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
229 if (log == NULL)
38870
575e41bfc15e Migrate certificates, icons, logs to XDG dirs
qarkai <qarkai@gmail.com>
parents: 38007
diff changeset
230 logdir = g_build_filename(purple_data_dir(), "logs", NULL);
18743
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
231 else
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
232 logdir = purple_log_get_log_dir(log->type, log->name, log->account);
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
233
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15568
diff changeset
234 winpidgin_shell_execute(logdir, "explore", NULL);
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
235 g_free(logdir);
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
236 return;
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
237 }
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
238 #endif
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
239
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
240 if (ht != NULL) {
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
241 lv = g_hash_table_lookup(log_viewers, ht);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
242 g_hash_table_remove(log_viewers, ht);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
243
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
244 g_free(ht->buddyname);
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
245 g_free(ht);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
246 } else
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
247 syslog_viewer = NULL;
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
248
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
249 purple_request_close_with_handle(lv);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
250
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
251 g_list_foreach(lv->logs, (GFunc)purple_log_free, NULL);
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
252 g_list_free(lv->logs);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
253
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13569
diff changeset
254 g_free(lv->search);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
255
7454
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
256 gtk_widget_destroy(w);
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
257 }
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
258
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
259 static void log_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, PidginLogViewer *viewer) {
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
260 if (gtk_tree_view_row_expanded(tv, path))
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
261 gtk_tree_view_collapse_row(tv, path);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
262 else
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
263 gtk_tree_view_expand_row(tv, path, FALSE);
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
264 }
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
265
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
266 static void delete_log_cleanup_cb(gpointer *data)
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
267 {
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
268 g_free(data[1]); /* iter */
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
269 g_free(data);
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
270 }
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
271
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
272 static void delete_log_cb(gpointer *data)
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
273 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
274 if (!purple_log_delete((PurpleLog *)data[2]))
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
275 {
22384
0a2c39b4a6b1 Mark some strings for translation
Mark Doliner <markdoliner@pidgin.im>
parents: 22237
diff changeset
276 purple_notify_error(NULL, NULL, _("Log Deletion Failed"),
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
277 _("Check permissions and try again."), NULL);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
278 }
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
279 else
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
280 {
15613
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
281 GtkTreeStore *treestore = data[0];
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
282 GtkTreeIter *iter = (GtkTreeIter *)data[1];
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
283 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), iter);
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
284 gboolean first = !gtk_tree_path_prev(path);
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
285
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
286 if (!gtk_tree_store_remove(treestore, iter) && first)
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
287 {
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
288 /* iter was the last child at its level */
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
289
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
290 if (gtk_tree_path_up(path))
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
291 {
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
292 gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), iter, path);
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
293 gtk_tree_store_remove(treestore, iter);
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
294 }
9a6ec23fe078 If you delete the last log for a month, delete the month header as well.
Richard Laager <rlaager@pidgin.im>
parents: 15612
diff changeset
295 }
29500
1e0464dad92b This should pretty much finish off the GTK_CHECK_VERSION calls in Pidgin.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25889
diff changeset
296
16293
2b8f5d509cc9 Fix Gtk+ 2.0 support
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16280
diff changeset
297 gtk_tree_path_free(path);
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
298 }
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
299
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
300 delete_log_cleanup_cb(data);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
301 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
302
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
303 static void log_delete_log_cb(GtkWidget *menuitem, gpointer *data)
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
304 {
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
305 PidginLogViewer *lv = data[0];
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
306 PurpleLog *log = data[1];
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
307 GtkTreeIter *iter = data[2];
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
308 gchar *time = log_get_date(log);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
309 const char *name;
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
310 char *tmp;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
311 gpointer *data2;
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
312
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
313 if (log->type == PURPLE_LOG_IM)
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
314 {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
315 PurpleBuddy *buddy = purple_blist_find_buddy(log->account, log->name);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
316 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
317 name = purple_buddy_get_contact_alias(buddy);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
318 else
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
319 name = log->name;
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
320
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
321 tmp = g_strdup_printf(_("Are you sure you want to permanently delete the log of the "
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
322 "conversation with %s which started at %s?"), name, time);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
323 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
324 else if (log->type == PURPLE_LOG_CHAT)
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
325 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
326 PurpleChat *chat = purple_blist_find_chat(log->account, log->name);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
327 if (chat != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
328 name = purple_chat_get_name(chat);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
329 else
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
330 name = log->name;
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
331
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
332 tmp = g_strdup_printf(_("Are you sure you want to permanently delete the log of the "
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
333 "conversation in %s which started at %s?"), name, time);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
334 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
335 else if (log->type == PURPLE_LOG_SYSTEM)
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
336 {
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
337 tmp = g_strdup_printf(_("Are you sure you want to permanently delete the system log "
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
338 "which started at %s?"), time);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
339 }
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
340 else {
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
341 g_free(time);
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
342 g_free(iter);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
343 g_return_if_reached();
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
344 }
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
345
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
346 /* The only way to free data in all cases is to tie it to the menuitem with
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
347 * g_object_set_data_full(). But, since we need to get some data down to
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
348 * delete_log_cb() to delete the log from the log viewer after the file is
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
349 * deleted, we have to allocate a new data array and make sure it gets freed
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
350 * either way. */
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
351 data2 = g_new(gpointer, 3);
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
352 data2[0] = lv->treestore;
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
353 data2[1] = iter;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
354 data2[2] = log;
22384
0a2c39b4a6b1 Mark some strings for translation
Mark Doliner <markdoliner@pidgin.im>
parents: 22237
diff changeset
355 purple_request_action(lv, NULL, _("Delete Log?"), tmp, 0,
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34274
diff changeset
356 NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
357 data2, 2,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
358 _("Delete"), delete_log_cb,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
359 _("Cancel"), delete_log_cleanup_cb);
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
360 g_free(time);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
361 g_free(tmp);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
362 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
363
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
364 static GtkWidget *
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
365 log_create_popup_menu(GtkWidget *treeview, PidginLogViewer *lv, GtkTreeIter *iter)
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
366 {
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
367 GValue val;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
368 PurpleLog *log;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
369 GtkWidget *menu;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
370 GtkWidget *menuitem;
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
371
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
372 val.g_type = 0;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
373 gtk_tree_model_get_value(GTK_TREE_MODEL(lv->treestore), iter, 1, &val);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
374 log = g_value_get_pointer(&val);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
375 if (log == NULL) {
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
376 g_free(iter);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
377 return NULL;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
378 }
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
379
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
380 menu = gtk_menu_new();
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
381 menuitem = gtk_menu_item_new_with_label(_("Delete Log..."));
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
382
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
383 if (purple_log_is_deletable(log)) {
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
384 gpointer *data = g_new(gpointer, 3);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
385 data[0] = lv;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
386 data[1] = log;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
387 data[2] = iter;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
388
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
389 g_signal_connect(menuitem, "activate", G_CALLBACK(log_delete_log_cb), data);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
390 g_object_set_data_full(G_OBJECT(menuitem), "log-viewer-data", data, g_free);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
391 } else {
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
392 gtk_widget_set_sensitive(menuitem, FALSE);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
393 }
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
394 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
395 gtk_widget_show_all(menu);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
396
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
397 return menu;
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
398 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
399
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
400 static gboolean log_button_press_cb(GtkWidget *treeview, GdkEventButton *event, PidginLogViewer *lv)
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
401 {
38705
62a7a975251a Use gdk_event_triggers_context_menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38620
diff changeset
402 if (gdk_event_triggers_context_menu((GdkEvent *)event)) {
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
403 GtkTreePath *path;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
404 GtkTreeIter *iter;
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
405 GtkWidget *menu;
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
406
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
407 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), event->x, event->y, &path, NULL, NULL, NULL))
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
408 return FALSE;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
409 iter = g_new(GtkTreeIter, 1);
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
410 gtk_tree_model_get_iter(GTK_TREE_MODEL(lv->treestore), iter, path);
22455
1e4f21a50bc6 Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <datallah@pidgin.im>
parents: 22384
diff changeset
411 gtk_tree_path_free(path);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
412
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
413 menu = log_create_popup_menu(treeview, lv, iter);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
414 if (menu) {
38707
6f4d3ab2f2ed Use gtk_menu_popup_at_pointer instead of gtk_menu_popup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38706
diff changeset
415 gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event);
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
416 return TRUE;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
417 } else {
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
418 return FALSE;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
419 }
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
420 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
421
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
422 return FALSE;
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
423 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
424
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
425 static gboolean log_popup_menu_cb(GtkWidget *treeview, PidginLogViewer *lv)
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
426 {
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
427 GtkTreeSelection *sel;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
428 GtkTreeIter *iter;
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
429 GtkWidget *menu;
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
430
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
431 iter = g_new(GtkTreeIter, 1);
18743
58a367fa661a Make the "Browse Logs Folder" button open the folder containing the log
Richard Laager <rlaager@pidgin.im>
parents: 16490
diff changeset
432 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lv->treeview));
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
433 if (!gtk_tree_selection_get_selected(sel, NULL, iter)) {
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
434 g_free(iter);
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
435 return FALSE;
15612
5de26d19e4e5 After the log is deleted, remove the entry from the log viewer.
Richard Laager <rlaager@pidgin.im>
parents: 15586
diff changeset
436 }
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
437
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
438 menu = log_create_popup_menu(treeview, lv, iter);
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
439 if (menu) {
38709
6c80734ca3b4 Add pidgin_menu_popup_at_treeview_selection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38707
diff changeset
440 pidgin_menu_popup_at_treeview_selection(menu, treeview);
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
441 return TRUE;
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
442 } else {
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
443 return FALSE;
38706
4a3f253ea22c Reduce code duplication in log popup menu.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38705
diff changeset
444 }
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
445 }
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
446
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
447 static gboolean search_find_cb(gpointer data)
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
448 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
449 PidginLogViewer *viewer = data;
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
450 webkit_web_view_mark_text_matches(WEBKIT_WEB_VIEW(viewer->log_view), viewer->search, FALSE, 0);
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
451 webkit_web_view_set_highlight_text_matches(WEBKIT_WEB_VIEW(viewer->log_view), TRUE);
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
452 webkit_web_view_search_text(WEBKIT_WEB_VIEW(viewer->log_view), viewer->search, FALSE, TRUE, TRUE);
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
453 return FALSE;
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
454 }
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
455
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
456 static void log_select_cb(GtkTreeSelection *sel, PidginLogViewer *viewer) {
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
457 GtkTreeIter iter;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12232
diff changeset
458 GValue val;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
459 GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
460 PurpleLog *log = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
461 PurpleLogReadFlags flags;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
462 char *read = NULL;
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
463
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
464 if (!gtk_tree_selection_get_selected(sel, &model, &iter))
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
465 return;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12232
diff changeset
466
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12232
diff changeset
467 val.g_type = 0;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
468 gtk_tree_model_get_value (model, &iter, 1, &val);
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
469 log = g_value_get_pointer(&val);
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
470 g_value_unset(&val);
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
471
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
472 if (log == NULL)
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
473 return;
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
474
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
475 pidgin_set_cursor(GTK_WIDGET(viewer), GDK_WATCH);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 11869
diff changeset
476
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
477 if (log->type != PURPLE_LOG_SYSTEM) {
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
478 gchar *log_date = log_get_date(log);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
479 char *title;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
480 if (log->type == PURPLE_LOG_CHAT)
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
481 title = g_strdup_printf(_("<span size='larger' weight='bold'>Conversation in %s on %s</span>"),
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
482 log->name, log_date);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
483 else
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
484 title = g_strdup_printf(_("<span size='larger' weight='bold'>Conversation with %s on %s</span>"),
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
485 log->name, log_date);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
486
35721
abae078d0525 Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35528
diff changeset
487 gtk_label_set_markup(viewer->label, title);
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
488 g_free(log_date);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
489 g_free(title);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
490 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
491
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
492 read = purple_log_read(log, &flags);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
493
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
494 webkit_web_view_open(WEBKIT_WEB_VIEW(viewer->log_view), "about:blank");
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
495
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
496 purple_signal_emit(pidgin_log_get_handle(), "log-displaying", viewer, log);
32981
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
497
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
498 /* plaintext log (html one starts with <html> tag) */
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
499 if (read[0] != '<')
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
500 {
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
501 char *newRead = purple_strreplace(read, "\n", "<br>");
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
502 g_free(read);
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
503 read = newRead;
19e0299e7d2d Still making trunk usable again: correctly display plaintext logs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32912
diff changeset
504 }
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
505
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
506 webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(viewer->log_view), read, "");
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 11869
diff changeset
507 g_free(read);
7535
eff069bf9f27 [gaim-migrate @ 8148]
Sean Egan <seanegan@pidgin.im>
parents: 7533
diff changeset
508
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
509 if (viewer->search != NULL) {
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
510 webkit_web_view_unmark_text_matches(WEBKIT_WEB_VIEW(viewer->log_view));
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
511 g_idle_add(search_find_cb, viewer);
10574
5abb2931b6ff [gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10181
diff changeset
512 }
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
513
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
514 pidgin_clear_cursor(GTK_WIDGET(viewer));
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
515 }
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
516
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
517 /* I want to make this smarter, but haven't come up with a cool algorithm to do so, yet.
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
518 * I want the tree to be divided into groups like "Today," "Yesterday," "Last week,"
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
519 * "August," "2002," etc. based on how many conversation took place in each subdivision.
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
520 *
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
521 * For now, I'll just make it a flat list.
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
522 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
523 static void populate_log_tree(PidginLogViewer *lv)
11585
e194ce8dcf6f [gaim-migrate @ 13855]
Nathan Walp <nwalp@pidgin.im>
parents: 11402
diff changeset
524 /* Logs are made from trees in real life.
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
525 This is a tree made from logs */
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
526 {
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
527 gchar *month;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
528 char prev_top_month[30] = "";
9435
b17d52fece0f [gaim-migrate @ 10256]
Cole Kowalski
parents: 9192
diff changeset
529 GtkTreeIter toplevel, child;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
530 GList *logs = lv->logs;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
531
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
532 while (logs != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
533 PurpleLog *log = logs->data;
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
534 GDateTime *dt;
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
535 gchar *log_date;
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
536
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
537 dt = g_date_time_to_local(log->time);
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
538 month = g_date_time_format(dt, _("%B %Y"));
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
539
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
540 if (!purple_strequal(month, prev_top_month)) {
9435
b17d52fece0f [gaim-migrate @ 10256]
Cole Kowalski
parents: 9192
diff changeset
541 /* top level */
b17d52fece0f [gaim-migrate @ 10256]
Cole Kowalski
parents: 9192
diff changeset
542 gtk_tree_store_append(lv->treestore, &toplevel, NULL);
b17d52fece0f [gaim-migrate @ 10256]
Cole Kowalski
parents: 9192
diff changeset
543 gtk_tree_store_set(lv->treestore, &toplevel, 0, month, 1, NULL, -1);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
544
33728
be5378bae40e CID 731947 - Deal with the unlikely scenario that a locale would have a month+year value longer than 29 bytes.
Daniel Atallah <datallah@pidgin.im>
parents: 31321
diff changeset
545 g_strlcpy(prev_top_month, month, sizeof(prev_top_month));
10680
e4a00ce2fc35 [gaim-migrate @ 12226]
Richard Laager <rlaager@pidgin.im>
parents: 10669
diff changeset
546 }
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
547
10680
e4a00ce2fc35 [gaim-migrate @ 12226]
Richard Laager <rlaager@pidgin.im>
parents: 10669
diff changeset
548 /* sub */
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
549 log_date = g_date_time_format(dt, "%c");
10680
e4a00ce2fc35 [gaim-migrate @ 12226]
Richard Laager <rlaager@pidgin.im>
parents: 10669
diff changeset
550 gtk_tree_store_append(lv->treestore, &child, &toplevel);
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
551 gtk_tree_store_set(lv->treestore, &child,
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
552 0, log_date,
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
553 1, log,
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
554 -1);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
555
38620
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
556 g_free(log_date);
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
557 g_free(month);
b02941b9fa9a Change purple_log_new to use GDateTime.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38358
diff changeset
558 g_date_time_unref(dt);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
559 logs = logs->next;
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
560 }
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
561 }
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
562
21214
db28e29a4990 Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents: 21172
diff changeset
563 static PidginLogViewer *display_log_viewer(struct log_viewer_hash_t *ht, GList *logs,
15639
4d29fa62453d Use person icon for Person log viewer
Sean Egan <seanegan@pidgin.im>
parents: 15613
diff changeset
564 const char *title, GtkWidget *icon, int log_size)
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
565 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
566 PidginLogViewer *lv;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
567 GtkWidget *title_box;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
568 char *text;
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
569 GtkWidget *pane;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
570 GtkCellRenderer *rend;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
571 GtkTreeViewColumn *col;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
572 GtkTreeSelection *sel;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
573 GtkWidget *vbox;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
574 GtkWidget *frame;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
575 GtkWidget *hbox;
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
576 GtkWidget *find_button;
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
577 GtkWidget *size_label;
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
578
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
579 if (logs == NULL)
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
580 {
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
581 /* No logs were found. */
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
582 const char *log_preferences = NULL;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
583
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
584 if (ht == NULL) {
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16293
diff changeset
585 if (!purple_prefs_get_bool("/purple/logging/log_system"))
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
586 log_preferences = _("System events will only be logged if the \"Log all status changes to system log\" preference is enabled.");
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
587 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
588 if (ht->type == PURPLE_LOG_IM) {
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16293
diff changeset
589 if (!purple_prefs_get_bool("/purple/logging/log_ims"))
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
590 log_preferences = _("Instant messages will only be logged if the \"Log all instant messages\" preference is enabled.");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
591 } else if (ht->type == PURPLE_LOG_CHAT) {
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16293
diff changeset
592 if (!purple_prefs_get_bool("/purple/logging/log_chats"))
11869
e77f2f29b09d [gaim-migrate @ 14160]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11780
diff changeset
593 log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled.");
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
594 }
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
595 g_free(ht->buddyname);
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
596 g_free(ht);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
597 }
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
598
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
599 if(icon != NULL)
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
600 gtk_widget_destroy(icon);
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
601
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
602 purple_notify_info(NULL, title, _("No logs were found"), log_preferences, NULL);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
603 return NULL;
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
604 }
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
605
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
606 /* Window ***********/
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
607 lv = g_object_new(PIDGIN_TYPE_LOG_VIEWER, NULL);
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
608 gtk_window_set_title(GTK_WINDOW(lv), title);
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
609 gtk_dialog_add_buttons(GTK_DIALOG(lv), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
610
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
611 lv->logs = logs;
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
612
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
613 if (ht != NULL)
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
614 g_hash_table_insert(log_viewers, ht, lv);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
615
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
616 #ifdef _WIN32
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
617 /* Steal the "HELP" response and use it to trigger browsing to the logs folder */
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
618 gtk_dialog_add_button(GTK_DIALOG(lv), _("_Browse logs folder"), GTK_RESPONSE_HELP);
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
619 #endif
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
620 gtk_container_set_border_width(GTK_CONTAINER(lv), PIDGIN_HIG_BOX_SPACE);
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
621 gtk_box_set_spacing(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(lv))), 0);
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
622 g_signal_connect(G_OBJECT(lv), "response",
7454
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
623 G_CALLBACK(destroy_cb), ht);
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
624 gtk_window_set_role(GTK_WINDOW(lv), "log_viewer");
7454
c99a2070471e [gaim-migrate @ 8067]
Mark Doliner <markdoliner@pidgin.im>
parents: 7440
diff changeset
625
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
626 /* Icon *************/
15639
4d29fa62453d Use person icon for Person log viewer
Sean Egan <seanegan@pidgin.im>
parents: 15613
diff changeset
627 if (icon != NULL) {
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
628 title_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15656
diff changeset
629 gtk_container_set_border_width(GTK_CONTAINER(title_box), PIDGIN_HIG_BOX_SPACE);
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
630 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(lv))),
32422
c215bc5d85e4 Whitespace fixes. Try and check your editor settings before writing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32394
diff changeset
631 title_box, FALSE, FALSE, 0);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
632
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
633 gtk_box_pack_start(GTK_BOX(title_box), icon, FALSE, FALSE, 0);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
634 } else
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
635 title_box = gtk_dialog_get_content_area(GTK_DIALOG(lv));
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
636
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
637 /* Label ************/
35721
abae078d0525 Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35528
diff changeset
638 lv->label = GTK_LABEL(gtk_label_new(NULL));
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
639
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
640 text = g_strdup_printf("<span size='larger' weight='bold'>%s</span>", title);
9624
0c5f5a2e971c [gaim-migrate @ 10468]
Sean Egan <seanegan@pidgin.im>
parents: 9435
diff changeset
641
35721
abae078d0525 Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35528
diff changeset
642 gtk_label_set_markup(lv->label, text);
38007
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
643 gtk_label_set_xalign(GTK_LABEL(lv->label), 0);
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
644 gtk_label_set_yalign(GTK_LABEL(lv->label), 0);
35721
abae078d0525 Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35528
diff changeset
645 gtk_box_pack_start(GTK_BOX(title_box), GTK_WIDGET(lv->label), FALSE, FALSE, 0);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
646 g_free(text);
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
647
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
648 /* Pane *************/
35528
e04ba70092e9 Fix the rest of [hv] gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35527
diff changeset
649 pane = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15656
diff changeset
650 gtk_container_set_border_width(GTK_CONTAINER(pane), PIDGIN_HIG_BOX_SPACE);
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
651 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(lv))),
32422
c215bc5d85e4 Whitespace fixes. Try and check your editor settings before writing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32394
diff changeset
652 pane, TRUE, TRUE, 0);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
653
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
654 /* List *************/
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
655 lv->treestore = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
656 lv->treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (lv->treestore));
22214
e8a9916cb99e It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21352
diff changeset
657 g_object_unref(G_OBJECT(lv->treestore));
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
658 rend = gtk_cell_renderer_text_new();
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
659 col = gtk_tree_view_column_new_with_attributes ("time", rend, "markup", 0, NULL);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
660 gtk_tree_view_append_column (GTK_TREE_VIEW(lv->treeview), col);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
661 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (lv->treeview), FALSE);
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 33728
diff changeset
662 gtk_paned_add1(GTK_PANED(pane),
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 29685
diff changeset
663 pidgin_make_scrollable(lv->treeview, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1));
11402
1be90c47f022 [gaim-migrate @ 13637]
Peter McCurdy <cpirate@users.sourceforge.net>
parents: 11243
diff changeset
664
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
665 populate_log_tree(lv);
11402
1be90c47f022 [gaim-migrate @ 13637]
Peter McCurdy <cpirate@users.sourceforge.net>
parents: 11243
diff changeset
666
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
667 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (lv->treeview));
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
668 g_signal_connect (G_OBJECT (sel), "changed",
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
669 G_CALLBACK (log_select_cb),
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
670 lv);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
671 g_signal_connect (G_OBJECT(lv->treeview), "row-activated",
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
672 G_CALLBACK(log_row_activated_cb),
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
673 lv);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
674 pidgin_set_accessible_label(lv->treeview, lv->label);
11585
e194ce8dcf6f [gaim-migrate @ 13855]
Nathan Walp <nwalp@pidgin.im>
parents: 11402
diff changeset
675
15586
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
676 g_signal_connect(lv->treeview, "button-press-event", G_CALLBACK(log_button_press_cb), lv);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
677 g_signal_connect(lv->treeview, "popup-menu", G_CALLBACK(log_popup_menu_cb), lv);
b03db9cb6cac Implement the UI for deleting logs. This allows users to right-click on
Richard Laager <rlaager@pidgin.im>
parents: 15578
diff changeset
678
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
679 /* Log size ************/
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
680 if(log_size) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
681 char *sz_txt = purple_str_size_to_units(log_size);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
682 text = g_strdup_printf("<span weight='bold'>%s</span> %s", _("Total log size:"), sz_txt);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
683 size_label = gtk_label_new(NULL);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
684 gtk_label_set_markup(GTK_LABEL(size_label), text);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
685 /* gtk_paned_add1(GTK_PANED(pane), size_label); */
38007
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
686 gtk_label_set_xalign(GTK_LABEL(size_label), 0);
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
687 gtk_label_set_yalign(GTK_LABEL(size_label), 0);
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
688 gtk_box_pack_end(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(lv))),
32422
c215bc5d85e4 Whitespace fixes. Try and check your editor settings before writing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32394
diff changeset
689 size_label, FALSE, FALSE, 0);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
690 g_free(sz_txt);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
691 g_free(text);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
692 }
11402
1be90c47f022 [gaim-migrate @ 13637]
Peter McCurdy <cpirate@users.sourceforge.net>
parents: 11243
diff changeset
693
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
694 /* A fancy little box ************/
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
695 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
696 gtk_paned_add2(GTK_PANED(pane), vbox);
11402
1be90c47f022 [gaim-migrate @ 13637]
Peter McCurdy <cpirate@users.sourceforge.net>
parents: 11243
diff changeset
697
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
698 /* Viewer ************/
39605
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
699 frame = pidgin_create_webview(FALSE, &lv->log_view, NULL);
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
700 gtk_widget_set_name(lv->log_view, "pidgin_log_log_view");
d18e1b255f51 Remove web_view naming from PidginLogViewer internals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39604
diff changeset
701 gtk_widget_set_size_request(lv->log_view, 320, 200);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
702 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
703 gtk_widget_show(frame);
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10175
diff changeset
704
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
705 /* Search box **********/
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
706 hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
707 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
708 lv->entry = gtk_entry_new();
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
709 gtk_box_pack_start(GTK_BOX(hbox), lv->entry, TRUE, TRUE, 0);
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
710 find_button = gtk_button_new_from_stock(GTK_STOCK_FIND);
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
711 gtk_box_pack_start(GTK_BOX(hbox), find_button, FALSE, FALSE, 0);
11769
66e922bf0ebd [gaim-migrate @ 14060]
Mark Doliner <markdoliner@pidgin.im>
parents: 11703
diff changeset
712 g_signal_connect(GTK_ENTRY(lv->entry), "activate", G_CALLBACK(search_cb), lv);
14400
953baf2eba1a [gaim-migrate @ 17035]
Richard Laager <rlaager@pidgin.im>
parents: 14253
diff changeset
713 g_signal_connect(GTK_BUTTON(find_button), "clicked", G_CALLBACK(search_cb), lv);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
714
13569
4f0396bc59fc [gaim-migrate @ 15947]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13435
diff changeset
715 select_first_log(lv);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
716
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
717 gtk_widget_show_all(GTK_WIDGET(lv));
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
718
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
719 return lv;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
720 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
721
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
722 /****************************************************************************
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
723 * GObject Implementation
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
724 ****************************************************************************/
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
725 static void
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
726 pidgin_log_viewer_class_init(PidginLogViewerClass *klass)
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
727 {
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
728 }
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
729
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
730 static void
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
731 pidgin_log_viewer_init(PidginLogViewer *self)
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
732 {
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
733 }
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
734
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
735 /****************************************************************************
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
736 * Public API
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
737 ****************************************************************************/
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
738
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
739 void pidgin_log_show(PurpleLogType type, const char *buddyname, PurpleAccount *account) {
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
740 struct log_viewer_hash_t *ht;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
741 PidginLogViewer *lv = NULL;
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
742 const char *name = buddyname;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
743 char *title;
36545
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36459
diff changeset
744 GdkPixbuf *protocol_icon;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
745
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
746 g_return_if_fail(account != NULL);
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
747 g_return_if_fail(buddyname != NULL);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
748
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
749 ht = g_new0(struct log_viewer_hash_t, 1);
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15060
diff changeset
750
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
751 ht->type = type;
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
752 ht->buddyname = g_strdup(buddyname);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
753 ht->account = account;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
754
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
755 if (log_viewers == NULL) {
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
756 log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
757 } else if ((lv = g_hash_table_lookup(log_viewers, ht))) {
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
758 gtk_window_present(GTK_WINDOW(lv));
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
759 g_free(ht->buddyname);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
760 g_free(ht);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
761 return;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
762 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
763
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
764 if (type == PURPLE_LOG_CHAT) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
765 PurpleChat *chat;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
766
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
767 chat = purple_blist_find_chat(account, buddyname);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
768 if (chat != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
769 name = purple_chat_get_name(chat);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
770
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
771 title = g_strdup_printf(_("Conversations in %s"), name);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
772 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
773 PurpleBuddy *buddy;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
774
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
775 buddy = purple_blist_find_buddy(account, buddyname);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
776 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
777 name = purple_buddy_get_contact_alias(buddy);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
778
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
779 title = g_strdup_printf(_("Conversations with %s"), name);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
780 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
781
36545
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36459
diff changeset
782 protocol_icon = pidgin_create_protocol_icon(account, PIDGIN_PROTOCOL_ICON_MEDIUM);
20229
0c823e1a389d applied changes from 1e697229b1c9a564fa1e509cc9a4a83da6e664df
Luke Schierer <lschiere@pidgin.im>
parents: 20147
diff changeset
783
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
784 display_log_viewer(ht, purple_log_get_logs(type, buddyname, account),
36545
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36459
diff changeset
785 title, gtk_image_new_from_pixbuf(protocol_icon),
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24964
diff changeset
786 purple_log_get_total_size(type, buddyname, account));
20229
0c823e1a389d applied changes from 1e697229b1c9a564fa1e509cc9a4a83da6e664df
Luke Schierer <lschiere@pidgin.im>
parents: 20147
diff changeset
787
36545
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36459
diff changeset
788 if (protocol_icon)
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36459
diff changeset
789 g_object_unref(protocol_icon);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
790 g_free(title);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
791 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
792
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
793 void pidgin_log_show_contact(PurpleContact *contact) {
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
794 struct log_viewer_hash_t *ht;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
795 PurpleBlistNode *child;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
796 PidginLogViewer *lv = NULL;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
797 GList *logs = NULL;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
798 GdkPixbuf *pixbuf;
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
799 GtkWidget *image;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
800 const char *name = NULL;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
801 char *title;
11585
e194ce8dcf6f [gaim-migrate @ 13855]
Nathan Walp <nwalp@pidgin.im>
parents: 11402
diff changeset
802 int total_log_size = 0;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
803
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
804 g_return_if_fail(contact != NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
805
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
806 ht = g_new0(struct log_viewer_hash_t, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
807 ht->type = PURPLE_LOG_IM;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
808 ht->contact = contact;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
809
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
810 if (log_viewers == NULL) {
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
811 log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
812 } else if ((lv = g_hash_table_lookup(log_viewers, ht))) {
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
813 gtk_window_present(GTK_WINDOW(lv));
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
814 g_free(ht);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
815 return;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
816 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
817
24959
346d2e79e719 Fix one struct hiding issue.
Richard Laager <rlaager@pidgin.im>
parents: 22455
diff changeset
818 for (child = purple_blist_node_get_first_child((PurpleBlistNode*)contact) ;
346d2e79e719 Fix one struct hiding issue.
Richard Laager <rlaager@pidgin.im>
parents: 22455
diff changeset
819 child != NULL ;
346d2e79e719 Fix one struct hiding issue.
Richard Laager <rlaager@pidgin.im>
parents: 22455
diff changeset
820 child = purple_blist_node_get_sibling_next(child)) {
24964
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
821 const char *buddy_name;
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
822 PurpleAccount *account;
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
823
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 33760
diff changeset
824 if (!PURPLE_IS_BUDDY(child))
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
825 continue;
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
826
24964
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
827 buddy_name = purple_buddy_get_name((PurpleBuddy *)child);
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
828 account = purple_buddy_get_account((PurpleBuddy *)child);
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
829 logs = g_list_concat(purple_log_get_logs(PURPLE_LOG_IM, buddy_name, account), logs);
ce4a5049a69f Another small struct hiding change.
Richard Laager <rlaager@pidgin.im>
parents: 24959
diff changeset
830 total_log_size += purple_log_get_total_size(PURPLE_LOG_IM, buddy_name, account);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
831 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
832 logs = g_list_sort(logs, purple_log_compare);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
833
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
834 image = gtk_image_new();
16280
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
835 pixbuf = gtk_widget_render_icon(image, PIDGIN_STOCK_STATUS_PERSON,
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
836 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL), "GtkWindow");
22237
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
837 if (pixbuf) {
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
838 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf);
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
839 g_object_unref(pixbuf);
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
840 } else {
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
841 gtk_widget_destroy(image);
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
842 image = NULL;
8865b5d78095 Some more little leak fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 22214
diff changeset
843 }
16280
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
844
34739
7d507b8b9f92 Refactored pidgin to use the GObject BList API
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
845 name = purple_contact_get_alias(contact);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
846
16280
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
847 /* This will happen if the contact doesn't have an alias,
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
848 * and none of the contact's buddies are online.
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
849 * There is probably a better way to deal with this. */
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
850 if (name == NULL) {
34739
7d507b8b9f92 Refactored pidgin to use the GObject BList API
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
851 if (PURPLE_BLIST_NODE(contact)->child != NULL &&
7d507b8b9f92 Refactored pidgin to use the GObject BList API
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
852 PURPLE_IS_BUDDY(PURPLE_BLIST_NODE(contact)->child))
7d507b8b9f92 Refactored pidgin to use the GObject BList API
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
853 name = purple_buddy_get_contact_alias(PURPLE_BUDDY(
7d507b8b9f92 Refactored pidgin to use the GObject BList API
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
854 PURPLE_BLIST_NODE(contact)->child));
16280
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
855 if (name == NULL)
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
856 name = "";
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
857 }
f1174892ed45 Fix a printf(%s, NULL) when opening a log for an buddy whose contact has no online buddies and no alias.
Daniel Atallah <datallah@pidgin.im>
parents: 16259
diff changeset
858
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
859 title = g_strdup_printf(_("Conversations with %s"), name);
21214
db28e29a4990 Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents: 21172
diff changeset
860 display_log_viewer(ht, logs, title, image, total_log_size);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
861 g_free(title);
7432
d95b7d2b2716 [gaim-migrate @ 8037]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
862 }
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
863
21214
db28e29a4990 Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents: 21172
diff changeset
864 void pidgin_syslog_show()
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
865 {
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
866 GList *accounts = NULL;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10645
diff changeset
867 GList *logs = NULL;
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
868
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10175
diff changeset
869 if (syslog_viewer != NULL) {
39604
f39e54ed7bfa Convert PidginLogViewer into a (private) GObject.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39603
diff changeset
870 gtk_window_present(GTK_WINDOW(syslog_viewer));
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
871 return;
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
872 }
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
873
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
874 for(accounts = purple_accounts_get_all(); accounts != NULL; accounts = accounts->next) {
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
875
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
876 PurpleAccount *account = (PurpleAccount *)accounts->data;
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36545
diff changeset
877 if(purple_protocols_find(purple_account_get_protocol_id(account)) == NULL)
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
878 continue;
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
879
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
880 logs = g_list_concat(purple_log_get_system_logs(account), logs);
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
881 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
882 logs = g_list_sort(logs, purple_log_compare);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
883
21214
db28e29a4990 Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents: 21172
diff changeset
884 syslog_viewer = display_log_viewer(NULL, logs, _("System Log"), NULL, 0);
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8137
diff changeset
885 }
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
886
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
887 /****************************************************************************
39603
98fd85e156e0 Rename gtklog -> pidginlog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38897
diff changeset
888 * PIDGIN LOG SUBSYSTEM *****************************************************
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
889 ****************************************************************************/
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
890
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
891 void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
892 pidgin_log_get_handle(void)
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
893 {
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
894 static int handle;
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
895
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
896 return &handle;
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
897 }
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
898
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
899 void pidgin_log_init(void)
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
900 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
901 void *handle = pidgin_log_get_handle();
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
902
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
903 purple_signal_register(handle, "log-displaying",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
904 purple_marshal_VOID__POINTER_POINTER,
34827
1615d90aa584 Refactored pidgin to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34739
diff changeset
905 G_TYPE_NONE, 2,
1615d90aa584 Refactored pidgin to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34739
diff changeset
906 G_TYPE_POINTER, /* (PidginLogViewer *) */
1615d90aa584 Refactored pidgin to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34739
diff changeset
907 PURPLE_TYPE_LOG);
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
908 }
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
909
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
910 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
911 pidgin_log_uninit(void)
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
912 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
913 purple_signals_unregister_by_instance(pidgin_log_get_handle());
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
914 }

mercurial