changeset 16790:e3f4f1fd8f3d

merge of '92952767b5290dd3324e325476ad8aecd0e2a3f1' and 'edbf1afe63dd8077f9c4287f723010c769239720'
author Evan Schoenberg <evan.s@dreskin.net>
date Wed, 02 May 2007 11:55:04 +0000
parents b63ef2b2acfc (diff) a9975d6c2832 (current diff)
children 2ff9195a35ce 5eca30c2935b
files
diffstat 7 files changed, 111 insertions(+), 84 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.API	Wed May 02 11:54:27 2007 +0000
+++ b/ChangeLog.API	Wed May 02 11:55:04 2007 +0000
@@ -390,6 +390,7 @@
 	* GtkGaimScrollBook and its functions.
 	* purple_markup_unescape_entity()
 	* purple_markup_get_css_property()
+	* purple_group_get_name()
 
 	Signals - Changed:  (See the Doxygen docs for details on all signals.)
 	* Signal propagation now stops after a handler returns a non-NULL value.
--- a/finch/gntblist.c	Wed May 02 11:54:27 2007 +0000
+++ b/finch/gntblist.c	Wed May 02 11:55:04 2007 +0000
@@ -112,7 +112,7 @@
 static void blist_show(PurpleBuddyList *list);
 static void update_node_display(PurpleBlistNode *buddy, FinchBlist *ggblist);
 static void update_buddy_display(PurpleBuddy *buddy, FinchBlist *ggblist);
-static void account_signed_on_cb(void);
+static void account_signed_on_cb(PurpleConnection *pc, gpointer null);
 
 /* Sort functions */
 static int blist_node_compare_position(PurpleBlistNode *n1, PurpleBlistNode *n2);
@@ -2065,7 +2065,7 @@
 }
 
 static void
-account_signed_on_cb()
+account_signed_on_cb(PurpleConnection *pc, gpointer null)
 {
 	PurpleBlistNode *node;
 
@@ -2073,7 +2073,8 @@
 			node = purple_blist_node_next(node, FALSE)) {
 		if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
 			PurpleChat *chat = (PurpleChat*)node;
-			if (purple_blist_node_get_bool(node, "gnt-autojoin"))
+			if (chat->account == purple_connection_get_account(pc) &&
+					purple_blist_node_get_bool(node, "gnt-autojoin"))
 				serv_join_chat(purple_account_get_connection(chat->account), chat->components);
 		}
 	}
--- a/libpurple/blist.c	Wed May 02 11:54:27 2007 +0000
+++ b/libpurple/blist.c	Wed May 02 11:55:04 2007 +0000
@@ -2037,13 +2037,18 @@
 	struct proto_chat_entry *pce;
 	GList *parts;
 	char *ret;
+	PurplePlugin *prpl;
+	PurplePluginProtocolInfo *prpl_info = NULL;
 
 	g_return_val_if_fail(chat != NULL, NULL);
 
 	if ((chat->alias != NULL) && (*chat->alias != '\0'))
 		return chat->alias;
 
-	parts = PURPLE_PLUGIN_PROTOCOL_INFO(chat->account->gc->prpl)->chat_info(chat->account->gc);
+	prpl = purple_find_prpl(purple_account_get_protocol_id(chat->account));
+	prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
+
+	parts = prpl_info->chat_info(chat->account->gc);
 	pce = parts->data;
 	ret = g_hash_table_lookup(chat->components, pce->identifier);
 	g_list_foreach(parts, (GFunc)g_free, NULL);
@@ -2406,6 +2411,13 @@
 	return FALSE;
 }
 
+const char *purple_group_get_name(PurpleGroup *group)
+{
+	g_return_val_if_fail(group != NULL, NULL);
+
+	return group->name;
+}
+
 void
 purple_blist_request_add_buddy(PurpleAccount *account, const char *username,
 							 const char *group, const char *alias)
