adium 5517:0fbb04961745: Merged adium-1.6 into libotr4.0.0.
commits at adium.im
commits at adium.im
Mon May 27 22:53:24 UTC 2013
details: http://hg.adium.im/adium/rev/0fbb04961745
revision: 5517:0fbb04961745
branch: libotr4.0.0
author: Thijs Alkemade <me at thijsalkema.de>
date: Tue May 28 00:52:55 2013 +0200
Merged adium-1.6 into libotr4.0.0.
diffs (truncated from 50406 to 1000 lines):
diff -r 88cdaeb864d1 -r 0fbb04961745 Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj Tue May 28 00:24:27 2013 +0200
+++ b/Adium.xcodeproj/project.pbxproj Tue May 28 00:52:55 2013 +0200
@@ -843,7 +843,6 @@
34DC8ADC0A7EEEF7003E1636 /* AIContextMenuTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E1E8176063A3EEC00EB00F7 /* AIContextMenuTextView.h */; settings = {ATTRIBUTES = (Public, ); }; };
34DC8ADD0A7EEEF7003E1636 /* AIContextMenuTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E1E8177063A3EEC00EB00F7 /* AIContextMenuTextView.m */; };
34DC8AE00A7EEEF7003E1636 /* AIMessageEntryTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5827E80613CE9D0004BD25 /* AIMessageEntryTextView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 34DC8AE10A7EEEF7003E1636 /* AIMessageEntryTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B5827E90613CE9D0004BD25 /* AIMessageEntryTextView.m */; };
34DC8AE40A7EEEF7003E1636 /* stackImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 349DDD5206406A7D00542726 /* stackImage.png */; };
34DC8AE50A7EEEF7003E1636 /* AILocalizationAssistance.h in Headers */ = {isa = PBXBuildFile; fileRef = 34D189B1076131850075A380 /* AILocalizationAssistance.h */; settings = {ATTRIBUTES = (Public, ); }; };
34DC8AE70A7EEEF7003E1636 /* AILocalizationButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 078C5CD0079EFF87004C75A4 /* AILocalizationButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -1019,6 +1018,7 @@
4F1CB6400D640DA40073A1E6 /* get-info-advanced.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 4F1CB63C0D640DA40073A1E6 /* get-info-advanced.tiff */; };
4F1CB6410D640DA40073A1E6 /* get-info-events.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 4F1CB63D0D640DA40073A1E6 /* get-info-events.tiff */; };
4F1CB64C0D640F4F0073A1E6 /* ContactInfoInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4F1CB64B0D640F4F0073A1E6 /* ContactInfoInspector.xib */; };
+ 5A0BBC4317400544002A7BE0 /* emoticons_menu at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5A0BBC4217400544002A7BE0 /* emoticons_menu at 2x.png */; };
5A0D236A16F4C7BC005DF211 /* STTwitterAppOnly.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A0D236816F4C7BC005DF211 /* STTwitterAppOnly.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
5A1781860EC1215D00BA1E04 /* AIAutoScrollTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A1781850EC1215D00BA1E04 /* AIAutoScrollTextView.m */; };
5A17D65D130F76B4002C852F /* AIGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A17D65C130F76B4002C852F /* AIGradientView.m */; };
@@ -1357,6 +1357,9 @@
76731DE515F90582007728C3 /* libgpgerror.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 76731DE115F90538007728C3 /* libgpgerror.framework */; };
767870E41634045D00BD0E4D /* AIMessageViewTopBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = 767870E31634045C00BD0E4D /* AIMessageViewTopBarController.m */; };
76889DEB12D3CA17007AEF00 /* get-info.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 76889DEA12D3CA17007AEF00 /* get-info.tiff */; };
+ 76980AC1173E6C8800FBDA15 /* libidn.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76980AC0173E6C8800FBDA15 /* libidn.framework */; };
+ 76980AC5173E6CA700FBDA15 /* libidn.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 76980AC0173E6C8800FBDA15 /* libidn.framework */; };
+ 769D634B17393CBE008B97BC /* AMPurpleJabberDiscoveryBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = 769D634A17393CBE008B97BC /* AMPurpleJabberDiscoveryBrowser.xib */; };
76A79E0B16349477007A0497 /* AIGroupChat.h in Headers */ = {isa = PBXBuildFile; fileRef = 76A79E0916349477007A0497 /* AIGroupChat.h */; settings = {ATTRIBUTES = (Public, ); }; };
76A79E0C16349477007A0497 /* AIGroupChat.m in Sources */ = {isa = PBXBuildFile; fileRef = 76A79E0A16349477007A0497 /* AIGroupChat.m */; };
76AA110C1635585E00A6EC4B /* AIAccountSelectionTopBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 76AA11091635585E00A6EC4B /* AIAccountSelectionTopBar.xib */; };
@@ -1365,6 +1368,7 @@
76B8B8EC16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.m in Sources */ = {isa = PBXBuildFile; fileRef = 76B8B8EA16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.m */; };
76B8B8ED16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 76B8B8EB16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.xib */; };
76C1AF9C125A906A00D269A9 /* AIAdiumURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 76C1AF9B125A906A00D269A9 /* AIAdiumURLProtocol.m */; };
+ 76FBDAC91733B9CA00C9F10B /* STTwitterHTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 76FBDAC61733B9C900C9F10B /* STTwitterHTML.m */; };
76FF925A14B524B40043E23B /* AIIRCConsoleController.h in Headers */ = {isa = PBXBuildFile; fileRef = 76FF925814B524B40043E23B /* AIIRCConsoleController.h */; };
76FF925B14B524B40043E23B /* AIIRCConsoleController.m in Sources */ = {isa = PBXBuildFile; fileRef = 76FF925914B524B40043E23B /* AIIRCConsoleController.m */; };
76FF926414B62A980043E23B /* AIConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = 76FF926314B62A980043E23B /* AIConsole.xib */; };
@@ -1414,6 +1418,11 @@
9719C92F1530EE4800217FBE /* FriBidi.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 9719C92B1530EDF700217FBE /* FriBidi.framework */; };
9719C9301530EE4800217FBE /* ShortcutRecorder.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 9719C92D1530EE0C00217FBE /* ShortcutRecorder.framework */; };
9722ABC813257D7F00CAB486 /* ContactListWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9722ABC713257D7F00CAB486 /* ContactListWindow.xib */; };
+ 972AB3A11493CF2300381105 /* emoticons_menu.png in Resources */ = {isa = PBXBuildFile; fileRef = 974C7524148570E2000686BA /* emoticons_menu.png */; };
+ 972AB3A21493D1BA00381105 /* MessageViewEmoticonsMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 974C752C148578F6000686BA /* MessageViewEmoticonsMenu.xib */; };
+ 97483A011486DD87002D1FA8 /* AIMessageEntryTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B5827E90613CE9D0004BD25 /* AIMessageEntryTextView.m */; };
+ 97483A051486E92C002D1FA8 /* AIMessageViewEmoticonsController.h in Headers */ = {isa = PBXBuildFile; fileRef = 974C753314857BF4000686BA /* AIMessageViewEmoticonsController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 97483A061486E93E002D1FA8 /* AIMessageViewEmoticonsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 974C753414857BF4000686BA /* AIMessageViewEmoticonsController.m */; };
9760D24613E49A560031FA1A /* AboutDialog_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 9760D24513E49A560031FA1A /* AboutDialog_bg.png */; };
97AF5CDB13191DE200550C41 /* AIContactListUserPictureMenuController.m in Sources */ = {isa = PBXBuildFile; fileRef = 97AF5CDA13191DE200550C41 /* AIContactListUserPictureMenuController.m */; };
97AF5CF413191E9A00550C41 /* ContactListChangeUserPictureMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 97AF5CF313191E9A00550C41 /* ContactListChangeUserPictureMenu.xib */; };
@@ -1678,6 +1687,7 @@
11EE1CCF0CDD01120097F246 /* libglib.framework in Copy Frameworks */,
11EE1CD00CDD01120097F246 /* libgmodule.framework in Copy Frameworks */,
11EE1CD10CDD01120097F246 /* libgobject.framework in Copy Frameworks */,
+ 76980AC5173E6CA700FBDA15 /* libidn.framework in Copy Frameworks */,
11EE1CD20CDD01120097F246 /* libgthread.framework in Copy Frameworks */,
7664EAA6162E0874008CF995 /* libffi.framework in Copy Frameworks */,
11EE1CD30CDD01120097F246 /* libintl.framework in Copy Frameworks */,
@@ -3867,6 +3877,7 @@
4F1CB63C0D640DA40073A1E6 /* get-info-advanced.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = "get-info-advanced.tiff"; path = "Resources/get-info-advanced.tiff"; sourceTree = "<group>"; };
4F1CB63D0D640DA40073A1E6 /* get-info-events.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = "get-info-events.tiff"; path = "Resources/get-info-events.tiff"; sourceTree = "<group>"; };
4F1CB64B0D640F4F0073A1E6 /* ContactInfoInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ContactInfoInspector.xib; path = Resources/ContactInfoInspector.xib; sourceTree = "<group>"; };
+ 5A0BBC4217400544002A7BE0 /* emoticons_menu at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "emoticons_menu at 2x.png"; path = "Resources/emoticons_menu at 2x.png"; sourceTree = "<group>"; };
5A0D236816F4C7BC005DF211 /* STTwitterAppOnly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = STTwitterAppOnly.m; path = "Plugins/Twitter Plugin/STTwitter/STTwitterAppOnly.m"; sourceTree = "<group>"; };
5A0D236916F4C7BC005DF211 /* STTwitterAppOnly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STTwitterAppOnly.h; path = "Plugins/Twitter Plugin/STTwitter/STTwitterAppOnly.h"; sourceTree = "<group>"; };
5A1781840EC1215D00BA1E04 /* AIAutoScrollTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIAutoScrollTextView.h; path = Source/AIAutoScrollTextView.h; sourceTree = "<group>"; };
@@ -4418,6 +4429,8 @@
767870E21634045C00BD0E4D /* AIMessageViewTopBarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMessageViewTopBarController.h; path = Source/AIMessageViewTopBarController.h; sourceTree = "<group>"; };
767870E31634045C00BD0E4D /* AIMessageViewTopBarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIMessageViewTopBarController.m; path = Source/AIMessageViewTopBarController.m; sourceTree = "<group>"; };
76889DEA12D3CA17007AEF00 /* get-info.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = "get-info.tiff"; path = "Resources/get-info.tiff"; sourceTree = "<group>"; };
+ 76980AC0173E6C8800FBDA15 /* libidn.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libidn.framework; path = Frameworks/libidn.framework; sourceTree = "<group>"; };
+ 769D634A17393CBE008B97BC /* AMPurpleJabberDiscoveryBrowser.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AMPurpleJabberDiscoveryBrowser.xib; path = "Plugins/Purple Service/AMPurpleJabberDiscoveryBrowser.xib"; sourceTree = "<group>"; };
76A79E0916349477007A0497 /* AIGroupChat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIGroupChat.h; path = "Frameworks/Adium Framework/Source/AIGroupChat.h"; sourceTree = "<group>"; };
76A79E0A16349477007A0497 /* AIGroupChat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIGroupChat.m; path = "Frameworks/Adium Framework/Source/AIGroupChat.m"; sourceTree = "<group>"; };
76AA11091635585E00A6EC4B /* AIAccountSelectionTopBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AIAccountSelectionTopBar.xib; path = "Plugins/Dual Window Interface/AIAccountSelectionTopBar.xib"; sourceTree = "<group>"; };
@@ -4430,6 +4443,10 @@
76B8B8EB16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AIOTRTopBarLoggingWarningController.xib; path = Source/AIOTRTopBarLoggingWarningController.xib; sourceTree = "<group>"; };
76C1AF9A125A906A00D269A9 /* AIAdiumURLProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIAdiumURLProtocol.h; path = "Plugins/WebKit Message View/AIAdiumURLProtocol.h"; sourceTree = "<group>"; };
76C1AF9B125A906A00D269A9 /* AIAdiumURLProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIAdiumURLProtocol.m; path = "Plugins/WebKit Message View/AIAdiumURLProtocol.m"; sourceTree = "<group>"; };
+ 76FBDAC51733B9C900C9F10B /* STTwitterHTML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STTwitterHTML.h; path = "Plugins/Twitter Plugin/STTwitter/STTwitterHTML.h"; sourceTree = "<group>"; };
+ 76FBDAC61733B9C900C9F10B /* STTwitterHTML.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = STTwitterHTML.m; path = "Plugins/Twitter Plugin/STTwitter/STTwitterHTML.m"; sourceTree = "<group>"; };
+ 76FBDAC71733B9C900C9F10B /* STTwitterOAuthOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STTwitterOAuthOSX.h; path = "Plugins/Twitter Plugin/STTwitter/STTwitterOAuthOSX.h"; sourceTree = "<group>"; };
+ 76FBDAC81733B9C900C9F10B /* STTwitterOAuthOSX.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = STTwitterOAuthOSX.m; path = "Plugins/Twitter Plugin/STTwitter/STTwitterOAuthOSX.m"; sourceTree = "<group>"; };
76FF925814B524B40043E23B /* AIIRCConsoleController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIIRCConsoleController.h; path = "Plugins/Purple Service/AIIRCConsoleController.h"; sourceTree = "<group>"; };
76FF925914B524B40043E23B /* AIIRCConsoleController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIIRCConsoleController.m; path = "Plugins/Purple Service/AIIRCConsoleController.m"; sourceTree = "<group>"; };
76FF926314B62A980043E23B /* AIConsole.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = AIConsole.xib; path = "Frameworks/Adium Framework/Resources/AIConsole.xib"; sourceTree = "<group>"; };
@@ -4482,6 +4499,10 @@
9719C92B1530EDF700217FBE /* FriBidi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FriBidi.framework; path = Frameworks/FriBidi.framework; sourceTree = "<group>"; };
9719C92D1530EE0C00217FBE /* ShortcutRecorder.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ShortcutRecorder.framework; path = Frameworks/ShortcutRecorder.framework; sourceTree = "<group>"; };
9722ABC713257D7F00CAB486 /* ContactListWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ContactListWindow.xib; path = Resources/ContactListWindow.xib; sourceTree = "<group>"; };
+ 974C7524148570E2000686BA /* emoticons_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = emoticons_menu.png; path = Resources/emoticons_menu.png; sourceTree = "<group>"; };
+ 974C752C148578F6000686BA /* MessageViewEmoticonsMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MessageViewEmoticonsMenu.xib; path = Resources/MessageViewEmoticonsMenu.xib; sourceTree = "<group>"; };
+ 974C753314857BF4000686BA /* AIMessageViewEmoticonsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMessageViewEmoticonsController.h; path = Source/AIMessageViewEmoticonsController.h; sourceTree = "<group>"; };
+ 974C753414857BF4000686BA /* AIMessageViewEmoticonsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIMessageViewEmoticonsController.m; path = Source/AIMessageViewEmoticonsController.m; sourceTree = "<group>"; };
9760D24513E49A560031FA1A /* AboutDialog_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = AboutDialog_bg.png; path = Resources/AboutDialog_bg.png; sourceTree = "<group>"; };
979AA6A514D59DC8008730DF /* AIBoolToControlTextColorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIBoolToControlTextColorTransformer.h; path = "Frameworks/Adium Framework/Source/AIBoolToControlTextColorTransformer.h"; sourceTree = "<group>"; };
979AA6A614D59DC8008730DF /* AIBoolToControlTextColorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIBoolToControlTextColorTransformer.m; path = "Frameworks/Adium Framework/Source/AIBoolToControlTextColorTransformer.m"; sourceTree = "<group>"; };
@@ -4787,6 +4808,7 @@
811035180CDE783800EC6038 /* SecurityInterface.framework in Frameworks */,
633405990F9C2C00003C77A9 /* AIUtilities.framework in Frameworks */,
3485D8EB09EB446900232CC4 /* Adium.framework in Frameworks */,
+ 76980AC1173E6C8800FBDA15 /* libidn.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5006,6 +5028,13 @@
11C157D504A88DE0008E0C76 /* Emoticons */ = {
isa = PBXGroup;
children = (
+ 11C157D804A88E04008E0C76 /* AIEmoticonController.h */,
+ 11C157D904A88E04008E0C76 /* AIEmoticonController.m */,
+ 974C753314857BF4000686BA /* AIMessageViewEmoticonsController.h */,
+ 974C753414857BF4000686BA /* AIMessageViewEmoticonsController.m */,
+ 974C752C148578F6000686BA /* MessageViewEmoticonsMenu.xib */,
+ 974C7524148570E2000686BA /* emoticons_menu.png */,
+ 5A0BBC4217400544002A7BE0 /* emoticons_menu at 2x.png */,
C4243C920638E4EA007AD2D9 /* BGEmoticonMenuPlugin.h */,
C4243C930638E4EA007AD2D9 /* BGEmoticonMenuPlugin.m */,
);
@@ -5653,6 +5682,7 @@
346545090C8F69280046ED68 /* Discovery Browsing */ = {
isa = PBXGroup;
children = (
+ 769D634A17393CBE008B97BC /* AMPurpleJabberDiscoveryBrowser.xib */,
81DAED500C26F4F700780E4C /* AMPurpleJabberServiceDiscoveryBrowsing.h */,
81DAED510C26F4F700780E4C /* AMPurpleJabberServiceDiscoveryBrowsing.m */,
3465451A0C8F6A670046ED68 /* AMPurpleJabberServiceDiscoveryBrowserController.h */,
@@ -5842,8 +5872,6 @@
34B82C80085A85D800864531 /* AIChatController.m */,
F55B415C03AB8B5601A8010A /* AIContentController.h */,
F55B415D03AB8B5601A8010A /* AIContentController.m */,
- 11C157D804A88E04008E0C76 /* AIEmoticonController.h */,
- 11C157D904A88E04008E0C76 /* AIEmoticonController.m */,
34CA15520CAFDFB2009AA5E3 /* sidebarActionWidget.png */,
C6EE434115C0AA6F00A4B96C /* sidebarActionWidget at 2x.png */,
34A9707D0C96602200F46006 /* sidebarStatusAreaBackground.png */,
@@ -7346,6 +7374,10 @@
5A3B4D7116D878AB00903E40 /* STTwitterOAuth.h */,
5A3B4D7216D878AB00903E40 /* STTwitterOAuth.m */,
5A3B4D7516D878AB00903E40 /* STTwitterOAuthProtocol.h */,
+ 76FBDAC51733B9C900C9F10B /* STTwitterHTML.h */,
+ 76FBDAC61733B9C900C9F10B /* STTwitterHTML.m */,
+ 76FBDAC71733B9C900C9F10B /* STTwitterOAuthOSX.h */,
+ 76FBDAC81733B9C900C9F10B /* STTwitterOAuthOSX.m */,
5A3B4D7616D878AC00903E40 /* Vendor */,
);
name = STTwitter;
@@ -8284,6 +8316,7 @@
979AA6A914D59EF3008730DF /* Others */ = {
isa = PBXGroup;
children = (
+ 76980AC0173E6C8800FBDA15 /* libidn.framework */,
7664EAA4162E086A008CF995 /* libffi.framework */,
76731DE015F90538007728C3 /* libgcrypt.framework */,
76731DE115F90538007728C3 /* libgpgerror.framework */,
@@ -9177,6 +9210,7 @@
112B47670F82E0FC00690E84 /* AIXtraInfo.h in Headers */,
34F17FCE0F8EAC34009C5A39 /* AIListOutlineView+Drawing.h in Headers */,
63B0EC9D0F8FBB660062476B /* AIProxyListObject.h in Headers */,
+ 97483A051486E92C002D1FA8 /* AIMessageViewEmoticonsController.h in Headers */,
76A79E0B16349477007A0497 /* AIGroupChat.h in Headers */,
5A6298E31682BD9D00F51DED /* AIAdvancedPreferencePane.h in Headers */,
);
@@ -9634,6 +9668,7 @@
1150A9960FBE48D600E0BD31 /* ESIRCAccountView.xib in Resources */,
34D8153F13B663650022C8C4 /* AIFacebookXMPPOauthWebViewWindow.xib in Resources */,
5A22D6E214834F44004E15F7 /* AIFacebookXMPPAccountView.xib in Resources */,
+ 769D634B17393CBE008B97BC /* AMPurpleJabberDiscoveryBrowser.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -9857,6 +9892,8 @@
5A4BD56A13F86B7E00A4D3F7 /* Preferences-Icons.xib in Resources */,
5A4BD57F13F86BC500A4D3F7 /* Preferences-General.xib in Resources */,
7EC033B214590E0700CF24FB /* MessageWindow.xib in Resources */,
+ 972AB3A11493CF2300381105 /* emoticons_menu.png in Resources */,
+ 972AB3A21493D1BA00381105 /* MessageViewEmoticonsMenu.xib in Resources */,
5A27FA7E14A272330063489D /* pref-messagestyle.png in Resources */,
5A1E3A1214DCE60400724574 /* Preferences-Xtras.xib in Resources */,
5A8F637614DD1B21008412C8 /* Preferences-Privacy.xib in Resources */,
@@ -9929,6 +9966,7 @@
C613B143164112B3006683FF /* events-dock-name.tiff in Resources */,
C613B1451641210B006683FF /* events-contact.tiff in Resources */,
76B8B8ED16AF3A46009126FE /* AIOTRTopBarLoggingWarningController.xib in Resources */,
+ 5A0BBC4317400544002A7BE0 /* emoticons_menu at 2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -10585,6 +10623,7 @@
5A3B4D7E16D878AC00903E40 /* STHTTPRequest.m in Sources */,
5A0D236A16F4C7BC005DF211 /* STTwitterAppOnly.m in Sources */,
5A4B77E916FBDDC700DF398C /* NSData+Base64.m in Sources */,
+ 76FBDAC91733B9CA00C9F10B /* STTwitterHTML.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -10657,7 +10696,6 @@
34DC8AD80A7EEEF7003E1636 /* DCJoinChatWindowController.m in Sources */,
34DC8ADB0A7EEEF7003E1636 /* AIAccountPlusFieldPromptController.m in Sources */,
34DC8ADD0A7EEEF7003E1636 /* AIContextMenuTextView.m in Sources */,
- 34DC8AE10A7EEEF7003E1636 /* AIMessageEntryTextView.m in Sources */,
34DC8AE80A7EEEF7003E1636 /* AILocalizationButtonCell.m in Sources */,
34DC8AEA0A7EEEF7003E1636 /* AILocalizationTextField.m in Sources */,
34DC8AEC0A7EEEF7003E1636 /* AILocalizationButton.m in Sources */,
@@ -10691,6 +10729,8 @@
112B47680F82E0FC00690E84 /* AIXtraInfo.m in Sources */,
34F17FCF0F8EAC34009C5A39 /* AIListOutlineView+Drawing.m in Sources */,
63B0EC9C0F8FBB660062476B /* AIProxyListObject.m in Sources */,
+ 97483A011486DD87002D1FA8 /* AIMessageEntryTextView.m in Sources */,
+ 97483A061486E93E002D1FA8 /* AIMessageViewEmoticonsController.m in Sources */,
76FF926814B62AB80043E23B /* AIConsoleController.m in Sources */,
5AEE60011602BAE200304672 /* AIBoolToControlTextColorTransformer.m in Sources */,
76A79E0C16349477007A0497 /* AIGroupChat.m in Sources */,
@@ -12388,6 +12428,10 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 63C7E2060FAFAA4700B310AC /* AdiumLibpurple.xcconfig */;
buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/Frameworks\"",
+ );
};
name = Debug;
};
@@ -12395,6 +12439,10 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 63C7E2060FAFAA4700B310AC /* AdiumLibpurple.xcconfig */;
buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/Frameworks\"",
+ );
};
name = Release;
};
@@ -12402,6 +12450,10 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 63C7E2060FAFAA4700B310AC /* AdiumLibpurple.xcconfig */;
buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/Frameworks\"",
+ );
};
name = "Release-Debug";
};
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/gfx/Adium-Extra.png
Binary file AdiumHelp/gfx/Adium-Extra.png has changed
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/gfx/Adium-Xtras.png
Binary file AdiumHelp/gfx/Adium-Xtras.png has changed
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/gfx/Chat window-Encryption.png
Binary file AdiumHelp/gfx/Chat window-Encryption.png has changed
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/gfx/pref-sm.png
Binary file AdiumHelp/gfx/pref-sm.png has changed
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/pgs/AdiumDocumentation.html
--- a/AdiumHelp/pgs/AdiumDocumentation.html Tue May 28 00:24:27 2013 +0200
+++ b/AdiumHelp/pgs/AdiumDocumentation.html Tue May 28 00:52:55 2013 +0200
@@ -37,7 +37,7 @@
<li><a href="Accounts-CreatingAccounts.html">Creating accounts â¸</a></li>
<li><a href="Accounts-ContactIcons.html">Contact icons â¸</a></li>
<li><a href="Accounts-SettingYourStatus.html">Setting your status â¸</a></li>
- <li>Specific account use
+ <li>Service-specific information
<ul>
<li><a href="ServiceInformation-IRCSupport.html">IRC â¸</a></li>
<li><a href="ServiceInformation-TwitterSupport.html">Twitter â¸</a></li>
@@ -109,11 +109,15 @@
<td><ul>
<li><a href="AdvancedFeatures-AdiumXtras.html">Adium Xtras â¸</a></li>
<li><a href="AdvancedFeatures-GrowlSupport.html">Growl support â¸</a></li>
+ <li><a href="AdvancedFeatures-FileTransfer.html">File transfer â¸</a></li>
<li><a href="AdvancedFeatures-AddressBookIntegration.html">Address Book integration â¸</a></li>
- <li><a href="AdvancedFeatures-FileTransfer.html">File transfer â¸</a></li>
- <li><a href="AdvancedFeatures-DirectConnect.html">AIM: Direct Connect â¸</a></li>
- <li><a href="AdvancedFeatures-SearchForBuddyBy Email.html">AIM: Search for buddy by email address â¸</a></li>
- <li><a href="AdvancedFeatures-NudgeBuzz.html">MSN: Nudge / Yahoo: Buzz â¸</a></li>
+ <li><a href="AdvancedFeatures-OTREncryption.html">OTR encryption â¸</a></li>
+ <li>Service-specific information</li>
+ <ul>
+ <li><a href="AdvancedFeatures-DirectConnect.html">AIM: Direct Connect â¸</a></li>
+ <li><a href="AdvancedFeatures-SearchForBuddyBy Email.html">AIM: Search for buddy by email address â¸</a></li>
+ <li><a href="AdvancedFeatures-NudgeBuzz.html">MSN: Nudge / Yahoo: Buzz â¸</a></li>
+ </ul>
</ul></td>
</tr>
</table>
@@ -144,7 +148,7 @@
</div>
<div class="taskboxline">
<div class="taskboxheader">
- <h3>Information about the services supported</h3>
+ <h3>Services supported</h3>
</div>
<div class="taskboxtable">
<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="One column table with heading">
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html
--- a/AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html Tue May 28 00:24:27 2013 +0200
+++ b/AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html Tue May 28 00:52:55 2013 +0200
@@ -23,7 +23,7 @@
<h3>Installing Adium Xtras</h3>
</div>
<div class="taskboxtext">
- <p>To install an Xtra from the <a class="ext_link" href="http://xtras.adium.im/">AdiumXtras website</a>, click the install link on the Xtra's webpage. To install an extra that you have already downloaded, simply doubleclick it. In either case, Adium will launch and put the Xtra into the correct place for you.</p>
+ <p>To install an Xtra from the <a class="ext_link" href="http://xtras.adium.im/">AdiumXtras website</a>, click the install link on the Xtra's webpage. To install an Xtra that you have already downloaded, simply doubleclick it. In either case, Adium will launch and put the Xtra into the correct place for you.</p>
</div>
</div>
<div class="taskboxline">
@@ -32,7 +32,7 @@
</div>
<div class="taskboxtext">
<p>Xtras are stored in subfolders of this folder: (Your Home Folder)/Library/Application Support/Adium 2.0. Each folder contains a different type of Xtra.</p>
- <p align="center"> <img src="../gfx/Adium-Extra.png" alt="" width="400" height="112" /></p>
+ <p align="center"> <img src="../gfx/Adium-Xtras.png" alt="" width="400" height="112" /></p>
<ul>
<li>Contact List - Contact list layouts and themes (<a href="AdvancedFeatures-AdiumXtras-ListLayouts.html">.ListLayout</a>, <a href="AdvancedFeatures-AdiumXtras-ListTheme.html">.ListTheme</a>)</li>
<li>Dock Icons - Dock-icon packs (<a href="AdvancedFeatures-AdiumXtras-DockIcons.html">.AdiumIcon</a>)</li>
diff -r 88cdaeb864d1 -r 0fbb04961745 AdiumHelp/pgs/AdvancedFeatures-OTREncryption.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AdiumHelp/pgs/AdvancedFeatures-OTREncryption.html Tue May 28 00:52:55 2013 +0200
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<meta name="keywords" content="otr, encryption, off-the-record" />
+<meta name="description" content="otr encryption" />
+<title>OTR encryption</title>
+<link href="../css/topicpage.css" type="text/css" rel="stylesheet" media="all" />
+</head>
+<body>
+<div id="banner"> <a name="tabs" id="tabs"></a>
+ <div id="navleft"><a class="navleftsty" href="../AdiumHelp.html">Adium Help</a> <a class="navleftsty" href="AdiumDocumentation.html">Adium Documentation</a></div>
+</div>
+<div id="mainbox">
+ <div id="caticon"> <img src="../gfx/AdiumIcon.png" alt="Adium Icon" height="32" width="32" border="0" /> </div>
+ <div id="pagetitle">
+ <h1>OTR encryption</h1>
+ </div>
+ <p><a href="http://www.cypherpunks.ca/otr/">Off-the-Record (OTR) Messaging</a> enables you to have private conversations over instant messaging. According to the OTR Development Team, it aims to provide the following:</p>
+ <ul>
+ <li>"Encryption: No one else can read your instant messages."</li>
+ <li>"Authentication: You are assured the correspondent is who you think it is."</li>
+ <li>"Deniability: The messages you send do not have digital signatures that are checkable by a third party. Anyone can forge messages after a conversation to make them look like they came from you. However, during a conversation, your correspondent is assured the messages he sees are authentic and unmodified."</li>
+ <li>"Perfect forward secrecy: If you lose control of your private keys, no previous conversation is compromised."</li>
+ </ul>
+ <div class="taskboxline">
+ <div class="taskboxheader">
+ <h3>Setup</h3>
+ </div>
+ <div class="taskboxtext">
+ <ul>
+ <li>Generate an OTR fingerprint:</li>
+ <ol>
+ <li>Open the preferences, accessible via the <strong>Adium</strong> menu in the menu bar, and select the <strong>Encryption</strong> pane.</li>
+ <li>Click the <strong>Generate</strong> button. This fingerprint is unique for the account selected in the dropdown.</li>
+ </ol>
+ <li>Make sure you have the "Encryption" (lock) item in the chat window's toolbar. If not, click "Customise Toolbar..." from the <strong>View</strong> menu and add it.</li>
+ </ul>
+ <p align="center"> <img src="../gfx/Chat window-Encryption.png" alt="" width="" height="" /></p>
+ </div>
+ </div>
+ <div class="taskboxline">
+ <div class="taskboxheader">
+ <h3>Initiating an OTR-encrypted chat</h3>
+ </div>
+ <div class="taskboxtext">
+ <p></p>
+ <ol>
+ <li>Open a chat with the contact with whom you want to have a private conversation.</li>
+ <li>Notice the "Encryption" item in the toolbar appears unlocked. It signifies the chat currently is not encrypted. Click the icon and select "Initiate Encrypted OTR Chat".</li>
+ <li>You will be prompted to verify the fingerprint. If you are certain of its trustworthy origin click "Accept".</li>
+ <li>Notice the previously unlocked icon is now locked and the message "Encrypted OTR chat initiated" is displayed in the message view.</li>
+ </ol>
+ </div>
+ </div>
+ <div class="taskboxline">
+ <div class="taskboxheader">
+ <h3>Encryption settings</h3>
+ </div>
+ <div class="taskboxtext">
+ <p>There are four different settings which can be adjusted on a per-account and on a per-contact basis: "Disable chat encryption", "Encrypt chats as requested", "Encrypt chats automatically" and "Force encryption and refuse plaintext".</p>
+ <p><strong>Per-account</strong></p>
+ <ul>
+ <li>Open preferences, select the <strong>Accounts</strong> pane and double-click the account.</li>
+ <li>Click the "Privacy" tab and choose your option for this account from the dropdown.</li>
+ </ul>
+ <p><strong>Per-contact</strong></p>
+ <ul>
+ <li>In the chat window/tab you have open with the contact in question, click the lock in the toolbar and choose your option via "Encryption Settings".</li>
+ </ul>
+ </div>
+ </div>
+ <div class="taskboxline">
+ <div class="taskboxheader">
+ <h3>Disabling chat logging on your computer</h3>
+ </div>
+ <div class="taskboxtext">
+ <p>By default, Adium stores all of your chats locally. You might want to disable logging of chats on your computer entirely or just for OTR-encrypted chats or specific accounts.</p>
+ <ul>
+ <li>Open preferences, select the <strong>Messages</strong> pane.</li>
+ <li>Tick the appropriate checkboxes.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+<script type="text/javascript" src="../js/help.js"></script>
+</body>
+</html>
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AIColorAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIColorAdditions.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AIColorAdditions.m Tue May 28 00:52:55 2013 +0200
@@ -151,26 +151,9 @@
+ (NSDictionary *)colorNamesDictionary
{
- if (!RGBColorValues) {
- RGBColorValues = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
- [NSColor colorWithHTMLString:@"#000"], @"black",
- [NSColor colorWithHTMLString:@"#c0c0c0"], @"silver",
- [NSColor colorWithHTMLString:@"#808080"], @"gray",
- [NSColor colorWithHTMLString:@"#808080"], @"grey",
- [NSColor colorWithHTMLString:@"#fff"], @"white",
- [NSColor colorWithHTMLString:@"#800000"], @"maroon",
- [NSColor colorWithHTMLString:@"#f00"], @"red",
- [NSColor colorWithHTMLString:@"#800080"], @"purple",
- [NSColor colorWithHTMLString:@"#f0f"], @"fuchsia",
- [NSColor colorWithHTMLString:@"#008000"], @"green",
- [NSColor colorWithHTMLString:@"#0f0"], @"lime",
- [NSColor colorWithHTMLString:@"#808000"], @"olive",
- [NSColor colorWithHTMLString:@"#ff0"], @"yellow",
- [NSColor colorWithHTMLString:@"#000080"], @"navy",
- [NSColor colorWithHTMLString:@"#00f"], @"blue",
- [NSColor colorWithHTMLString:@"#008080"], @"teal",
- [NSColor colorWithHTMLString:@"#0ff"], @"aqua",
- nil];
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ RGBColorValues = [[NSMutableDictionary alloc] init];
NSArray *paths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:defaultRGBTxtLocation1 error:NULL];
for (NSString *middlePath in paths) {
NSString *path = [defaultRGBTxtLocation1 stringByAppendingPathComponent:[middlePath stringByAppendingPathComponent:defaultRGBTxtLocation2]];
@@ -183,7 +166,29 @@
break;
}
}
- }
+ [RGBColorValues addEntriesFromDictionary:@{
+ @"black": [NSColor colorWithHTMLString:@"#000"],
+ @"silver": [NSColor colorWithHTMLString:@"#c0c0c0"],
+ @"gray": [NSColor colorWithHTMLString:@"#808080"],
+ @"grey": [NSColor colorWithHTMLString:@"#808080"],
+ @"white": [NSColor colorWithHTMLString:@"#fff"],
+ @"maroon": [NSColor colorWithHTMLString:@"#800000"],
+ @"red": [NSColor colorWithHTMLString:@"#f00"],
+ @"purple": [NSColor colorWithHTMLString:@"#800080"],
+ @"fuchsia": [NSColor colorWithHTMLString:@"#f0f"],
+ @"green": [NSColor colorWithHTMLString:@"#008000"],
+ @"lime": [NSColor colorWithHTMLString:@"#0f0"],
+ @"olive": [NSColor colorWithHTMLString:@"#808000"],
+ @"yellow": [NSColor colorWithHTMLString:@"#ff0"],
+ @"navy": [NSColor colorWithHTMLString:@"#000080"],
+ @"blue": [NSColor colorWithHTMLString:@"#00f"],
+ @"teal": [NSColor colorWithHTMLString:@"#008080"],
+ @"aqua": [NSColor colorWithHTMLString:@"#0ff"],
+ @"indigo": [NSColor colorWithHTMLString:@"#4b0082"],
+ @"crimson": [NSColor colorWithHTMLString:@"#dc143c"]
+ }];
+ });
+
return RGBColorValues;
}
@@ -534,7 +539,9 @@
NSDictionary *colorValues = [self colorNamesDictionary];
colorValue = [colorValues objectForKey:str];
if (!colorValue) colorValue = [colorValues objectForKey:[str lowercaseString]];
- if (!colorValue) {
+ if (colorValue) {
+ return colorValue;
+ } else {
#if COLOR_DEBUG
NSLog(@"+[NSColor(AIColorAdditions) colorWithHTMLString:] called with unrecognised color name (str is %@); returning %@", str, defaultColor);
#endif
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AICompletingTextField.m
--- a/Frameworks/AIUtilities Framework/Source/AICompletingTextField.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AICompletingTextField.m Tue May 28 00:52:55 2013 +0200
@@ -220,10 +220,9 @@
[possibleCompletions release];
+ //When the AICompletingTextfield is modified to be able to provide multiple choices of completions, the entire array can be used later.
if ([sortedArray count] > 0){
return [sortedArray objectAtIndex:0];
- //When the AICompletingTextfield is modified to be able to provide multiple choices of completions, the entire array can be used later.
- //return sortedArray;
}
return nil;
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AIDateFormatterAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIDateFormatterAdditions.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AIDateFormatterAdditions.m Tue May 28 00:52:55 2013 +0200
@@ -609,8 +609,6 @@
[newFormat appendString:@"%%"];
[scanner setScanLocation:[scanner scanLocation] - [span length] + 1];
- } else {
- //NSLog(@"Unhandled format %@", span);
}
}
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AIImageViewWithImagePicker.m
--- a/Frameworks/AIUtilities Framework/Source/AIImageViewWithImagePicker.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AIImageViewWithImagePicker.m Tue May 28 00:52:55 2013 +0200
@@ -263,7 +263,7 @@
//Draw our original image as 50% transparent
[dragImage lockFocus];
- [[self image] dissolveToPoint:NSZeroPoint fraction:0.5f];
+ [[self image] drawAtPoint:NSZeroPoint fromRect:NSMakeRect(0, 0, self.image.size.width, self.image.size.height) operation:NSCompositeCopy fraction:0.5f];
[dragImage unlockFocus];
//We want the image to resize
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AISmoothTooltipTracker.m
--- a/Frameworks/AIUtilities Framework/Source/AISmoothTooltipTracker.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AISmoothTooltipTracker.m Tue May 28 00:52:55 2013 +0200
@@ -276,12 +276,8 @@
#if LOG_TRACKING_INFO
NSLog(@"%@: Visible: %i ; Point %@ in %@ = %i", self,
[[view window] isVisible],
-/* NSStringFromPoint([[view superview] convertPoint:[[view window] convertScreenToBase:mouseLocation] fromView:[[view window] contentView]]),*/
NSStringFromPoint([[view window] convertScreenToBase:mouseLocation]),
-/* NSStringFromRect([view frame]),*/
NSStringFromRect([[[view window] contentView] convertRect:[view frame] fromView:[view superview]]),
-/* NSPointInRect([[view window] convertScreenToBase:mouseLocation], [view frame])*/
- /*NSPointInRect([[view superview] convertPoint:[[view window] convertScreenToBase:mouseLocation] fromView:[[view window] contentView]],[view frame])*/
NSPointInRect([[view window] convertScreenToBase:mouseLocation],[[[view window] contentView] convertRect:[view frame] fromView:[view superview]]));
#endif
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AIStringAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m Tue May 28 00:52:55 2013 +0200
@@ -283,82 +283,6 @@
return [string autorelease];
}
-//- (NSString *)stringByEncodingURLEscapes
-//{
-// NSScanner *s = [NSScanner scannerWithString:self];
-// NSCharacterSet *notUrlCode = [[NSCharacterSet characterSetWithCharactersInString:
-// @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),;/?:@=&"] invertedSet];
-// NSMutableString *encodedString = [[NSMutableString alloc] initWithString:@""];
-// NSString *read;
-//
-// while (![s isAtEnd])
-// {
-// [s scanUpToCharactersFromSet:notUrlCode intoString:&read];
-// if (read)
-// [encodedString appendString:read];
-// if (![s isAtEnd])
-// {
-// [encodedString appendFormat:@"%%%x", [self characterAtIndex:[s scanLocation]]];
-// [s setScanLocation:[s scanLocation]+1];
-// }
-// }
-//
-// return [encodedString autorelease];
-//}
-//
-//- (NSString *)stringByDecodingURLEscapes
-//{
-// NSScanner *s = [NSScanner scannerWithString:self];
-// NSMutableString *decodedString = [[NSMutableString alloc] initWithString:@""];
-// NSString *read;
-//
-// while (![s isAtEnd])
-// {
-// [s scanUpToString:@"%" intoString:&read];
-// if (read)
-// [decodedString appendString:read];
-// if (![s isAtEnd])
-// {
-// [decodedString appendString:[NSString stringWithFormat:@"%c",
-// [[NSString stringWithFormat:@"%li",
-// strtol([[self substringWithRange:NSMakeRange([s scanLocation]+1, 2)] cString],
-// NULL, 16)]
-// intValue]]];
-//
-// [s setScanLocation:[s scanLocation]+3];
-//
-// }
-// }
-// return [decodedString autorelease];
-//
-//}
-//
-//- (BOOL)isURLEncoded
-//{
-// NSCharacterSet *notUrlCode = [[NSCharacterSet characterSetWithCharactersInString:
-// @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),;/?:@=&"] invertedSet];
-// NSCharacterSet *notHexSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCEFabcdef"]
-// invertedSet];
-// NSScanner *s = [NSScanner scannerWithString:self];
-//
-// if ([self rangeOfCharacterFromSet:notUrlCode].location != NSNotFound)
-// return NO;
-//
-// while (![s isAtEnd])
-// {
-// [s scanUpToString:@"%" intoString:nil];
-//
-// if ([[self substringWithRange:NSMakeRange([s scanLocation]+1, 2)] rangeOfCharacterFromSet:notHexSet].location != NSNotFound)
-// return NO;
-// }
-//
-// return YES;
-//}
-
-
-
-
-
//stringByEncodingURLEscapes
// Percent escape all characters except for a-z, A-Z, 0-9, '_', and '-'
// Convert spaces to '+'
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/AIUtilities Framework/Source/AITextViewWithPlaceholder.m
--- a/Frameworks/AIUtilities Framework/Source/AITextViewWithPlaceholder.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/AIUtilities Framework/Source/AITextViewWithPlaceholder.m Tue May 28 00:52:55 2013 +0200
@@ -24,9 +24,6 @@
- (void)setPlaceholderString:(NSString *)inPlaceholderString
{
- // NSDictionary *attributes;
-
-// attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor grayColor], NSForegroundColorAttributeName, nil];
[self setPlaceholder:[[[NSAttributedString alloc] initWithString:inPlaceholderString
attributes:nil] autorelease]];
}
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIAbstractListController.m
--- a/Frameworks/Adium Framework/Source/AIAbstractListController.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIAbstractListController.m Tue May 28 00:52:55 2013 +0200
@@ -610,11 +610,20 @@
id<AIContainingObject> listObject = (id<AIContainingObject>)(item.listObject);
proxyListObject = [AIProxyListObject proxyListObjectForListObject:[listObject visibleObjectAtIndex:idx]
inListObject:listObject];
-
- } else if (hideRoot)
- proxyListObject = [AIProxyListObject proxyListObjectForListObject:[contactList visibleObjectAtIndex:idx]
- inListObject:contactList];
- else
+
+ } else if (hideRoot) {
+ if ([contactList isKindOfClass:[AIGroupChat class]]) {
+ NSString *nick = [(AIGroupChat *)contactList visibleObjectAtIndex:idx];
+ AIListObject *listObject = [(AIGroupChat *)contactList contactForNick:nick];
+
+ proxyListObject = [AIProxyListObject proxyListObjectForListObject:listObject
+ inListObject:contactList
+ withNick:nick];
+ } else {
+ proxyListObject = [AIProxyListObject proxyListObjectForListObject:[contactList visibleObjectAtIndex:idx]
+ inListObject:contactList];
+ }
+ } else
proxyListObject = [AIProxyListObject proxyListObjectForListObject:contactList
inListObject:nil];
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIAccount.m
--- a/Frameworks/Adium Framework/Source/AIAccount.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIAccount.m Tue May 28 00:52:55 2013 +0200
@@ -1183,7 +1183,6 @@
}
AIChat *newChat = [adium.chatController chatWithContact:contact];
- // NSLog(@"Making new chat %@ in chat window %@:%@",newChat,chatWindowController,[chatWindowController containerID]);
[adium.interfaceController openChat:newChat inContainerWithID:[chatWindowController containerID] atIndex:index];
return newChat;
} else {
@@ -1204,7 +1203,6 @@
[newParticipants addObject:[[participants objectAtIndex:i] objectsByEvaluatingSpecifier]];
}
- //AIChat *newChat = [adium.chatController chatWithName:name identifier:nil onAccount:self chatCreationInfo:nil];
DCJoinChatViewController *chatController = [DCJoinChatViewController joinChatView];
[chatController doJoinChatWithName:name onAccount:self chatCreationInfo:nil invitingContacts:newParticipants withInvitationMessage:@"Hey, wanna join my chat?"];
return [adium.chatController existingChatWithName:name onAccount:self];
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIAddressBookUserIconSource.m
--- a/Frameworks/Adium Framework/Source/AIAddressBookUserIconSource.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIAddressBookUserIconSource.m Tue May 28 00:52:55 2013 +0200
@@ -137,7 +137,6 @@
if (useABImages) {
NSNumber *tagNumber;
NSImage *image;
- // AIListContact *parentContact;
NSString *uniqueID;
id setOrObject;
@@ -164,7 +163,7 @@
asynchronously:YES
forObject:listObject];
- } else /*if ([setOrObject isKindOfClass:[NSSet class]])*/{
+ } else {
//Apply the image to each listObject at the appropriate priority
for (AIListObject *listObject in [[(NSSet *)setOrObject copy] autorelease]) {
[AIUserIcons userIconSource:self
@@ -224,7 +223,7 @@
[trackingDict setObject:objectSet forKey:tagNumber];
}
- } else /*if ([previousValue isKindOfClass:[NSMutableSet class]])*/{
+ } else {
//Add the new object to the previously-created set
[(NSMutableSet *)previousValue addObject:inObject];
}
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIChat.m
--- a/Frameworks/Adium Framework/Source/AIChat.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIChat.m Tue May 28 00:52:55 2013 +0200
@@ -641,6 +641,7 @@
AIContentMessage *messageContent;
messageContent = [AIContentMessage messageInChat:self
withSource:self.account
+ sourceNick:nil
destination:self.listObject
date:nil
message:attributedMessage
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentMessage.h
--- a/Frameworks/Adium Framework/Source/AIContentMessage.h Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentMessage.h Tue May 28 00:52:55 2013 +0200
@@ -45,7 +45,15 @@
withSource:(id)inSource
destination:(id)inDest
date:(NSDate *)inDate
- message:(NSAttributedString *)inMessage
+ message:(NSAttributedString *)inMessage
+ autoreply:(BOOL)inAutoReply;
+
++ (id)messageInChat:(AIChat *)inChat
+ withSource:(id)inSource
+ sourceNick:(NSString *)inSourceNick
+ destination:(id)inDest
+ date:(NSDate *)inDate
+ message:(NSAttributedString *)inMessage
autoreply:(BOOL)inAutoreply;
/*! @brief Create an AIContentMessage.
@@ -56,6 +64,7 @@
*/
- (id)initWithChat:(AIChat *)inChat
source:(id)inSource
+ sourceNick:(NSString *)inSourceNick
destination:(id)inDest
date:(NSDate *)inDate
message:(NSAttributedString *)inMessage
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentMessage.m
--- a/Frameworks/Adium Framework/Source/AIContentMessage.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentMessage.m Tue May 28 00:52:55 2013 +0200
@@ -23,7 +23,6 @@
@implementation AIContentMessage
-//Create a content message
+ (id)messageInChat:(AIChat *)inChat
withSource:(id)inSource
destination:(id)inDest
@@ -31,8 +30,27 @@
message:(NSAttributedString *)inMessage
autoreply:(BOOL)inAutoReply
{
+ return [[[self alloc] initWithChat:inChat
+ source:inSource
+ sourceNick:nil
+ destination:inDest
+ date:inDate
+ message:inMessage
+ autoreply:inAutoReply] autorelease];
+}
+
+//Create a content message
++ (id)messageInChat:(AIChat *)inChat
+ withSource:(id)inSource
+ sourceNick:(NSString *)inSourceNick
+ destination:(id)inDest
+ date:(NSDate *)inDate
+ message:(NSAttributedString *)inMessage
+ autoreply:(BOOL)inAutoReply
+{
return [[[self alloc] initWithChat:inChat
source:inSource
+ sourceNick:inSourceNick
destination:inDest
date:inDate
message:inMessage
@@ -48,12 +66,13 @@
//Init
- (id)initWithChat:(AIChat *)inChat
source:(id)inSource
+ sourceNick:(NSString *)inSourceNick
destination:(id)inDest
date:(NSDate *)inDate
message:(NSAttributedString *)inMessage
autoreply:(BOOL)inAutoReply
{
- if ((self = [super initWithChat:inChat source:inSource destination:inDest date:inDate message:inMessage])) {
+ if ((self = [super initWithChat:inChat source:inSource sourceNick:inSourceNick destination:inDest date:inDate message:inMessage])) {
isAutoreply = inAutoReply;
encodedMessage = nil;
encodedMessageAccountData = nil;
@@ -78,7 +97,7 @@
[classes addObject:@"message"];
if(isAutoreply) [classes addObject:@"autoreply"];
if(self.chat.isGroupChat) {
- AIGroupChatFlags flags = [(AIGroupChat *)self.chat flagsForContact:(AIListContact *)self.source];
+ AIGroupChatFlags flags = [(AIGroupChat *)self.chat flagsForNick:self.sourceNick];
if (flags & AIGroupChatOp)
[classes addObject:@"op"];
if (flags & AIGroupChatHalfOp)
@@ -95,7 +114,7 @@
{
if (!self.chat.isGroupChat) return @"";
- AIGroupChatFlags flags = [(AIGroupChat *)self.chat flagsForContact:(AIListContact *)self.source];
+ AIGroupChatFlags flags = [(AIGroupChat *)self.chat flagsForNick:self.sourceNick];
if ((flags & AIGroupChatFounder) == AIGroupChatFounder) {
return @"~";
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentObject.h
--- a/Frameworks/Adium Framework/Source/AIContentObject.h Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentObject.h Tue May 28 00:52:55 2013 +0200
@@ -38,6 +38,7 @@
AIChat *chat;
AIListObject *source;
AIListObject *destination;
+ NSString *sourceNick;
BOOL outgoing;
NSAttributedString *message;
@@ -86,6 +87,13 @@
date:(NSDate*)inDate
message:(NSAttributedString *)inMessage;
+- (id)initWithChat:(AIChat *)inChat
+ source:(AIListObject *)inSource
+ sourceNick:(NSString *)inSourceNick
+ destination:(AIListObject *)inDest
+ date:(NSDate*)inDate
+ message:(NSAttributedString *)inMessage;
+
/*! @brief The type of content.
*
* @par There is at least one type defined for every concrete subclass of \c AIContentObject.
@@ -254,4 +262,6 @@
*/
@property (nonatomic) BOOL postProcessContent;
+ at property (nonatomic, retain) NSString *sourceNick;
+
@end
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentObject.m
--- a/Frameworks/Adium Framework/Source/AIContentObject.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentObject.m Tue May 28 00:52:55 2013 +0200
@@ -24,7 +24,7 @@
@implementation AIContentObject
@synthesize source, destination, date, isOutgoing = outgoing, chat, message, userInfo;
- at synthesize filterContent, trackContent, displayContent, displayContentImmediately, sendContent, postProcessContent;
+ at synthesize filterContent, trackContent, displayContent, displayContentImmediately, sendContent, postProcessContent, sourceNick;
- (id)initWithChat:(AIChat *)inChat
source:(AIListObject *)inSource
@@ -33,12 +33,23 @@
{
return [self initWithChat:inChat source:inSource destination:inDest date:inDate message:nil];
}
+
- (id)initWithChat:(AIChat *)inChat
source:(AIListObject *)inSource
destination:(AIListObject *)inDest
date:(NSDate*)inDate
message:(NSAttributedString *)inMessage
{
+ return [self initWithChat:inChat source:inSource sourceNick:nil destination:inDest date:inDate message:inMessage];
+}
+
+- (id)initWithChat:(AIChat *)inChat
+ source:(AIListObject *)inSource
+ sourceNick:(NSString *)inSourceNick
+ destination:(AIListObject *)inDest
+ date:(NSDate*)inDate
+ message:(NSAttributedString *)inMessage
+{
if ((self = [super init]))
{
//Default Behavior
@@ -51,6 +62,7 @@
//Store source, dest, chat, ...
source = [inSource retain];
+ sourceNick = [inSourceNick retain];
destination = [inDest retain];
message = [inMessage retain];
date = [(inDate ? inDate : [NSDate date]) retain];
@@ -66,6 +78,7 @@
- (void)dealloc
{
[source release]; source = nil;
+ [sourceNick release]; sourceNick = nil;
[destination release]; destination = nil;
[date release]; date = nil;
[message release]; message = nil;
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentTopic.h
--- a/Frameworks/Adium Framework/Source/AIContentTopic.h Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentTopic.h Tue May 28 00:52:55 2013 +0200
@@ -27,8 +27,9 @@
+ (id)topicInChat:(AIChat *)inChat
withSource:(id)inSource
+ sourceNick:(NSString *)inSourceNick
destination:(id)inDest
- date:(NSDate *)inDate
+ date:(NSDate *)inDate
message:(NSAttributedString *)inMessage;
@property (nonatomic) BOOL actuallyBlank;
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIContentTopic.m
--- a/Frameworks/Adium Framework/Source/AIContentTopic.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentTopic.m Tue May 28 00:52:55 2013 +0200
@@ -20,12 +20,14 @@
@implementation AIContentTopic
+ (id)topicInChat:(AIChat *)inChat
withSource:(id)inSource
+ sourceNick:(NSString *)inSourceNick
destination:(id)inDest
date:(NSDate *)inDate
message:(NSAttributedString *)inMessage
{
return [super messageInChat:inChat
withSource:inSource
+ sourceNick:inSourceNick
destination:inDest
date:inDate
message:inMessage
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIEditStateWindowController.m
--- a/Frameworks/Adium Framework/Source/AIEditStateWindowController.m Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIEditStateWindowController.m Tue May 28 00:52:55 2013 +0200
@@ -178,8 +178,6 @@
*/
- (void)windowDidLoad
{
-// NSNumberFormatter *intFormatter;
-
[scrollView_statusMessage setAutohidesScrollers:YES];
[scrollView_statusMessage setAlwaysDrawFocusRingIfFocused:YES];
[textView_statusMessage setTarget:self action:@selector(okay:)];
diff -r 88cdaeb864d1 -r 0fbb04961745 Frameworks/Adium Framework/Source/AIGroupChat.h
--- a/Frameworks/Adium Framework/Source/AIGroupChat.h Tue May 28 00:24:27 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIGroupChat.h Tue May 28 00:52:55 2013 +0200
@@ -18,11 +18,11 @@
@interface AIGroupChat : AIChat <AIContainingObject> {
NSString *topic;
- AIListContact *topicSetter;
+ NSString *topicSetter;
- NSMutableDictionary *participatingContactsFlags;
- NSMutableDictionary *participatingContactsAliases;
- NSMutableArray *participatingContacts;
+ NSMutableDictionary *participatingNicksFlags;
+ NSMutableDictionary *participatingNicksContacts;
+ NSMutableArray *participatingNicks;
BOOL showJoinLeave;
BOOL expanded;
@@ -34,26 +34,31 @@
@property (readonly, nonatomic) BOOL supportsTopic;
-- (void)updateTopic:(NSString *)inTopic withSource:(AIListContact *)contact;
+- (void)updateTopic:(NSString *)inTopic withSource:(NSString *)contact;
- (void)setTopic:(NSString *)inTopic;
@property (readwrite, copy, nonatomic) NSDate *lastMessageDate;
// Group chat participants.
-- (NSString *)displayNameForContact:(AIListObject *)contact;
-- (AIGroupChatFlags)flagsForContact:(AIListObject *)contact;
-- (NSString *)aliasForContact:(AIListObject *)contact;
-- (void)setFlags:(AIGroupChatFlags)flags forContact:(AIListObject *)contact;
-- (void)setAlias:(NSString *)alias forContact:(AIListObject *)contact;
-- (void)removeSavedValuesForContactUID:(NSString *)contactUID;
+- (AIListContact *)contactForNick:(NSString *)nick;
+- (AIGroupChatFlags)flagsForNick:(NSString *)nick;
+- (void)setFlags:(AIGroupChatFlags)flags forNick:(NSString *)nick;
+- (void)setContact:(AIListContact *)contact forNick:(NSString *)nick;
+- (void)changeNick:(NSString *)from to:(NSString *)to;
+- (void)removeSavedValuesForNick:(NSString *)nick;
+- (NSArray *)nicksForContact:(AIListObject *)contact;
-- (void)addParticipatingListObject:(AIListContact *)inObject notify:(BOOL)notify;
-- (void)addParticipatingListObjects:(NSArray *)inObjects notify:(BOOL)notify;
+- (void)addParticipatingNick:(NSString *)inObject notify:(BOOL)notify;
More information about the commits
mailing list