adium 2329:6df78055375a: Simplify fetching the protocol's UI ops.
commits at adium.im
commits at adium.im
Mon May 25 22:56:07 UTC 2009
details: http://hg.adium.im/adium/rev/6df78055375a
revision: 2329:6df78055375a
author: Zachary West <zacw at adium.im>
date: Mon May 25 18:56:02 2009 -0400
Simplify fetching the protocol's UI ops.
diffstat:
Plugins/Purple Service/CBPurpleAccount.h | 1 +
Plugins/Purple Service/CBPurpleAccount.m | 62 ++++++++++++-------------------
2 files changed, 25 insertions(+), 38 deletions(-)
diffs (153 lines):
diff -r 480241732fcf -r 6df78055375a Plugins/Purple Service/CBPurpleAccount.h
--- a/Plugins/Purple Service/CBPurpleAccount.h Mon May 25 18:53:31 2009 -0400
+++ b/Plugins/Purple Service/CBPurpleAccount.h Mon May 25 18:56:02 2009 -0400
@@ -49,6 +49,7 @@
- (const char*)protocolPlugin;
- (PurpleAccount*)purpleAccount;
+- (PurplePluginProtocolInfo *)protocolInfo;
- (void)setPurpleAccount:(PurpleAccount *)inAccount;
- (const char *)purpleAccountName;
diff -r 480241732fcf -r 6df78055375a Plugins/Purple Service/CBPurpleAccount.m
--- a/Plugins/Purple Service/CBPurpleAccount.m Mon May 25 18:53:31 2009 -0400
+++ b/Plugins/Purple Service/CBPurpleAccount.m Mon May 25 18:56:02 2009 -0400
@@ -119,6 +119,17 @@
// Subclasses must override this
- (const char*)protocolPlugin { return NULL; }
+- (PurplePluginProtocolInfo *)protocolInfo
+{
+ PurplePlugin *prpl;
+
+ if (prpl = prpl = purple_find_prpl(purple_account_get_protocol_id(account))) {
+ return PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
+ }
+
+ return NULL;
+}
+
// Contacts ------------------------------------------------------------------------------------------------
#pragma mark Contacts
- (void)newContact:(AIListContact *)theContact withName:(NSString *)inName
@@ -258,10 +269,7 @@
// Get the plugin's status message for this buddy if they don't have a status message
if (!message) {
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info = ((prpl = purple_find_prpl(purple_account_get_protocol_id(account))) ?
- PURPLE_PLUGIN_PROTOCOL_INFO(prpl) :
- NULL);
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
if (prpl_info && prpl_info->status_text) {
char *status_text = (prpl_info->status_text)(buddy);
@@ -1086,10 +1094,7 @@
return;
}
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info = ((prpl = purple_find_prpl(purple_account_get_protocol_id(account))) ?
- PURPLE_PLUGIN_PROTOCOL_INFO(prpl) :
- NULL);
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
if (prpl_info && prpl_info->set_chat_topic) {
(prpl_info->set_chat_topic)(purple_account_get_connection(account),
@@ -1300,11 +1305,8 @@
- (BOOL)allowFileTransferWithListObject:(AIListObject *)inListObject
{
- PurplePluginProtocolInfo *prpl_info = NULL;
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
- if (account && purple_account_get_connection(account) && purple_account_get_connection(account)->prpl)
- prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_account_get_connection(account)->prpl);
-
if (prpl_info && prpl_info->send_file)
return (!prpl_info->can_receive_file || prpl_info->can_receive_file(purple_account_get_connection(account), [inListObject.UID UTF8String]));
else
@@ -1322,11 +1324,8 @@
- (BOOL)canSendOfflineMessageToContact:(AIListContact *)inContact
{
- PurplePluginProtocolInfo *prpl_info = NULL;
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
- if (account && purple_account_get_connection(account) && purple_account_get_connection(account)->prpl)
- prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_account_get_connection(account)->prpl);
-
if (prpl_info && prpl_info->offline_message) {
return (prpl_info->offline_message(purple_find_buddy(account, [inContact.UID UTF8String])));
@@ -1625,10 +1624,7 @@
PurpleXfer *newPurpleXfer = NULL;
if (account && purple_account_get_connection(account)) {
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info = ((prpl = purple_find_prpl(purple_account_get_protocol_id(account))) ?
- PURPLE_PLUGIN_PROTOCOL_INFO(prpl) :
- NULL);
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
if (prpl_info && prpl_info->new_xfer) {
char *destsn = (char *)[[[fileTransfer contact] UID] UTF8String];
@@ -2523,10 +2519,7 @@
/* Now pass libpurple the new icon. Check to be sure our image doesn't have an NSZeroSize size,
* which would indicate currupt data */
if (image && !NSEqualSizes(NSZeroSize, imageSize)) {
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info = ((prpl = purple_find_prpl(purple_account_get_protocol_id(account))) ?
- PURPLE_PLUGIN_PROTOCOL_INFO(prpl) :
- NULL);
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
AILog(@"Original image of size %f %f",imageSize.width,imageSize.height);
@@ -2726,10 +2719,7 @@
NSMutableArray *menuItemArray = nil;
if (account && purple_account_is_connected(account)) {
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info = ((prpl = purple_find_prpl(purple_account_get_protocol_id(account))) ?
- PURPLE_PLUGIN_PROTOCOL_INFO(prpl) :
- NULL);
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
GList *l, *ll;
PurpleBuddy *buddy;
@@ -2929,15 +2919,13 @@
*/
- (NSAlert*)alertForAccountDeletion
{
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info;
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
//Ensure libpurple has been loaded, since we need to know whether we can unregister this account
[self purpleAdapter];
- if ((prpl = purple_find_prpl([self protocolPlugin])) &&
- (prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl)) &&
- (prpl_info->unregister_user) &&
+ if (prpl_info &&
+ prpl_info->unregister_user &&
[self allowAccountUnregistrationIfSupportedByLibpurple]) {
return [NSAlert alertWithMessageText:AILocalizedString(@"Delete Account",nil)
defaultButton:AILocalizedString(@"Delete",nil)
@@ -2952,12 +2940,10 @@
- (void)alertForAccountDeletion:(id<AIAccountControllerRemoveConfirmationDialog>)dialog didReturn:(int)returnCode
{
- PurplePlugin *prpl;
- PurplePluginProtocolInfo *prpl_info;
+ PurplePluginProtocolInfo *prpl_info = self.protocolInfo;
- if ((prpl = purple_find_prpl([self protocolPlugin])) &&
- (prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl)) &&
- (prpl_info->unregister_user)) {
+ if (prpl_info &&
+ prpl_info->unregister_user) {
switch (returnCode) {
case NSAlertOtherReturn:
// delete & unregister
More information about the commits
mailing list