pidgin/prefs/pidginawayprefs.c

Sun, 03 Nov 2024 00:05:44 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 03 Nov 2024 00:05:44 -0500
changeset 43045
308e8d0ce68c
parent 43013
26d30c0db9a5
child 43253
0cc00d7d6215
permissions
-rw-r--r--

remove purple3-url-handler.desktop.in.in

The application that did the launching was removed long ago. Also this should
be implemented by the user interfaces and they might provide separate files to
groups schemas as well.

Testing Done:
Called in the turtles.

Reviewed at https://reviews.imfreedom.org/r/3640/

41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
23 #include <glib/gi18n-lib.h>
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
24
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 #include <purple.h>
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26
41548
3353c766c6cf Convert away prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41374
diff changeset
27 #include <adwaita.h>
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
29 #include "pidginawayprefs.h"
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
30 #include "pidginiconname.h"
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
32 struct _PidginAwayPrefs {
41548
3353c766c6cf Convert away prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41374
diff changeset
33 AdwPreferencesPage parent;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
35 GtkWidget *idle_reporting;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 GtkWidget *mins_before_away;
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
37 GtkWidget *idle_row;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 GtkWidget *away_when_idle;
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 GtkWidget *startup_current_status;
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
40 GtkWidget *startup_row;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 };
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42507
diff changeset
43 G_DEFINE_FINAL_TYPE(PidginAwayPrefs, pidgin_away_prefs,
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42507
diff changeset
44 ADW_TYPE_PREFERENCES_PAGE)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 * Helpers
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 *****************************************************************************/
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
49 static gchar *
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
50 idle_reporting_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data) {
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
51 const gchar *text = "";
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
52 const gchar *value = NULL;
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
53
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
54 value = gtk_string_object_get_string(GTK_STRING_OBJECT(self));
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
55 if(purple_strequal(value, "none")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
56 text = _("Never");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
57 } else if(purple_strequal(value, "purple")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
58 text = _("From last sent message");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
59 } else if(purple_strequal(value, "system")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
60 text = _("Based on keyboard or mouse use");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
61 }
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
62
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
63 return g_strdup(text);
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
64 }
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
65
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
66 static char *
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
67 idle_presence_icon_name_from_primitive(G_GNUC_UNUSED GObject *self,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
68 PurplePresencePrimitive primitive,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
69 G_GNUC_UNUSED gpointer data)
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
70 {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
71 const char *icon_name = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
72
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
73 icon_name = pidgin_icon_name_from_presence_primitive(primitive,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
74 "icon-missing");
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
75
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
76 return g_strdup(icon_name);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
77 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
78
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
79 static gboolean
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
80 idle_get_reporting_mapping(GValue *value, GVariant *variant,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
81 G_GNUC_UNUSED gpointer data)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 {
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
83 const char *id = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
84
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
85 id = g_variant_get_string(variant, NULL);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
86 if(purple_strequal(id, "none")) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
87 g_value_set_uint(value, 0);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
88 } else if(purple_strequal(id, "purple")) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
89 g_value_set_uint(value, 1);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
90 } else if(purple_strequal(id, "system")) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
91 g_value_set_uint(value, 2);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
92 } else {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
93 return FALSE;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
94 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
95
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
96 return TRUE;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
97 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
98
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
99 static GVariant *
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
100 idle_set_reporting_mapping(const GValue *value, const GVariantType *expected,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
101 G_GNUC_UNUSED gpointer data)
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
102 {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
103 const char *id = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
104
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
105 if(!g_variant_type_equal(expected, G_VARIANT_TYPE_STRING)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
106 return NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
107 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
108
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
109 switch(g_value_get_uint(value)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
110 case 0:
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
111 id = "none";
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
112 break;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
113 case 1:
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
114 id = "purple";
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
115 break;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
116 case 2:
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
117 id = "system";
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
118 break;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
119 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
120
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
121 if(id != NULL) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
122 return g_variant_new_string(id);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
123 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
124
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
125 return NULL;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
126 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
127
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
128 static gboolean
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
129 idle_get_saved_presence_mapping(GValue *value, GVariant *variant,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
130 G_GNUC_UNUSED gpointer data)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
131 {
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
132 GListModel *model = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
133 const char *name = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
134 guint n_items = 0;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
135
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
136 model = purple_presence_manager_get_default_as_model();
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
137
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
138 name = g_variant_get_string(variant, NULL);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
139
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
140 n_items = g_list_model_get_n_items(model);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
141 for(guint i = 0; i < n_items; i++) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
142 PurpleSavedPresence *presence = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
143
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
144 presence = g_list_model_get_item(model, i);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
145 if(PURPLE_IS_SAVED_PRESENCE(presence)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
146 const char *presence_name = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
147
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
148 presence_name = purple_saved_presence_get_name(presence);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
149 if(purple_strequal(presence_name, name)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
150 g_value_set_uint(value, i);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
151
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
152 g_clear_object(&presence);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
153
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
154 return TRUE;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
155 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
156 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
157
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
158 g_clear_object(&presence);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
159 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
160
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
161 g_value_set_uint(value, 0);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
162
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
163 return TRUE;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
164 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
165
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
166 static GVariant *
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
167 idle_set_saved_presence_mapping(const GValue *value,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
168 const GVariantType *expected,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
169 G_GNUC_UNUSED gpointer data)
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
170 {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
171 PurpleSavedPresence *presence = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
172 GListModel *model = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
173 guint position = 0;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
174
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
175 if(!g_variant_type_equal(expected, G_VARIANT_TYPE_STRING)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
176 return NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
177 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
178
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
179 model = purple_presence_manager_get_default_as_model();
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
180 position = g_value_get_uint(value);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
181 presence = g_list_model_get_item(model, position);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
182
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
183 if(PURPLE_IS_SAVED_PRESENCE(presence)) {
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
184 GVariant *ret = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
185 const char *name = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
186
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
187 name = purple_saved_presence_get_name(presence);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
188 ret = g_variant_new_string(name);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
189
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
190 g_clear_object(&presence);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
191
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
192 return ret;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
193 }
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
194
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
195 return NULL;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
196 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
197
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
198 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
199 * GObject Implementation
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
200 *****************************************************************************/
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
201 static void
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
202 pidgin_away_prefs_class_init(PidginAwayPrefsClass *klass)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
203 {
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
204 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
205
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
206 gtk_widget_class_set_template_from_resource(
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
207 widget_class,
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
208 "/im/pidgin/Pidgin3/Prefs/away.ui"
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
209 );
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
210
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
211 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
212 idle_reporting);
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
213 gtk_widget_class_bind_template_callback(widget_class,
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
214 idle_reporting_expression_cb);
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
215 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
216 mins_before_away);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
217 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
218 away_when_idle);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
219 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
220 idle_row);
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
221 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
222 startup_current_status);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
223 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
224 startup_row);
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
225
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
226 gtk_widget_class_bind_template_callback(widget_class,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
227 idle_presence_icon_name_from_primitive);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
228 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
229
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
230 static void
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
231 pidgin_away_prefs_init(PidginAwayPrefs *prefs)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
232 {
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
233 GListModel *model = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
234 GSettings *settings = NULL;
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
235 gpointer backend = NULL;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
236
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
237 gtk_widget_init_template(GTK_WIDGET(prefs));
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
238
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
239 backend = purple_core_get_settings_backend();
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
240 model = purple_presence_manager_get_default_as_model();
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
241
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
242 /* Finish setting up our idle preferences. */
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
243 adw_combo_row_set_model(ADW_COMBO_ROW(prefs->idle_row), model);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
244
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
245 settings = g_settings_new_with_backend("im.pidgin.Purple.Idle", backend);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
246
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
247 g_settings_bind_with_mapping(settings, "method",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
248 prefs->idle_reporting, "selected",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
249 G_SETTINGS_BIND_DEFAULT,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
250 idle_get_reporting_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
251 idle_set_reporting_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
252 NULL, NULL);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
253 g_settings_bind(settings, "duration", prefs->mins_before_away,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
254 "value", G_SETTINGS_BIND_DEFAULT);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
255 g_settings_bind(settings, "change-presence", prefs->away_when_idle,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
256 "active", G_SETTINGS_BIND_DEFAULT);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
257 g_settings_bind_with_mapping(settings, "saved-presence",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
258 prefs->idle_row, "selected",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
259 G_SETTINGS_BIND_DEFAULT,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
260 idle_get_saved_presence_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
261 idle_set_saved_presence_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
262 NULL, NULL);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
263
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
264 g_clear_object(&settings);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
265
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
266 /* Finish setting up the startup presence preferences. */
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
267 adw_combo_row_set_model(ADW_COMBO_ROW(prefs->startup_row), model);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
268
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
269 settings = g_settings_new_with_backend("im.pidgin.Purple.Startup",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
270 backend);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
271
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
272 g_settings_bind(settings, "use-previous-presence",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
273 prefs->startup_current_status, "active",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
274 G_SETTINGS_BIND_DEFAULT);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
275 g_settings_bind_with_mapping(settings, "saved-presence",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
276 prefs->startup_row, "selected",
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
277 G_SETTINGS_BIND_DEFAULT,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
278 idle_get_saved_presence_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
279 idle_set_saved_presence_mapping,
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
280 NULL, NULL);
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
281
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
282 g_clear_object(&settings);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
283 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
284
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
285 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
286 * API
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
287 *****************************************************************************/
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
288 GtkWidget *
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
289 pidgin_away_prefs_new(void) {
42507
8e8f223cdd5a Port PidginAwayPrefs to PurpleSavedPresence and GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41765
diff changeset
290 return g_object_new(PIDGIN_TYPE_AWAY_PREFS, NULL);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
291 }

mercurial