--- a/libpurple/blist.h	Wed May 02 11:54:27 2007 +0000
+++ b/libpurple/blist.h	Wed May 02 11:55:04 2007 +0000
@@ -686,6 +686,15 @@
 gboolean purple_group_on_account(PurpleGroup *g, PurpleAccount *account);
 
 /**
+ * Returns the name of a group.
+ *
+ * @param group The group.
+ *
+ * @return The name of the group.
+ */
+const char *purple_group_get_name(PurpleGroup *group);
+
+/**
  * Called when an account gets signed on.  Tells the UI to update all the
  * buddies.
  *
--- a/pidgin/gtkblist.c	Wed May 02 11:54:27 2007 +0000
+++ b/pidgin/gtkblist.c	Wed May 02 11:55:04 2007 +0000
@@ -1172,8 +1172,9 @@
 	GtkWidget *item;
 
 	menu = gtk_menu_new();
-	pidgin_new_item_from_stock(menu, _("Add a _Buddy"), GTK_STOCK_ADD,
+	item = pidgin_new_item_from_stock(menu, _("Add a _Buddy"), GTK_STOCK_ADD,
 				 G_CALLBACK(pidgin_blist_add_buddy_cb), node, 0, 0, NULL);
+	gtk_widget_set_sensitive(item, purple_connections_get_all() != NULL);
 	item = pidgin_new_item_from_stock(menu, _("Add a C_hat"), GTK_STOCK_ADD,
 				 G_CALLBACK(pidgin_blist_add_chat_cb), node, 0, 0, NULL);
 	gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable());
--- a/pidgin/pixmaps/emotes/default/22/theme	Wed May 02 11:54:27 2007 +0000
+++ b/pidgin/pixmaps/emotes/default/22/theme	Wed May 02 11:55:04 2007 +0000
@@ -217,20 +217,20 @@
 
 ### Following ICQ 5.1
 [ICQ]
-smile.png           :-) :)
-sad.png             :-( :(
-wink.png            ;-) ;)
-tongue.png          :-P :P
+smile.png           :-)     :)
+sad.png             :-(     :(
+wink.png            ;-)     ;)
+tongue.png          :-P     :P
 laugh.png           *JOKINGLY*
 crying.png          :'(
 #*KISSED*
 kiss.png            :-*
 embarrassed.png     :-[
 angel.png           O:-)
-shut-mouth.png      :-X :X
-thinking.png        :-\\
-shout.png           >:o >:O
-smile-big.png       :-D :D
+shut-mouth.png      :-X     :X
+thinking.png        :-\\    :-/
+shout.png           >:o     >:O
+smile-big.png       :-D     :D
 moneymouth.png      :-$
 shock.png           =-O
 glasses-cool.png    8-)
@@ -248,90 +248,90 @@
 
 ### Following Yahoo! Messenger 8.1
 [Yahoo]
-smile.png           :) :-)
-question.png        :-/ :-\\
-shock.png           :-O :O :-o :o 
+smile.png           :)      :-)
+question.png        :-/     :-\\
+shock.png           :-O     :O      :-o     :o 
 devil.png           >:)
-angel.png           O:-) o:-) 0:-)
+angel.png           O:-)    o:-)    0:-)
 sick.png            :-&
 yawn.png            (:|
 hypnotized.png      @-)
-#on_the_phone       :)]             MISSING: "Wait,I'm phoning!" (not phone.png)    => smily showing phone and hand ("stop")
-sad.png             :( :-(
-in-love.png         :x :-x :X :-X
-angry.png           X-( x-( X( x(
+#on_the_phone       :)]     MISSING: "Wait,I'm phoning!" (not phone.png)    => smily showing phone and hand ("stop")
+sad.png             :(      :-(
+in-love.png         :x      :-x     :X      :-X
+angry.png           X-(     x-(     X(      x(
 crying.png          :((
-glasses-nerdy.png   :-B :-b
+glasses-nerdy.png   :-B     :-b
 quiet.png           :-$
-drool.png           =P~ =p~
-lying.png           :^O :^o
+drool.png           =P~     =p~
+lying.png           :^O     :^o
 call-me.png         :-c
-wink.png            ;) ;-)
+wink.png            ;)      ;-)
 embarrassed.png     :">
-mean.png            :-> :>
-laugh.png           :)) :-))
+mean.png            :->     :>
+laugh.png           :))     :-))
 bye.png             =;
 arrogant.png        [-(
 thinking.png        :-?
-waiting.png         :-w :-W
-#at_wits_end        ~x( ~X(         MISSING: "Why.Does.This.Not.Work.AAAAARGH!!"    => angry smily shouting and pulling hair off
-smile-big.png       :D :-D :d :-d
-tongue.png          :-P :P :-p :p
-glasses-cool.png    B-) b-)
-neutral.png         :| :-|
-sleepy.png          I-) i-) |-)
-clown.png           :o) :O)
-doh.png             #-o #-O
+waiting.png         :-w     :-W
+#at_wits_end        ~x(     ~X(     MISSING: "Why.Does.This.Not.Work.AAAAARGH!!"    => angry smily shouting and pulling hair off
+smile-big.png       :D      :-D     :d      :-d
+tongue.png          :-P     :P      :-p     :p
+glasses-cool.png    B-)     b-)
+neutral.png         :|      :-|
+sleepy.png          I-)     i-)     |-)
+clown.png           :o)     :O)
+doh.png             #-o     #-O
 weep.png            :-<
 go-away.png         :-h
 lashes.png          ;;)
-kiss.png            :-* :*
-confused.png        :-S :-s
+kiss.png            :-*     :*
+confused.png        :-S     :-s
 sarcastic.png       /:)
-eyeroll.png         8-| 
+eyeroll.png         8-|
 silly.png           8-}
-clap.png            =D> =d>
-#phbbbt             >:P >:p         MISSING/YAHOO 6: "You are dumb! - No you are!!" => tongue on pissed of smily
-#timeout            :-t :-T         MISSING: "Let's have a break."
-hug-left.png        >:D< >:d<
+clap.png            =D>     =d>
+#phbbbt             >:P     >:p     MISSING/YAHOO 6: "You are dumb! - No you are!!" => tongue on pissed of smily
+#timeout            :-t     :-T     MISSING: "Let's have a break."
+hug-left.png        >:D<    >:d<
 love-over.png       =((
-sweat.png           #:-S #:-s
+sweat.png           #:-S    #:-s
 rotfl.png           =))    
-#loser              L-) l-)         MISSING/YAHOO 6: "Loser!"
-party.png	          <:-P <:-p
+#loser              L-)     l-)     MISSING/YAHOO 6: "Loser!"
+party.png	    <:-P    <:-p
 cowboy.png          <):)
 desire.png          8->
-alien.png		        =:) >-)
-beat-up.png		      b-( B-(
-chicken.png		      ~:>
-coffee.png		      ~o) ~O)
-cow.png			        3:-O 3:-o
-dance.png		        \\:D/ \\:d/
-rose.png		        @};-
-dont-know.png	    	:-L :-l
-skeleton.png		    8-X 8-x
-lamp.png		        *-:)
-monkey.png		      :(|)
-coins.png		        $-)
-peace.png		        :)>-
-pig.png			        :@)
-pray.png		        [-o< [-O<
-pumpkin.png		      (~~)
-shame.png		        [-X [-x
-flag.png		        **==
-clover.png		      %%-
-musical-note.png	  :-"
-nailbiting.png      :-SS :-ss
-giggle.png	        ;))
-worship.png	        ^:)^
-star.png		            (*)
+alien.png           =:)     >-)
+beat-up.png         b-(     B-(
+chicken.png         ~:>
+coffee.png          ~o)     ~O)
+cow.png             3:-O    3:-o
+dance.png           \\:D/   \\:d/
+rose.png            @};-
+dont-know.png       :-L     :-l
+skeleton.png        8-X     8-x
+lamp.png            *-:)
+monkey.png          :(|)
+coins.png           $-)
+peace.png           :)>-
+pig.png             :@)
+pray.png            [-o<    [-O<
+pumpkin.png         (~~)
+shame.png           [-X     [-x
+flag.png            **==
+clover.png          %%-
+musical-note.png    :-"
+nailbiting.png      :-SS    :-ss
+giggle.png          ;))
+worship.png         ^:)^
+star.png            (*)
 mad-tongue.png      >:p
-#yahoo_waving.gif	        >:/                     TODO
-#yahoo_talktohand.gif	    :-@                     TODO
-#yahoo_youkiddingme.gif	    :-j :-J               TODO
+#yahoo_waving.gif        >:/             TODO
+#yahoo_talktohand.gif    :-@             TODO
+#yahoo_youkiddingme.gif  :-j     :-J     TODO
 
 ### These only work in a certain IMvironment
-#yahoo_malefighter1.gif		o-> O->
-#yahoo_malefighter2.gif		o=> O=>
-#yahoo_femalefighter.gif	o-+ O-+
-yin-yang.png			    (%)
+#yahoo_malefighter1.gif	 o->     O->
+#yahoo_malefighter2.gif	 o=>     O=>
+#yahoo_femalefighter.gif o-+     O-+
+yin-yang.png        (%)
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Wed May 02 11:54:27 2007 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Wed May 02 11:55:04 2007 +0000
@@ -114,6 +114,7 @@
   !define MUI_ABORTWARNING
 
   ;Finish Page config
+  !define MUI_FINISHPAGE_NOAUTOCLOSE
   !define MUI_FINISHPAGE_RUN			"$INSTDIR\pidgin.exe"
   !define MUI_FINISHPAGE_RUN_NOTCHECKED
   !define MUI_FINISHPAGE_LINK			$(PIDGIN_FINISH_VISIT_WEB_SITE)
@@ -260,7 +261,7 @@
   ReadRegStr $STARTUP_RUN_KEY HKCU "${STARTUP_RUN_KEY}" $R7
   IfErrors +3
   StrCpy $STARTUP_RUN_KEY "HKCU"
-  Goto +4
+  Goto +5
   ClearErrors
   ReadRegStr $STARTUP_RUN_KEY HKLM "${STARTUP_RUN_KEY}" $R7
   IfErrors +2
@@ -282,7 +283,7 @@
 
   ; If a previous version exists, remove it
   try_uninstall:
-    StrCmp $R1 "" done
+    StrCmp $R1 "" no_version_found
       ; Version key started with 0.60a3. Prior versions can't be
       ; automatically uninstalled.
       StrCmp $R2 "" uninstall_problem
@@ -306,16 +307,18 @@
               Delete "$TEMP\$R6"
               Goto uninstall_problem
 
-        uninstall_problem:
+        no_version_found:
+          ;We've already tried to fallback to an old gaim instance
+          StrCmp $R7 "Gaim" done
           ; If we couldn't uninstall Pidgin, try to uninstall Gaim
-          StrCmp $R4 ${PIDGIN_REG_KEY} cannot_uninstall
+          StrCpy $STARTUP_RUN_KEY "NONE"
           StrCpy $R4 ${OLD_GAIM_REG_KEY}
           StrCpy $R5 ${OLD_GAIM_UNINSTALL_KEY}
           StrCpy $R6 ${OLD_GAIM_UNINST_EXE}
           StrCpy $R7 "Gaim"
           Goto start_comparison
 
-          cannot_uninstall:
+        uninstall_problem:
           ; We can't uninstall.  Either the user must manually uninstall or we ignore and reinstall over it.
           MessageBox MB_OKCANCEL $(PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL) /SD IDOK IDOK done
           Quit
@@ -1645,7 +1648,7 @@
   StrCpy $R1 "$TEMP\aspell_installer.exe"
   StrCpy $R2 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&dl_pkg=aspell_core"
   DetailPrint "Downloading Aspell... ($R2)"
-  NSISdl::download $R2 $R1
+  NSISdl::download /TIMEOUT=10000 $R2 $R1
   Pop $R0
   StrCmp $R0 "success" +2
     Goto done
@@ -1685,7 +1688,7 @@
   StrCpy $R1 "$TEMP\aspell_dict-$R0.exe"
   StrCpy $R3 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&dl_pkg=lang_$R0"
   DetailPrint "Downloading the Aspell $R0 Dictionary... ($R3)"
-  NSISdl::download $R3 $R1
+  NSISdl::download /TIMEOUT=10000 $R3 $R1
   Pop $R3
   StrCmp $R3 "success" +3
     StrCpy $R0 $R3