Mercurial > pidgin.yaz
comparison libpurple/savedstatuses.c @ 17977:f71bd7e56389
propagate from branch 'im.pidgin.pidgin' (head b438ea0760758dc547f95d62892455f50ee4c4f1)
to branch 'im.pidgin.soc.2007.remotelogging' (head 7e683fd40634aa3eb22dcf25cbd25c8959d76662)
author | Michael Shkutkov <mshkutkov@soc.pidgin.im> |
---|---|
date | Sat, 09 Jun 2007 12:01:29 +0000 |
parents | 93f17ae94a1b |
children | f2d8658b3a86 |
comparison
equal
deleted
inserted
replaced
16392:9da82444eee3 | 17977:f71bd7e56389 |
---|---|
152 &status->creation_time, | 152 &status->creation_time, |
153 status); | 153 status); |
154 } | 154 } |
155 | 155 |
156 /** | 156 /** |
157 * A magic number is calcuated for each status, and then the | 157 * A magic number is calculated for each status, and then the |
158 * statuses are ordered by the magic number. The magic number | 158 * statuses are ordered by the magic number. The magic number |
159 * is the date the status was last used offset by one day for | 159 * is the date the status was last used offset by one day for |
160 * each time the status has been used (but only by 10 days at | 160 * each time the status has been used (but only by 10 days at |
161 * the most). | 161 * the most). |
162 * | 162 * |
703 | 703 |
704 /* | 704 /* |
705 * If we just deleted our current status or our idleaway status, | 705 * If we just deleted our current status or our idleaway status, |
706 * then set the appropriate pref back to 0. | 706 * then set the appropriate pref back to 0. |
707 */ | 707 */ |
708 current = purple_prefs_get_int("/core/savedstatus/default"); | 708 current = purple_prefs_get_int("/purple/savedstatus/default"); |
709 if (current == creation_time) | 709 if (current == creation_time) |
710 purple_prefs_set_int("/core/savedstatus/default", 0); | 710 purple_prefs_set_int("/purple/savedstatus/default", 0); |
711 | 711 |
712 idleaway = purple_prefs_get_int("/core/savedstatus/idleaway"); | 712 idleaway = purple_prefs_get_int("/purple/savedstatus/idleaway"); |
713 if (idleaway == creation_time) | 713 if (idleaway == creation_time) |
714 purple_prefs_set_int("/core/savedstatus/idleaway", 0); | 714 purple_prefs_set_int("/purple/savedstatus/idleaway", 0); |
715 | 715 |
716 return TRUE; | 716 return TRUE; |
717 } | 717 } |
718 | 718 |
719 const GList * | 719 const GList * |
763 purple_savedstatus_get_default() | 763 purple_savedstatus_get_default() |
764 { | 764 { |
765 int creation_time; | 765 int creation_time; |
766 PurpleSavedStatus *saved_status = NULL; | 766 PurpleSavedStatus *saved_status = NULL; |
767 | 767 |
768 creation_time = purple_prefs_get_int("/core/savedstatus/default"); | 768 creation_time = purple_prefs_get_int("/purple/savedstatus/default"); |
769 | 769 |
770 if (creation_time != 0) | 770 if (creation_time != 0) |
771 saved_status = g_hash_table_lookup(creation_times, &creation_time); | 771 saved_status = g_hash_table_lookup(creation_times, &creation_time); |
772 | 772 |
773 if (saved_status == NULL) | 773 if (saved_status == NULL) |
777 * Purple user or someone upgrading from Purple 1.5.0 or older, or | 777 * Purple user or someone upgrading from Purple 1.5.0 or older, or |
778 * possibly someone who deleted the status they were currently | 778 * possibly someone who deleted the status they were currently |
779 * using? In any case, add a default status. | 779 * using? In any case, add a default status. |
780 */ | 780 */ |
781 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AVAILABLE); | 781 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AVAILABLE); |
782 purple_prefs_set_int("/core/savedstatus/default", | 782 purple_prefs_set_int("/purple/savedstatus/default", |
783 purple_savedstatus_get_creation_time(saved_status)); | 783 purple_savedstatus_get_creation_time(saved_status)); |
784 } | 784 } |
785 | 785 |
786 return saved_status; | 786 return saved_status; |
787 } | 787 } |
790 purple_savedstatus_get_idleaway() | 790 purple_savedstatus_get_idleaway() |
791 { | 791 { |
792 int creation_time; | 792 int creation_time; |
793 PurpleSavedStatus *saved_status = NULL; | 793 PurpleSavedStatus *saved_status = NULL; |
794 | 794 |
795 creation_time = purple_prefs_get_int("/core/savedstatus/idleaway"); | 795 creation_time = purple_prefs_get_int("/purple/savedstatus/idleaway"); |
796 | 796 |
797 if (creation_time != 0) | 797 if (creation_time != 0) |
798 saved_status = g_hash_table_lookup(creation_times, &creation_time); | 798 saved_status = g_hash_table_lookup(creation_times, &creation_time); |
799 | 799 |
800 if (saved_status == NULL) | 800 if (saved_status == NULL) |
805 | 805 |
806 if (saved_status == NULL) | 806 if (saved_status == NULL) |
807 { | 807 { |
808 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AWAY); | 808 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AWAY); |
809 purple_savedstatus_set_message(saved_status, DEFAULT_AUTOAWAY_MESSAGE); | 809 purple_savedstatus_set_message(saved_status, DEFAULT_AUTOAWAY_MESSAGE); |
810 purple_prefs_set_int("/core/savedstatus/idleaway", | 810 purple_prefs_set_int("/purple/savedstatus/idleaway", |
811 purple_savedstatus_get_creation_time(saved_status)); | 811 purple_savedstatus_get_creation_time(saved_status)); |
812 } | 812 } |
813 } | 813 } |
814 | 814 |
815 return saved_status; | 815 return saved_status; |
816 } | 816 } |
817 | 817 |
818 gboolean | 818 gboolean |
819 purple_savedstatus_is_idleaway() | 819 purple_savedstatus_is_idleaway() |
820 { | 820 { |
821 return purple_prefs_get_bool("/core/savedstatus/isidleaway"); | 821 return purple_prefs_get_bool("/purple/savedstatus/isidleaway"); |
822 } | 822 } |
823 | 823 |
824 void | 824 void |
825 purple_savedstatus_set_idleaway(gboolean idleaway) | 825 purple_savedstatus_set_idleaway(gboolean idleaway) |
826 { | 826 { |
834 /* Changing our status makes us un-idle */ | 834 /* Changing our status makes us un-idle */ |
835 if (!idleaway) | 835 if (!idleaway) |
836 purple_idle_touch(); | 836 purple_idle_touch(); |
837 | 837 |
838 old = purple_savedstatus_get_current(); | 838 old = purple_savedstatus_get_current(); |
839 purple_prefs_set_bool("/core/savedstatus/isidleaway", idleaway); | 839 purple_prefs_set_bool("/purple/savedstatus/isidleaway", idleaway); |
840 saved_status = idleaway ? purple_savedstatus_get_idleaway() | 840 saved_status = idleaway ? purple_savedstatus_get_idleaway() |
841 : purple_savedstatus_get_default(); | 841 : purple_savedstatus_get_default(); |
842 | 842 |
843 if (idleaway && (purple_savedstatus_get_type(old) != PURPLE_STATUS_AVAILABLE)) | 843 if (idleaway && (purple_savedstatus_get_type(old) != PURPLE_STATUS_AVAILABLE)) |
844 /* Our global status is already "away," so don't change anything */ | 844 /* Our global status is already "away," so don't change anything */ |
869 purple_savedstatus_get_startup() | 869 purple_savedstatus_get_startup() |
870 { | 870 { |
871 int creation_time; | 871 int creation_time; |
872 PurpleSavedStatus *saved_status = NULL; | 872 PurpleSavedStatus *saved_status = NULL; |
873 | 873 |
874 creation_time = purple_prefs_get_int("/core/savedstatus/startup"); | 874 creation_time = purple_prefs_get_int("/purple/savedstatus/startup"); |
875 | 875 |
876 if (creation_time != 0) | 876 if (creation_time != 0) |
877 saved_status = g_hash_table_lookup(creation_times, &creation_time); | 877 saved_status = g_hash_table_lookup(creation_times, &creation_time); |
878 | 878 |
879 if (saved_status == NULL) | 879 if (saved_status == NULL) |
1072 /* Make sure our list of saved statuses remains sorted */ | 1072 /* Make sure our list of saved statuses remains sorted */ |
1073 saved_status->lastused = time(NULL); | 1073 saved_status->lastused = time(NULL); |
1074 saved_status->usage_count++; | 1074 saved_status->usage_count++; |
1075 saved_statuses = g_list_remove(saved_statuses, saved_status); | 1075 saved_statuses = g_list_remove(saved_statuses, saved_status); |
1076 saved_statuses = g_list_insert_sorted(saved_statuses, saved_status, saved_statuses_sort_func); | 1076 saved_statuses = g_list_insert_sorted(saved_statuses, saved_status, saved_statuses_sort_func); |
1077 purple_prefs_set_int("/core/savedstatus/default", | 1077 purple_prefs_set_int("/purple/savedstatus/default", |
1078 purple_savedstatus_get_creation_time(saved_status)); | 1078 purple_savedstatus_get_creation_time(saved_status)); |
1079 | 1079 |
1080 accounts = purple_accounts_get_all_active(); | 1080 accounts = purple_accounts_get_all_active(); |
1081 for (node = accounts; node != NULL; node = node->next) | 1081 for (node = accounts; node != NULL; node = node->next) |
1082 { | 1082 { |
1153 * If someone calls purple_savedstatus_get_current() or | 1153 * If someone calls purple_savedstatus_get_current() or |
1154 * purple_savedstatus_get_idleaway() and either of those functions | 1154 * purple_savedstatus_get_idleaway() and either of those functions |
1155 * sees a creation_time of 0, then it will create a default | 1155 * sees a creation_time of 0, then it will create a default |
1156 * saved status and return that to the user. | 1156 * saved status and return that to the user. |
1157 */ | 1157 */ |
1158 purple_prefs_add_none("/core/savedstatus"); | 1158 purple_prefs_add_none("/purple/savedstatus"); |
1159 purple_prefs_add_int("/core/savedstatus/default", 0); | 1159 purple_prefs_add_int("/purple/savedstatus/default", 0); |
1160 purple_prefs_add_int("/core/savedstatus/startup", 0); | 1160 purple_prefs_add_int("/purple/savedstatus/startup", 0); |
1161 purple_prefs_add_bool("/core/savedstatus/startup_current_status", TRUE); | 1161 purple_prefs_add_bool("/purple/savedstatus/startup_current_status", TRUE); |
1162 purple_prefs_add_int("/core/savedstatus/idleaway", 0); | 1162 purple_prefs_add_int("/purple/savedstatus/idleaway", 0); |
1163 purple_prefs_add_bool("/core/savedstatus/isidleaway", FALSE); | 1163 purple_prefs_add_bool("/purple/savedstatus/isidleaway", FALSE); |
1164 | 1164 |
1165 load_statuses(); | 1165 load_statuses(); |
1166 | 1166 |
1167 purple_signal_register(handle, "savedstatus-changed", | 1167 purple_signal_register(handle, "savedstatus-changed", |
1168 purple_marshal_VOID__POINTER_POINTER, NULL, 2, | 1168 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |