pidgin/prefs/pidginawayprefs.c

changeset 41765
6b1dc67b861d
parent 41654
fe90b5f62e88
child 42507
8e8f223cdd5a
equal deleted inserted replaced
41764:5d2bc2736da2 41765:6b1dc67b861d
36 36
37 GtkWidget *idle_reporting; 37 GtkWidget *idle_reporting;
38 GtkWidget *mins_before_away; 38 GtkWidget *mins_before_away;
39 GtkWidget *idle_row; 39 GtkWidget *idle_row;
40 GtkWidget *away_when_idle; 40 GtkWidget *away_when_idle;
41 GtkWidget *auto_reply;
42 GtkWidget *startup_current_status; 41 GtkWidget *startup_current_status;
43 GtkWidget *startup_row; 42 GtkWidget *startup_row;
44 }; 43 };
45 44
46 G_DEFINE_TYPE(PidginAwayPrefs, pidgin_away_prefs, ADW_TYPE_PREFERENCES_PAGE) 45 G_DEFINE_TYPE(PidginAwayPrefs, pidgin_away_prefs, ADW_TYPE_PREFERENCES_PAGE)
71 { 70 {
72 purple_prefs_set_int("/purple/savedstatus/idleaway", 71 purple_prefs_set_int("/purple/savedstatus/idleaway",
73 purple_savedstatus_get_creation_time(status)); 72 purple_savedstatus_get_creation_time(status));
74 } 73 }
75 74
76 static gchar *
77 auto_reply_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data)
78 {
79 const gchar *text = "";
80 const gchar *value = NULL;
81
82 value = gtk_string_object_get_string(GTK_STRING_OBJECT(self));
83 if(purple_strequal(value, "never")) {
84 text = _("Never");
85 } else if(purple_strequal(value, "away")) {
86 text = _("When away");
87 } else if(purple_strequal(value, "awayidle")) {
88 text = _("When both away and idle");
89 }
90
91 return g_strdup(text);
92 }
93
94 static void 75 static void
95 set_startupstatus(PurpleSavedStatus *status) 76 set_startupstatus(PurpleSavedStatus *status)
96 { 77 {
97 purple_prefs_set_int("/purple/savedstatus/startup", 78 purple_prefs_set_int("/purple/savedstatus/startup",
98 purple_savedstatus_get_creation_time(status)); 79 purple_savedstatus_get_creation_time(status));
119 mins_before_away); 100 mins_before_away);
120 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, 101 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
121 away_when_idle); 102 away_when_idle);
122 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, 103 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
123 idle_row); 104 idle_row);
124 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
125 auto_reply);
126 gtk_widget_class_bind_template_callback(widget_class,
127 auto_reply_expression_cb);
128 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, 105 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
129 startup_current_status); 106 startup_current_status);
130 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, 107 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
131 startup_row); 108 startup_row);
132 } 109 }
157 134
158 g_object_bind_property(prefs->away_when_idle, "active", 135 g_object_bind_property(prefs->away_when_idle, "active",
159 menu, "sensitive", 136 menu, "sensitive",
160 G_BINDING_SYNC_CREATE); 137 G_BINDING_SYNC_CREATE);
161 138
162 /* Away stuff */
163 pidgin_prefs_bind_combo_row("/purple/away/auto_reply", prefs->auto_reply);
164
165 /* Signon status stuff */ 139 /* Signon status stuff */
166 pidgin_prefs_bind_switch("/purple/savedstatus/startup_current_status", 140 pidgin_prefs_bind_switch("/purple/savedstatus/startup_current_status",
167 prefs->startup_current_status); 141 prefs->startup_current_status);
168 142
169 /* TODO: Show something useful if we don't have any saved statuses. */ 143 /* TODO: Show something useful if we don't have any saved statuses. */

mercurial