void empathy_status_presets_set_default (TpConnectionPresenceType state, const gchar *status) { status_presets_set_default (state, status); status_presets_file_save (); }
void empathy_status_presets_set_default (McPresence state, const gchar *status) { status_presets_set_default (state, status); status_presets_file_save (); }
void empathy_status_presets_reset (void) { g_list_foreach (presets, (GFunc) status_preset_free, NULL); g_list_free (presets); presets = NULL; status_presets_set_default (TP_CONNECTION_PRESENCE_TYPE_AVAILABLE, NULL); status_presets_file_save (); }
static void status_presets_file_parse (const gchar *filename) { xmlParserCtxtPtr ctxt; xmlDocPtr doc; xmlNodePtr presets_node; xmlNodePtr node; DEBUG ("Attempting to parse file:'%s'...", filename); ctxt = xmlNewParserCtxt (); /* Parse and validate the file. */ doc = xmlCtxtReadFile (ctxt, filename, NULL, 0); if (!doc) { g_warning ("Failed to parse file:'%s'", filename); xmlFreeParserCtxt (ctxt); return; } if (!tpaw_xml_validate_from_resource (doc, STATUS_PRESETS_DTD_RESOURCENAME)) { g_warning ("Failed to validate file:'%s'", filename); xmlFreeDoc (doc); xmlFreeParserCtxt (ctxt); return; } /* The root node, presets. */ presets_node = xmlDocGetRootElement (doc); node = presets_node->children; while (node) { if (strcmp ((gchar *) node->name, "status") == 0 || strcmp ((gchar *) node->name, "default") == 0) { TpConnectionPresenceType state; gchar *status; gchar *state_str; StatusPreset *preset; gboolean is_default = FALSE; if (strcmp ((gchar *) node->name, "default") == 0) { is_default = TRUE; } status = (gchar *) xmlNodeGetContent (node); state_str = (gchar *) xmlGetProp (node, (const xmlChar *) "presence"); if (state_str) { state = empathy_presence_from_str (state_str); if (empathy_status_presets_is_valid (state)) { if (is_default) { DEBUG ("Default status preset state is:" " '%s', status:'%s'", state_str, status); status_presets_set_default (state, status); } else { preset = status_preset_new (state, status); presets = g_list_append (presets, preset); } } } xmlFree (status); xmlFree (state_str); } node = node->next; } /* Use the default if not set */ if (!default_preset) { status_presets_set_default (TP_CONNECTION_PRESENCE_TYPE_OFFLINE, NULL); } DEBUG ("Parsed %d status presets", g_list_length (presets)); xmlFreeDoc (doc); xmlFreeParserCtxt (ctxt); }