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,