Fri, 22 Nov 2024 01:26:06 -0600
Set the application on all windows
In some DEs (like GNOME), this allows grouping them all together.
It also restores the "construction" style in the title bar (for Adwaita stuff at least).
Testing Done:
Opened all the windows, and Alt-Tab now groups things together. Also checked in the inspector that the property was set on the windows.
Reviewed at https://reviews.imfreedom.org/r/3664/
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include <glib/gi18n.h> |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include <purple.h> |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #include "pidginaccountmanager.h" |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | #include "pidgincore.h" |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
41439
diff
changeset
|
30 | #include "pidginaccounteditor.h" |
|
42363
25ccd3d6e30e
Rename PidginAccountRow to PidginAccountManagerRow
Gary Kramlich <grim@reaperworld.com>
parents:
42255
diff
changeset
|
31 | #include "pidginaccountmanagerrow.h" |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | struct _PidginAccountManager { |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
34 | AdwWindow parent; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
35 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
36 | AdwNavigationView *view; |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
38 | struct { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
39 | GtkListBox *list_box; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
40 | GtkActionBar *action_bar; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
41 | } overview; |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
42 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
43 | struct { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
44 | PidginAccountEditor *editor; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
45 | GtkButton *add; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
46 | GtkWidget *remove; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
47 | } editor; |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
48 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
49 | /* This is used to not go back to the manager when an account was edited |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
50 | * directly, via the `accounts->(account)->edit` menu or the |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
51 | * `connection error` notification. |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
52 | */ |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
53 | gboolean edit_only; |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | }; |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | |
|
42575
580339aa47cc
Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents:
42363
diff
changeset
|
56 | G_DEFINE_FINAL_TYPE(PidginAccountManager, pidgin_account_manager, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
57 | ADW_TYPE_WINDOW) |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | /****************************************************************************** |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | * Helpers |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | *****************************************************************************/ |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
62 | static GtkWidget * |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
63 | pidgin_account_manager_create_widget(gpointer item, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
64 | G_GNUC_UNUSED gpointer data) |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | { |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
66 | if(!PURPLE_IS_ACCOUNT(item)) { |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | return NULL; |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | |
|
42363
25ccd3d6e30e
Rename PidginAccountRow to PidginAccountManagerRow
Gary Kramlich <grim@reaperworld.com>
parents:
42255
diff
changeset
|
70 | return pidgin_account_manager_row_new(PURPLE_ACCOUNT(item)); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | |
|
41818
60b85f276728
Clean up pidgin_account_manager_response_cb to make it a bit more readable
Gary Kramlich <grim@reaperworld.com>
parents:
41817
diff
changeset
|
73 | static void |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
74 | pidgin_account_manager_real_edit_account(PidginAccountManager *manager, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
75 | PurpleAccount *account, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
76 | gboolean edit_only) |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
77 | { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
78 | g_return_if_fail(PIDGIN_IS_ACCOUNT_MANAGER(manager)); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
79 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
80 | manager->edit_only = edit_only; |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
81 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
82 | pidgin_account_editor_set_account(manager->editor.editor, account); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
83 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
84 | /* Scroll the editor back to the top of the scrolled window. */ |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
85 | adw_preferences_page_scroll_to_top(ADW_PREFERENCES_PAGE(manager->editor.editor)); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
86 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
87 | if(PURPLE_IS_ACCOUNT(account)) { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
88 | gtk_button_set_label(manager->editor.add, _("_Save")); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
89 | gtk_widget_set_visible(manager->editor.remove, TRUE); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
90 | } else { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
91 | gtk_button_set_label(manager->editor.add, _("_Add")); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
92 | gtk_widget_set_visible(manager->editor.remove, FALSE); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
93 | } |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
94 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
95 | adw_navigation_view_push_by_tag(manager->view, "editor"); |
|
41818
60b85f276728
Clean up pidgin_account_manager_response_cb to make it a bit more readable
Gary Kramlich <grim@reaperworld.com>
parents:
41817
diff
changeset
|
96 | } |
|
60b85f276728
Clean up pidgin_account_manager_response_cb to make it a bit more readable
Gary Kramlich <grim@reaperworld.com>
parents:
41817
diff
changeset
|
97 | |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | /****************************************************************************** |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | * Callbacks |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | *****************************************************************************/ |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
101 | /* This is used by the add button on the placeholder page. */ |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
102 | static void |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
103 | pidgin_account_manager_create_account(G_GNUC_UNUSED GtkButton *self, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
104 | gpointer data) |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
105 | { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
106 | PidginAccountManager *manager = data; |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
107 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
108 | pidgin_account_manager_real_edit_account(manager, NULL, FALSE); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
109 | } |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
110 | |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | static void |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
112 | pidgin_account_manager_refresh_add_cb(GListModel *list, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
113 | G_GNUC_UNUSED guint position, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
114 | G_GNUC_UNUSED guint removed, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
115 | G_GNUC_UNUSED guint added, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
116 | gpointer data) |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | { |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
118 | PidginAccountManager *manager = data; |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 | |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
120 | /* If there are no accounts, the placeholder is shown, which includes an |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
121 | * Add button. So hide the button box if that's the case. */ |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
122 | gtk_action_bar_set_revealed(manager->overview.action_bar, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
123 | g_list_model_get_n_items(list) != 0); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | static void |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
127 | pidgin_account_manager_row_activated_cb(G_GNUC_UNUSED GtkListBox *box, |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
128 | GtkListBoxRow *row, |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
129 | gpointer data) |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | { |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
131 | PurpleAccount *account = NULL; |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
132 | PidginAccountManager *manager = data; |
|
42363
25ccd3d6e30e
Rename PidginAccountRow to PidginAccountManagerRow
Gary Kramlich <grim@reaperworld.com>
parents:
42255
diff
changeset
|
133 | PidginAccountManagerRow *manager_row = NULL; |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | |
|
42363
25ccd3d6e30e
Rename PidginAccountRow to PidginAccountManagerRow
Gary Kramlich <grim@reaperworld.com>
parents:
42255
diff
changeset
|
135 | manager_row = PIDGIN_ACCOUNT_MANAGER_ROW(row); |
|
25ccd3d6e30e
Rename PidginAccountRow to PidginAccountManagerRow
Gary Kramlich <grim@reaperworld.com>
parents:
42255
diff
changeset
|
136 | account = pidgin_account_manager_row_get_account(manager_row); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
137 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
138 | pidgin_account_manager_real_edit_account(manager, account, FALSE); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
139 | } |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
140 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
141 | static void |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
142 | pidgin_account_manager_remove_account_cb(G_GNUC_UNUSED AdwMessageDialog *self, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
143 | char *response, gpointer data) |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
144 | { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
145 | PidginAccountManager *account_manager = data; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
146 | PurpleAccount *account = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
147 | PurpleNotificationManager *notification_manager = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
148 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
149 | if(!purple_strequal(response, "remove")) { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
150 | return; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
151 | } |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
152 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
153 | account = pidgin_account_editor_get_account(account_manager->editor.editor); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
154 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
155 | /* Remove all notifications including connection errors for the account. */ |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
156 | notification_manager = purple_notification_manager_get_default(); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
157 | purple_notification_manager_remove_with_account(notification_manager, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
158 | account, TRUE); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
159 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
160 | /* Delete the account. */ |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
161 | purple_accounts_delete(account); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
162 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
163 | pidgin_account_manager_show_overview(account_manager); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
164 | } |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
165 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
166 | static void |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
167 | pidgin_account_manager_remove_clicked_cb(G_GNUC_UNUSED GtkButton *self, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
168 | gpointer data) |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
169 | { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
170 | PidginAccountManager *manager = data; |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
171 | PurpleAccount *account = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
172 | PurpleProtocol *protocol = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
173 | AdwAlertDialog *dialog = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
174 | const char *name = NULL; |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
175 | const char *protocol_name = _("Unknown"); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
176 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
177 | account = pidgin_account_editor_get_account(manager->editor.editor); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
178 | name = purple_account_get_username(account); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
179 | protocol = purple_account_get_protocol(account); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
180 | if(PURPLE_IS_PROTOCOL(protocol)) { |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
181 | protocol_name = purple_protocol_get_name(protocol); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
182 | } |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
183 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
184 | dialog = ADW_ALERT_DIALOG(adw_alert_dialog_new(_("Remove account?"), NULL)); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
185 | adw_alert_dialog_format_body( |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
186 | dialog, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
187 | _("Do you want to remove the %s (%s) account from Pidgin?"), |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
188 | name, protocol_name); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
189 | adw_alert_dialog_add_responses(dialog, "cancel", _("Cancel"), |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
190 | "remove", _("Remove"), NULL); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
191 | adw_alert_dialog_set_response_appearance(dialog, "remove", |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
192 | ADW_RESPONSE_DESTRUCTIVE); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
193 | adw_alert_dialog_set_default_response(dialog, "cancel"); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
194 | adw_alert_dialog_set_close_response(dialog, "cancel"); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
195 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
196 | g_signal_connect(dialog, "response", |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
197 | G_CALLBACK(pidgin_account_manager_remove_account_cb), |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
198 | manager); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
199 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
200 | adw_dialog_present(ADW_DIALOG(dialog), GTK_WIDGET(manager)); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
201 | } |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
202 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
203 | static void |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
204 | pidgin_account_manager_save_clicked_cb(G_GNUC_UNUSED GtkButton *self, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
205 | gpointer data) |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
206 | { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
207 | PidginAccountManager *manager = data; |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
208 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
209 | pidgin_account_editor_save(manager->editor.editor); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
210 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
211 | if(manager->edit_only) { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
212 | gtk_window_destroy(GTK_WINDOW(manager)); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
213 | } else { |
|
42255
642478e32820
Fix a number of bugs in the account editor
Gary Kramlich <grim@reaperworld.com>
parents:
42231
diff
changeset
|
214 | pidgin_account_manager_show_overview(manager); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
215 | } |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | /****************************************************************************** |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 | * GObject Implementation |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | *****************************************************************************/ |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | static void |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 | pidgin_account_manager_init(PidginAccountManager *manager) { |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
223 | GListModel *purple_manager = NULL; |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 | gtk_widget_init_template(GTK_WIDGET(manager)); |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 | |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
227 | purple_manager = purple_account_manager_get_default_as_model(); |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
228 | gtk_list_box_bind_model(manager->overview.list_box, purple_manager, |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
229 | pidgin_account_manager_create_widget, NULL, NULL); |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
230 | g_signal_connect_object(purple_manager, "items-changed", |
|
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
231 | G_CALLBACK(pidgin_account_manager_refresh_add_cb), |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 | manager, 0); |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
233 | pidgin_account_manager_refresh_add_cb(purple_manager, 0, 0, 0, manager); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 | static void |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 | pidgin_account_manager_class_init(PidginAccountManagerClass *klass) { |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 | gtk_widget_class_set_template_from_resource( |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 | widget_class, |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 | "/im/pidgin/Pidgin3/Accounts/manager.ui" |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 | ); |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
246 | view); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
247 | |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
249 | overview.list_box); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
250 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
251 | overview.action_bar); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
252 | |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
253 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
254 | editor.editor); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
255 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
256 | editor.add); |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
257 | gtk_widget_class_bind_template_child(widget_class, PidginAccountManager, |
|
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
258 | editor.remove); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
259 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
260 | gtk_widget_class_bind_template_callback(widget_class, |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
261 | pidgin_account_manager_row_activated_cb); |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
262 | gtk_widget_class_bind_template_callback(widget_class, |
|
42028
f3090252de57
Re-design account manager as a GtkListBox
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41962
diff
changeset
|
263 | pidgin_account_manager_create_account); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
264 | gtk_widget_class_bind_template_callback(widget_class, |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
265 | pidgin_account_manager_remove_clicked_cb); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
266 | gtk_widget_class_bind_template_callback(widget_class, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
267 | pidgin_account_manager_save_clicked_cb); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
268 | } |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
269 | |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
270 | /****************************************************************************** |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
271 | * Public API |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
272 | *****************************************************************************/ |
|
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
273 | GtkWidget * |
|
43080
dd2d26e6c6f9
Set the application on all windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43073
diff
changeset
|
274 | pidgin_account_manager_new(GtkApplication *application) { |
|
dd2d26e6c6f9
Set the application on all windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43073
diff
changeset
|
275 | return g_object_new( |
|
dd2d26e6c6f9
Set the application on all windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43073
diff
changeset
|
276 | PIDGIN_TYPE_ACCOUNT_MANAGER, |
|
dd2d26e6c6f9
Set the application on all windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43073
diff
changeset
|
277 | "application", application, |
|
dd2d26e6c6f9
Set the application on all windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43073
diff
changeset
|
278 | NULL); |
|
41310
53e4815ef254
Create a new PidginAccountManager that replaces the manually built one.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 | } |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
280 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
281 | void |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
282 | pidgin_account_manager_show_overview(PidginAccountManager *manager) { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
283 | g_return_if_fail(PIDGIN_IS_ACCOUNT_MANAGER(manager)); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
284 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
285 | adw_navigation_view_pop_to_tag(manager->view, "overview"); |
|
42255
642478e32820
Fix a number of bugs in the account editor
Gary Kramlich <grim@reaperworld.com>
parents:
42231
diff
changeset
|
286 | |
|
43073
b97e5e85b97d
Port account manager to AdwNavigationView
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42575
diff
changeset
|
287 | pidgin_account_editor_set_account(manager->editor.editor, NULL); |
|
42151
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
288 | } |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
289 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
290 | void |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
291 | pidgin_account_manager_edit_account(PidginAccountManager *manager, |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
292 | PurpleAccount *account) |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
293 | { |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
294 | g_return_if_fail(PIDGIN_IS_ACCOUNT_MANAGER(manager)); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
295 | g_return_if_fail(PURPLE_IS_ACCOUNT(account)); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
296 | |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
297 | pidgin_account_manager_real_edit_account(manager, account, TRUE); |
|
41b9c5be8965
Embed PidginAccountEditor into PidginAccountManager
Gary Kramlich <grim@reaperworld.com>
parents:
42028
diff
changeset
|
298 | } |