Sat, 29 Oct 2022 01:14:13 -0500
Convert PidginProxyPrefs to Adwaita 1.2
Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.
Reviewed at https://reviews.imfreedom.org/r/1996/
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
23 | #include <glib/gi18n-lib.h> |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
24 | |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
25 | #include <adwaita.h> |
|
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
26 | |
|
41702
4289b30044ed
Rename pidginconversationwindow.[ch] to pidgindisplaywindow.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
41701
diff
changeset
|
27 | #include "pidgindisplaywindow.h" |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
29 | #include "gtkconv.h" |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
30 | #include "gtkdialogs.h" |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
31 | #include "gtkutils.h" |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
32 | #include "pidgininvitedialog.h" |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
33 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
34 | enum { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
35 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
36 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
37 | PIDGIN_DISPLAY_WINDOW_COLUMN_ICON, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
38 | PIDGIN_DISPLAY_WINDOW_COLUMN_MARKUP, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
39 | }; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
40 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
41 | enum { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
42 | SIG_CONVERSATION_SWITCHED, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
43 | N_SIGNALS, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
44 | }; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
45 | static guint signals[N_SIGNALS] = {0, }; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
46 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
47 | struct _PidginDisplayWindow { |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | GtkApplicationWindow parent; |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | GtkWidget *vbox; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
51 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
52 | GtkWidget *view; |
|
41476
1a53026013e4
Show conversations by default in the conversation window and set the select mode to browse
Gary Kramlich <grim@reaperworld.com>
parents:
41443
diff
changeset
|
53 | GtkTreeSelection *selection; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
54 | GtkTreeStore *model; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
55 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
56 | GtkWidget *stack; |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
57 | |
|
41849
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
58 | GtkWidget *contact_list; |
|
41441
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
59 | GtkWidget *notification_list; |
|
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
60 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
61 | GtkTreePath *conversation_path; |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | }; |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
64 | G_DEFINE_TYPE(PidginDisplayWindow, pidgin_display_window, |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | GTK_TYPE_APPLICATION_WINDOW) |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
67 | static GtkWidget *default_window = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
68 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
69 | /****************************************************************************** |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
70 | * Helpers |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
71 | *****************************************************************************/ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
72 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
73 | pidgin_display_window_actions_set_enabled(GActionMap *map, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
74 | const gchar **actions, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
75 | gboolean enabled) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
76 | { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
77 | gint i = 0; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
78 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
79 | for(i = 0; actions[i] != NULL; i++) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
80 | GAction *action = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
81 | const gchar *name = actions[i]; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
82 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
83 | action = g_action_map_lookup_action(map, name); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
84 | if(action != NULL) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
85 | g_simple_action_set_enabled(G_SIMPLE_ACTION(action), enabled); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
86 | } else { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
87 | g_critical("Failed to find action named %s", name); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
88 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
89 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
90 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
91 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
92 | /****************************************************************************** |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
93 | * Callbacks |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
94 | *****************************************************************************/ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
95 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
96 | pidgin_display_window_invite_cb(GtkDialog *dialog, gint response_id, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
97 | G_GNUC_UNUSED gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
98 | { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
99 | PidginInviteDialog *invite_dialog = PIDGIN_INVITE_DIALOG(dialog); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
100 | PurpleChatConversation *chat = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
101 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
102 | chat = pidgin_invite_dialog_get_conversation(invite_dialog); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
103 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
104 | g_object_set_data(G_OBJECT(chat), "pidgin-invite-dialog", NULL); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
105 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
106 | if(response_id == GTK_RESPONSE_ACCEPT) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
107 | const gchar *contact = NULL, *message = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
108 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
109 | contact = pidgin_invite_dialog_get_contact(invite_dialog); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
110 | message = pidgin_invite_dialog_get_message(invite_dialog); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
111 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
112 | if(!purple_strequal(contact, "")) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
113 | PurpleConnection *connection = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
114 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
115 | connection = purple_conversation_get_connection(PURPLE_CONVERSATION(chat)); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
116 | purple_serv_chat_invite(connection, |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
117 | purple_chat_conversation_get_id(chat), |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
118 | message, contact); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
119 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
120 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
121 | |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
122 | gtk_window_destroy(GTK_WINDOW(invite_dialog)); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
123 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
124 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
125 | /****************************************************************************** |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
126 | * Actions |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
127 | *****************************************************************************/ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
128 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
129 | pidgin_display_window_alias(G_GNUC_UNUSED GSimpleAction *simple, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
130 | G_GNUC_UNUSED GVariant *parameter, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
131 | gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
132 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
133 | PidginDisplayWindow *window = data; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
134 | PurpleConversation *selected = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
135 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
136 | selected = pidgin_display_window_get_selected(window); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
137 | if(PURPLE_IS_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
138 | PurpleAccount *account; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
139 | const gchar *name; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
140 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
141 | account = purple_conversation_get_account(selected); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
142 | name = purple_conversation_get_name(selected); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
143 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
144 | if(PURPLE_IS_IM_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
145 | PurpleBuddy *buddy = purple_blist_find_buddy(account, name); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
146 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
147 | if(PURPLE_IS_BUDDY(buddy)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
148 | pidgin_dialogs_alias_buddy(buddy); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
149 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
150 | } else if(PURPLE_IS_CHAT_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
151 | PurpleChat *chat = purple_blist_find_chat(account, name); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
152 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
153 | if(PURPLE_IS_CHAT(chat)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
154 | pidgin_dialogs_alias_chat(chat); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
155 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
156 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
157 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
158 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
159 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
160 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
161 | pidgin_display_window_close_conversation(G_GNUC_UNUSED GSimpleAction *simple, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
162 | G_GNUC_UNUSED GVariant *parameter, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
163 | gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
164 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
165 | PidginDisplayWindow *window = data; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
166 | PurpleConversation *selected = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
167 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
168 | selected = pidgin_display_window_get_selected(window); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
169 | if(PURPLE_IS_CONVERSATION(selected)) { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
170 | pidgin_display_window_remove(window, selected); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
171 | pidgin_conversation_detach(selected); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
172 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
173 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
174 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
175 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
176 | pidgin_display_window_get_info(G_GNUC_UNUSED GSimpleAction *simple, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
177 | G_GNUC_UNUSED GVariant *parameter, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
178 | gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
179 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
180 | PidginDisplayWindow *window = data; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
181 | PurpleConversation *selected = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
182 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
183 | selected = pidgin_display_window_get_selected(window); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
184 | if(PURPLE_IS_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
185 | if(PURPLE_IS_IM_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
186 | PurpleConnection *connection = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
187 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
188 | connection = purple_conversation_get_connection(selected); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
189 | pidgin_retrieve_user_info(connection, |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
190 | purple_conversation_get_name(selected)); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
191 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
192 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
193 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
194 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
195 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
196 | pidgin_display_window_invite(G_GNUC_UNUSED GSimpleAction *simple, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
197 | G_GNUC_UNUSED GVariant *parameter, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
198 | gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
199 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
200 | PidginDisplayWindow *window = data; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
201 | PurpleConversation *selected = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
202 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
203 | selected = pidgin_display_window_get_selected(window); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
204 | if(PURPLE_IS_CHAT_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
205 | GtkWidget *invite_dialog = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
206 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
207 | invite_dialog = g_object_get_data(G_OBJECT(selected), |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
208 | "pidgin-invite-dialog"); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
209 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
210 | if(!GTK_IS_WIDGET(invite_dialog)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
211 | invite_dialog = pidgin_invite_dialog_new(PURPLE_CHAT_CONVERSATION(selected)); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
212 | g_object_set_data(G_OBJECT(selected), "pidgin-invite-dialog", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
213 | invite_dialog); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
214 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
215 | gtk_window_set_transient_for(GTK_WINDOW(invite_dialog), |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
216 | GTK_WINDOW(window)); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
217 | gtk_window_set_destroy_with_parent(GTK_WINDOW(invite_dialog), TRUE); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
218 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
219 | g_signal_connect(invite_dialog, "response", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
220 | G_CALLBACK(pidgin_display_window_invite_cb), |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
221 | NULL); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
222 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
223 | |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
224 | gtk_widget_show(invite_dialog); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
225 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
226 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
227 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
228 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
229 | pidgin_display_window_send_file(G_GNUC_UNUSED GSimpleAction *simple, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
230 | G_GNUC_UNUSED GVariant *parameter, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
231 | gpointer data) |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
232 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
233 | PidginDisplayWindow *window = data; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
234 | PurpleConversation *selected = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
235 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
236 | selected = pidgin_display_window_get_selected(window); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
237 | if(PURPLE_IS_IM_CONVERSATION(selected)) { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
238 | PurpleConnection *connection = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
239 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
240 | connection = purple_conversation_get_connection(selected); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
241 | purple_serv_send_file(connection, |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
242 | purple_conversation_get_name(selected), |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
243 | NULL); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
244 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
245 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
246 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
247 | static GActionEntry win_entries[] = { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
248 | { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
249 | .name = "alias", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
250 | .activate = pidgin_display_window_alias |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
251 | }, { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
252 | .name = "close", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
253 | .activate = pidgin_display_window_close_conversation |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
254 | }, { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
255 | .name = "get-info", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
256 | .activate = pidgin_display_window_get_info |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
257 | }, { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
258 | .name = "invite", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
259 | .activate = pidgin_display_window_invite |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
260 | }, { |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
261 | .name = "send-file", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
262 | .activate = pidgin_display_window_send_file |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
263 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
264 | }; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
265 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
266 | /*<private> |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
267 | * pidgin_display_window_conversation_actions: |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
268 | * |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
269 | * A list of action names that are only valid if a conversation is selected. |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
270 | */ |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
271 | static const gchar *pidgin_display_window_conversation_actions[] = { |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
272 | "alias", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
273 | "close", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
274 | "get-info", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
275 | NULL |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
276 | }; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
277 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
278 | static const gchar *pidgin_display_window_im_conversation_actions[] = { |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
279 | "send-file", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
280 | NULL |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
281 | }; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
282 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
283 | static const gchar *pidgin_display_window_chat_conversation_actions[] = { |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
284 | "invite", |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
285 | NULL |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
286 | }; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
287 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
288 | /****************************************************************************** |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
289 | * Callbacks |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
290 | *****************************************************************************/ |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
291 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
292 | pidgin_display_window_selection_changed(GtkTreeSelection *selection, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
293 | gpointer data) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
294 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
295 | PidginDisplayWindow *window = PIDGIN_DISPLAY_WINDOW(data); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
296 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
297 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
298 | gboolean changed = FALSE; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
299 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
300 | if(gtk_tree_selection_get_selected(selection, &model, &iter)) { |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
301 | GObject *obj; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
302 | gboolean is_conversation = FALSE; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
303 | gboolean im_selected = FALSE, chat_selected = FALSE; |
|
41441
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
304 | gchar *name = NULL; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
305 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
306 | gtk_tree_model_get(model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
307 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, &name, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
308 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, &obj, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
309 | -1); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
310 | |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
311 | adw_view_stack_set_visible_child_name(ADW_VIEW_STACK(window->stack), |
|
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
312 | name); |
|
41441
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
313 | g_free(name); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
314 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
315 | changed = TRUE; |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
316 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
317 | /* If a conversation is selected, enable the generic conversation |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
318 | * actions. |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
319 | */ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
320 | is_conversation = PURPLE_IS_CONVERSATION(obj); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
321 | pidgin_display_window_actions_set_enabled(G_ACTION_MAP(window), |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
322 | pidgin_display_window_conversation_actions, |
|
41484
abadfc227738
Fix warning when selecting Notifications tab
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41482
diff
changeset
|
323 | is_conversation); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
324 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
325 | /* If an IM is selected, enable the IM-specific actions otherwise |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
326 | * disable them. |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
327 | */ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
328 | im_selected = PURPLE_IS_IM_CONVERSATION(obj); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
329 | pidgin_display_window_actions_set_enabled(G_ACTION_MAP(window), |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
330 | pidgin_display_window_im_conversation_actions, |
|
41484
abadfc227738
Fix warning when selecting Notifications tab
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41482
diff
changeset
|
331 | im_selected); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
332 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
333 | /* If a chat is selected, enable the chat-specific actions otherwise |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
334 | * disable them. |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
335 | */ |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
336 | chat_selected = PURPLE_IS_CHAT_CONVERSATION(obj); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
337 | pidgin_display_window_actions_set_enabled(G_ACTION_MAP(window), |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
338 | pidgin_display_window_chat_conversation_actions, |
|
41484
abadfc227738
Fix warning when selecting Notifications tab
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41482
diff
changeset
|
339 | chat_selected); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
340 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
341 | g_clear_object(&obj); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
342 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
343 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
344 | if(!changed) { |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
345 | adw_view_stack_set_visible_child_name(ADW_VIEW_STACK(window->stack), |
|
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
346 | "__conversations__"); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
347 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
348 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
349 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
350 | static gboolean |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
351 | pidgin_display_window_key_pressed_cb(GtkEventControllerKey *controller, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
352 | guint keyval, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
353 | G_GNUC_UNUSED guint keycode, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
354 | GdkModifierType state, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
355 | gpointer data) |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
356 | { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
357 | PidginDisplayWindow *window = data; |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
358 | |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
359 | /* If CTRL was held down... */ |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
360 | if (state & GDK_CONTROL_MASK) { |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
361 | switch (keyval) { |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
362 | case GDK_KEY_Page_Down: |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
363 | case GDK_KEY_KP_Page_Down: |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
364 | case ']': |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
365 | pidgin_display_window_select_next(window); |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
366 | return TRUE; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
367 | break; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
368 | |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
369 | case GDK_KEY_Page_Up: |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
370 | case GDK_KEY_KP_Page_Up: |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
371 | case '[': |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
372 | pidgin_display_window_select_previous(window); |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
373 | return TRUE; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
374 | break; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
375 | } /* End of switch */ |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
376 | } |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
377 | |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
378 | /* If ALT (or whatever) was held down... */ |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
379 | else if (state & GDK_ALT_MASK) { |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
380 | if ('1' <= keyval && keyval <= '9') { |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
381 | guint switchto = keyval - '1'; |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
382 | pidgin_display_window_select_nth(window, switchto); |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
383 | |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
384 | return TRUE; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
385 | } |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
386 | } |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
387 | |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
388 | return FALSE; |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
389 | } |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
390 | |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
391 | /****************************************************************************** |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
392 | * GObjectImplementation |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
393 | *****************************************************************************/ |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
394 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
395 | pidgin_display_window_dispose(GObject *obj) { |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
396 | PidginDisplayWindow *window = PIDGIN_DISPLAY_WINDOW(obj); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
397 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
398 | if(GTK_IS_TREE_MODEL(window->model)) { |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
399 | GtkTreeModel *model = GTK_TREE_MODEL(window->model); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
400 | GtkTreeIter parent, iter; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
401 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
402 | gtk_tree_model_get_iter(model, &parent, window->conversation_path); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
403 | if(gtk_tree_model_iter_children(model, &iter, &parent)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
404 | gboolean valid = FALSE; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
405 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
406 | /* gtk_tree_store_remove moves the iter to the next item at the |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
407 | * same level, so we abuse that to do our iteration. |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
408 | */ |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
409 | do { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
410 | PurpleConversation *conversation = NULL; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
411 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
412 | gtk_tree_model_get(model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
413 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, &conversation, |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
414 | -1); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
415 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
416 | if(PURPLE_IS_CONVERSATION(conversation)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
417 | pidgin_conversation_detach(conversation); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
418 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
419 | valid = gtk_tree_store_remove(window->model, &iter); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
420 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
421 | } while(valid); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
422 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
423 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
424 | g_clear_pointer(&window->conversation_path, gtk_tree_path_free); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
425 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
426 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
427 | G_OBJECT_CLASS(pidgin_display_window_parent_class)->dispose(obj); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
428 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
429 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
430 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
431 | pidgin_display_window_init(PidginDisplayWindow *window) { |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
432 | GtkEventController *key = NULL; |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
433 | GtkTreeIter iter; |
|
40627
3d6797191bf5
Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents:
40577
diff
changeset
|
434 | |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
435 | gtk_widget_init_template(GTK_WIDGET(window)); |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
436 | |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
437 | gtk_window_set_application(GTK_WINDOW(window), |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
438 | GTK_APPLICATION(g_application_get_default())); |
|
40627
3d6797191bf5
Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents:
40577
diff
changeset
|
439 | |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
440 | g_action_map_add_action_entries(G_ACTION_MAP(window), win_entries, |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
441 | G_N_ELEMENTS(win_entries), window); |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
442 | |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
443 | key = gtk_event_controller_key_new(); |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
444 | gtk_event_controller_set_propagation_phase(key, GTK_PHASE_CAPTURE); |
|
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
445 | g_signal_connect(G_OBJECT(key), "key-pressed", |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
446 | G_CALLBACK(pidgin_display_window_key_pressed_cb), |
|
41186
f8275d257afe
Move conversation window key handling into its file
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
447 | window); |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
448 | gtk_widget_add_controller(GTK_WIDGET(window), key); |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
449 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
450 | /* Add our toplevels to the tree store. */ |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
451 | gtk_tree_store_append(window->model, &iter, NULL); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
452 | gtk_tree_store_set(window->model, &iter, |
|
41849
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
453 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, window->contact_list, |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
454 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, "__contacts__", |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
455 | PIDGIN_DISPLAY_WINDOW_COLUMN_MARKUP, _("Contacts"), |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
456 | -1); |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
457 | |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
458 | gtk_tree_store_append(window->model, &iter, NULL); |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
459 | gtk_tree_store_set(window->model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
460 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, window->notification_list, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
461 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, "__notifications__", |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
462 | PIDGIN_DISPLAY_WINDOW_COLUMN_MARKUP, _("Notifications"), |
|
41441
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
463 | -1); |
|
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
464 | |
|
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
465 | gtk_tree_store_append(window->model, &iter, NULL); |
|
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
466 | gtk_tree_store_set(window->model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
467 | PIDGIN_DISPLAY_WINDOW_COLUMN_MARKUP, _("Conversations"), |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
468 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, "__conversations__", |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
469 | -1); |
|
41476
1a53026013e4
Show conversations by default in the conversation window and set the select mode to browse
Gary Kramlich <grim@reaperworld.com>
parents:
41443
diff
changeset
|
470 | gtk_tree_selection_select_iter(window->selection, &iter); |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
471 | window->conversation_path = gtk_tree_model_get_path(GTK_TREE_MODEL(window->model), |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
472 | &iter); |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
473 | } |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
474 | |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
475 | static void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
476 | pidgin_display_window_class_init(PidginDisplayWindowClass *klass) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
477 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
478 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
479 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
480 | obj_class->dispose = pidgin_display_window_dispose; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
481 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
482 | /** |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
483 | * PidginDisplayWindow::conversation-switched: |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
484 | * @window: The conversation window. |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
485 | * @new_conv: The now active conversation. |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
486 | * |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
487 | * Emitted when a window switched from one conversation to another. |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41476
diff
changeset
|
488 | */ |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
489 | signals[SIG_CONVERSATION_SWITCHED] = g_signal_new_class_handler( |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
490 | "conversation-switched", |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
491 | G_OBJECT_CLASS_TYPE(obj_class), |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
492 | G_SIGNAL_RUN_LAST, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
493 | NULL, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
494 | NULL, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
495 | NULL, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
496 | NULL, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
497 | G_TYPE_NONE, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
498 | 1, |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
499 | PURPLE_TYPE_CONVERSATION |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
500 | ); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
501 | |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
502 | gtk_widget_class_set_template_from_resource( |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
503 | widget_class, |
|
41702
4289b30044ed
Rename pidginconversationwindow.[ch] to pidgindisplaywindow.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
41701
diff
changeset
|
504 | "/im/pidgin/Pidgin3/Display/window.ui" |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
505 | ); |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
506 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
507 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
508 | vbox); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
509 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
510 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
511 | model); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
512 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
513 | view); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
514 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41476
1a53026013e4
Show conversations by default in the conversation window and set the select mode to browse
Gary Kramlich <grim@reaperworld.com>
parents:
41443
diff
changeset
|
515 | selection); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
516 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
517 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
518 | stack); |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
519 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41849
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
520 | contact_list); |
|
413cde086275
Add a placeholder to PidginDisplayWindow for the ContactList
Gary Kramlich <grim@reaperworld.com>
parents:
41702
diff
changeset
|
521 | gtk_widget_class_bind_template_child(widget_class, PidginDisplayWindow, |
|
41441
e114ed471a1e
Implement the UI for the new Notifications API.
Gary Kramlich <grim@reaperworld.com>
parents:
41254
diff
changeset
|
522 | notification_list); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
523 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
524 | gtk_widget_class_bind_template_callback(widget_class, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
525 | pidgin_display_window_selection_changed); |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
526 | |
|
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
527 | gtk_widget_class_bind_template_callback(widget_class, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
528 | pidgin_display_window_key_pressed_cb); |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
529 | } |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
530 | |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
531 | /****************************************************************************** |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
532 | * API |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
533 | *****************************************************************************/ |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
534 | GtkWidget * |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
535 | pidgin_display_window_get_default(void) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
536 | if(!GTK_IS_WIDGET(default_window)) { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
537 | default_window = pidgin_display_window_new(); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
538 | g_object_add_weak_pointer(G_OBJECT(default_window), |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
539 | (gpointer)&default_window); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
540 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
541 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
542 | return default_window; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
543 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
544 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
545 | GtkWidget * |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
546 | pidgin_display_window_new(void) { |
|
41582
4ee4a8ddc190
Explicitly set show-menubar so our menubars are shown
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
547 | return g_object_new( |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
548 | PIDGIN_TYPE_DISPLAY_WINDOW, |
|
41582
4ee4a8ddc190
Explicitly set show-menubar so our menubars are shown
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
549 | "show-menubar", TRUE, |
|
4ee4a8ddc190
Explicitly set show-menubar so our menubars are shown
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
550 | NULL); |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
551 | } |
|
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
552 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
553 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
554 | pidgin_display_window_add(PidginDisplayWindow *window, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
555 | PurpleConversation *conversation) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
556 | { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
557 | PidginConversation *gtkconv = NULL; |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
558 | GtkTreeIter parent, iter; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
559 | GtkTreeModel *model = NULL; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
560 | const gchar *markup = NULL; |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
561 | gboolean expand = FALSE; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
562 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
563 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
564 | g_return_if_fail(PURPLE_IS_CONVERSATION(conversation)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
565 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
566 | model = GTK_TREE_MODEL(window->model); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
567 | if(!gtk_tree_model_get_iter(model, &parent, window->conversation_path)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
568 | /* If we can't find the conversation_path we have to bail. */ |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
569 | g_warning("couldn't get an iterator to conversation_path"); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
570 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
571 | return; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
572 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
573 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
574 | if(!gtk_tree_model_iter_has_child(model, &parent)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
575 | expand = TRUE; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
576 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
577 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
578 | markup = purple_conversation_get_name(conversation); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
579 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
580 | gtkconv = PIDGIN_CONVERSATION(conversation); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
581 | if(gtkconv != NULL) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
582 | GtkWidget *parent = gtk_widget_get_parent(gtkconv->tab_cont); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
583 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
584 | if(GTK_IS_WIDGET(parent)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
585 | g_object_ref(gtkconv->tab_cont); |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
586 | gtk_widget_unparent(gtkconv->tab_cont); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
587 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
588 | |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
589 | adw_view_stack_add_named(ADW_VIEW_STACK(window->stack), |
|
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
590 | gtkconv->tab_cont, markup); |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
591 | gtk_widget_show(gtkconv->tab_cont); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
592 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
593 | if(GTK_IS_WIDGET(parent)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
594 | g_object_unref(gtkconv->tab_cont); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
595 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
596 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
597 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
598 | gtk_tree_store_prepend(window->model, &iter, &parent); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
599 | gtk_tree_store_set(window->model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
600 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, conversation, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
601 | PIDGIN_DISPLAY_WINDOW_COLUMN_NAME, markup, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
602 | PIDGIN_DISPLAY_WINDOW_COLUMN_MARKUP, markup, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
603 | -1); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
604 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
605 | /* If we just added the first child, expand the parent. */ |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
606 | if(expand) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
607 | gtk_tree_view_expand_row(GTK_TREE_VIEW(window->view), |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
608 | window->conversation_path, FALSE); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
609 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
610 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
611 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
612 | if(!gtk_widget_is_visible(GTK_WIDGET(window))) { |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
613 | gtk_widget_show(GTK_WIDGET(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
614 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
615 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
616 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
617 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
618 | pidgin_display_window_remove(PidginDisplayWindow *window, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
619 | PurpleConversation *conversation) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
620 | { |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
621 | GtkTreeIter parent, iter; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
622 | GtkTreeModel *model = NULL; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
623 | GObject *obj = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
624 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
625 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
626 | g_return_if_fail(PURPLE_IS_CONVERSATION(conversation)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
627 | |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
628 | model = GTK_TREE_MODEL(window->model); |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
629 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
630 | if(!gtk_tree_model_get_iter(model, &parent, window->conversation_path)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
631 | /* The path is somehow invalid, so bail... */ |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
632 | return; |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
633 | } |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
634 | |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
635 | if(!gtk_tree_model_iter_children(model, &iter, &parent)) { |
|
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
636 | /* The conversations iter has no children. */ |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
637 | return; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
638 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
639 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
640 | do { |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
641 | gtk_tree_model_get(model, &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
642 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, &obj, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
643 | -1); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
644 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
645 | if(PURPLE_CONVERSATION(obj) == conversation) { |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
646 | GtkWidget *child = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
647 | const gchar *name = NULL; |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
648 | |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
649 | name = purple_conversation_get_name(conversation); |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
650 | child = adw_view_stack_get_child_by_name(ADW_VIEW_STACK(window->stack), |
|
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
651 | name); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
652 | if(GTK_IS_WIDGET(child)) { |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41527
diff
changeset
|
653 | gtk_widget_unparent(child); |
|
41482
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
654 | } |
|
c51a28d28a2d
Start implementing the conversation window actions.
Gary Kramlich <grim@reaperworld.com>
parents:
41479
diff
changeset
|
655 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
656 | gtk_tree_store_remove(window->model, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
657 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
658 | g_clear_object(&obj); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
659 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
660 | break; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
661 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
662 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
663 | g_clear_object(&obj); |
|
41254
ef50e0dc74b0
Add a group for conversation in the PidginConversationWindow tree view
Gary Kramlich <grim@reaperworld.com>
parents:
41252
diff
changeset
|
664 | } while(gtk_tree_model_iter_next(model, &iter)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
665 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
666 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
667 | guint |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
668 | pidgin_display_window_get_count(PidginDisplayWindow *window) { |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
669 | GtkSelectionModel *model = NULL; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
670 | guint count = 0; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
671 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
672 | g_return_val_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window), 0); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
673 | |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
674 | model = adw_view_stack_get_pages(ADW_VIEW_STACK(window->stack)); |
|
41527
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
675 | |
|
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
676 | count = g_list_model_get_n_items(G_LIST_MODEL(model)); |
|
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
677 | |
|
4dff8cd4e9ea
Convert PidginConversationWindow to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41484
diff
changeset
|
678 | g_object_unref(model); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
679 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
680 | return count; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
681 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
682 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
683 | PurpleConversation * |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
684 | pidgin_display_window_get_selected(PidginDisplayWindow *window) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
685 | PurpleConversation *conversation = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
686 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
687 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
688 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
689 | g_return_val_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window), NULL); |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
690 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
691 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
692 | if(gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
693 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
694 | gtk_tree_model_get(GTK_TREE_MODEL(window->model), &iter, |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
695 | PIDGIN_DISPLAY_WINDOW_COLUMN_OBJECT, &conversation, |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
696 | -1); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
697 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
698 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
699 | return conversation; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
700 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
701 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
702 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
703 | pidgin_display_window_select(PidginDisplayWindow *window, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
704 | PurpleConversation *conversation) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
705 | { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
706 | const gchar *name = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
707 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
708 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
709 | g_return_if_fail(PURPLE_IS_CONVERSATION(conversation)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
710 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
711 | name = purple_conversation_get_name(conversation); |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
712 | adw_view_stack_set_visible_child_name(ADW_VIEW_STACK(window->stack), name); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
713 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
714 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
715 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
716 | pidgin_display_window_select_previous(PidginDisplayWindow *window) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
717 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
718 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
719 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
720 | gboolean set = FALSE; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
721 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
722 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
723 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
724 | model = GTK_TREE_MODEL(window->model); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
725 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
726 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
727 | if(gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
728 | if(gtk_tree_model_iter_previous(model, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
729 | gtk_tree_selection_select_iter(selection, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
730 | set = TRUE; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
731 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
732 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
733 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
734 | if(!set) { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
735 | pidgin_display_window_select_last(window); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
736 | } |
|
40577
953d563429b8
Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
737 | } |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
738 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
739 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
740 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
741 | pidgin_display_window_select_next(PidginDisplayWindow *window) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
742 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
743 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
744 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
745 | gboolean set = FALSE; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
746 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
747 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
748 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
749 | model = GTK_TREE_MODEL(window->model); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
750 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
751 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
752 | if(gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
753 | if(gtk_tree_model_iter_next(model, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
754 | gtk_tree_selection_select_iter(selection, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
755 | set = TRUE; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
756 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
757 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
758 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
759 | if(!set) { |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
760 | pidgin_display_window_select_first(window); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
761 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
762 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
763 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
764 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
765 | pidgin_display_window_select_first(PidginDisplayWindow *window) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
766 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
767 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
768 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
769 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
770 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
771 | model = GTK_TREE_MODEL(window->model); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
772 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
773 | if(gtk_tree_model_get_iter_first(model, &iter)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
774 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
775 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
776 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
777 | gtk_tree_selection_select_iter(selection, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
778 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
779 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
780 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
781 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
782 | pidgin_display_window_select_last(PidginDisplayWindow *window) { |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
783 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
784 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
785 | gint count = 0; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
786 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
787 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
788 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
789 | model = GTK_TREE_MODEL(window->model); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
790 | count = gtk_tree_model_iter_n_children(model, NULL); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
791 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
792 | if(gtk_tree_model_iter_nth_child(model, &iter, NULL, count - 1)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
793 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
794 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
795 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
796 | gtk_tree_selection_select_iter(selection, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
797 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
798 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
799 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
800 | void |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
801 | pidgin_display_window_select_nth(PidginDisplayWindow *window, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
802 | guint nth) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
803 | { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
804 | GtkTreeIter iter; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
805 | GtkTreeModel *model = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
806 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
807 | g_return_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
808 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
809 | model = GTK_TREE_MODEL(window->model); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
810 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
811 | if(gtk_tree_model_iter_nth_child(model, &iter, NULL, nth)) { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
812 | GtkTreeSelection *selection = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
813 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
814 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(window->view)); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
815 | gtk_tree_selection_select_iter(selection, &iter); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
816 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
817 | } |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
818 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
819 | gboolean |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
820 | pidgin_display_window_conversation_is_selected(PidginDisplayWindow *window, |
|
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
821 | PurpleConversation *conversation) |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
822 | { |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
823 | const gchar *name = NULL, *visible = NULL; |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
824 | |
|
41696
35f8ce475b21
Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents:
41582
diff
changeset
|
825 | g_return_val_if_fail(PIDGIN_IS_DISPLAY_WINDOW(window), FALSE); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
826 | g_return_val_if_fail(PURPLE_IS_CONVERSATION(conversation), FALSE); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
827 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
828 | name = purple_conversation_get_name(conversation); |
|
41701
43f994f7f9f2
Replace GtkStack in PidginDisplayWindow with AdwViewStack
Gary Kramlich <grim@reaperworld.com>
parents:
41696
diff
changeset
|
829 | visible = adw_view_stack_get_visible_child_name(ADW_VIEW_STACK(window->stack)); |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
830 | |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
831 | return purple_strequal(name, visible); |
|
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
832 | } |