Camino only - Bug 549179: Switch to using a custom spotlight importer for bookmarks. r/sr=pink
git-svn-id: svn://10.0.0.236/trunk@260047 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -92,6 +92,13 @@
|
||||
00BBBF1F0D6A149900C2D916 /* FindBarTextured.nib in Resources */ = {isa = PBXBuildFile; fileRef = 00BBBF1C0D6A149800C2D916 /* FindBarTextured.nib */; };
|
||||
00BBBFE70D70A6E400C2D916 /* tab_loading.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 00BBBFE60D70A6E400C2D916 /* tab_loading.tiff */; };
|
||||
00BBBFE80D70A6E400C2D916 /* tab_loading.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 00BBBFE60D70A6E400C2D916 /* tab_loading.tiff */; };
|
||||
00BC68A6114B5F99000A0508 /* GetMetadataForFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 00BC68A2114B5F99000A0508 /* GetMetadataForFile.m */; };
|
||||
00BC68A8114B5F99000A0508 /* Importer-main.c in Sources */ = {isa = PBXBuildFile; fileRef = 00BC68A4114B5F99000A0508 /* Importer-main.c */; };
|
||||
00BC68A9114B5F99000A0508 /* schema.xml in Resources */ = {isa = PBXBuildFile; fileRef = 00BC68A5114B5F99000A0508 /* schema.xml */; };
|
||||
00BC6955114B6009000A0508 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
|
||||
00BC696F114B68D1000A0508 /* CaminoImporter.mdimporter in Copy Spotlight Importer */ = {isa = PBXBuildFile; fileRef = 00BC6874114B5EA3000A0508 /* CaminoImporter.mdimporter */; };
|
||||
00BC6971114B68E0000A0508 /* CaminoImporter.mdimporter in Copy Spotlight Importer */ = {isa = PBXBuildFile; fileRef = 00BC6874114B5EA3000A0508 /* CaminoImporter.mdimporter */; };
|
||||
00BC6D6D114B6FA4000A0508 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00BC6CD8114B6F9C000A0508 /* CoreServices.framework */; };
|
||||
00C6890710560B110082D80F /* BreakpadWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C6890610560B110082D80F /* BreakpadWrapper.m */; };
|
||||
00C6890810560B110082D80F /* BreakpadWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C6890610560B110082D80F /* BreakpadWrapper.m */; };
|
||||
00F79F591075B622006688AC /* OperaBookmarkConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 00F79F581075B622006688AC /* OperaBookmarkConverter.m */; };
|
||||
@@ -1265,6 +1272,132 @@
|
||||
remoteGlobalIDString = 612279D90DB5470200AB99EA;
|
||||
remoteInfo = "Sparkle Unit Tests";
|
||||
};
|
||||
00BC6964114B67E7000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 00BC6873114B5EA3000A0508;
|
||||
remoteInfo = SpotlightImporter;
|
||||
};
|
||||
00BC6966114B67F0000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 00BC6873114B5EA3000A0508;
|
||||
remoteInfo = SpotlightImporter;
|
||||
};
|
||||
00BC6C7A114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 8D202CF80486D31800D8A456;
|
||||
remoteInfo = Growl;
|
||||
};
|
||||
00BC6C7C114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = CB61E5180637763C00E0DDC7;
|
||||
remoteInfo = GrowlHelperApp;
|
||||
};
|
||||
00BC6C7E114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 95075AB00817F5DB00D862A5;
|
||||
remoteInfo = GrowlMenu;
|
||||
};
|
||||
00BC6C80114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34F60EAB078E1CD500CECA86;
|
||||
remoteInfo = Growl.framework;
|
||||
};
|
||||
00BC6C82114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34725B0F0C0678A000499F50;
|
||||
remoteInfo = Growl.dylib;
|
||||
};
|
||||
00BC6C84114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34F60EF9078E226300CECA86;
|
||||
remoteInfo = "Growl-WithInstaller.framework";
|
||||
};
|
||||
00BC6C86114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B10767C87B006EA5CB;
|
||||
remoteInfo = Speech;
|
||||
};
|
||||
00BC6C88114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 95FC347907E0458E00BD8674;
|
||||
remoteInfo = Brushed;
|
||||
};
|
||||
00BC6C8A114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508AE0767C87B006EA5CB;
|
||||
remoteInfo = Bubbles;
|
||||
};
|
||||
00BC6C8C114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = E14410EF0A94072E0063C4DC;
|
||||
remoteInfo = iCal;
|
||||
};
|
||||
00BC6C8E114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B40767C87B006EA5CB;
|
||||
remoteInfo = Bezel;
|
||||
};
|
||||
00BC6C90114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508AF0767C87B006EA5CB;
|
||||
remoteInfo = Smoke;
|
||||
};
|
||||
00BC6C92114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 93BC379E095A662B0002B365;
|
||||
remoteInfo = Nano;
|
||||
};
|
||||
00BC6C94114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B00767C87B006EA5CB;
|
||||
remoteInfo = MailMe;
|
||||
};
|
||||
00BC6C96114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B30767C87B006EA5CB;
|
||||
remoteInfo = MusicVideo;
|
||||
};
|
||||
00BC6C98114B6F45000A0508 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = DD4939CC084BACA700D1CCCB;
|
||||
remoteInfo = SMS;
|
||||
};
|
||||
33820DA50F8AA24500D2164A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 33820D980F8AA24500D2164A /* Breakpad.xcodeproj */;
|
||||
@@ -1503,132 +1636,6 @@
|
||||
remoteGlobalIDString = 3F44AE0905BDFBA000CB4B08;
|
||||
remoteInfo = CaminoStaticApp;
|
||||
};
|
||||
DEFAA2A60F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 8D202CF80486D31800D8A456;
|
||||
remoteInfo = Growl;
|
||||
};
|
||||
DEFAA2A80F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = CB61E5180637763C00E0DDC7;
|
||||
remoteInfo = GrowlHelperApp;
|
||||
};
|
||||
DEFAA2AA0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 95075AB00817F5DB00D862A5;
|
||||
remoteInfo = GrowlMenu;
|
||||
};
|
||||
DEFAA2AC0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34F60EAB078E1CD500CECA86;
|
||||
remoteInfo = Growl.framework;
|
||||
};
|
||||
DEFAA2AE0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34725B0F0C0678A000499F50;
|
||||
remoteInfo = Growl.dylib;
|
||||
};
|
||||
DEFAA2B00F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 34F60EF9078E226300CECA86;
|
||||
remoteInfo = "Growl-WithInstaller.framework";
|
||||
};
|
||||
DEFAA2B20F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B10767C87B006EA5CB;
|
||||
remoteInfo = Speech;
|
||||
};
|
||||
DEFAA2B40F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 95FC347907E0458E00BD8674;
|
||||
remoteInfo = Brushed;
|
||||
};
|
||||
DEFAA2B60F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508AE0767C87B006EA5CB;
|
||||
remoteInfo = Bubbles;
|
||||
};
|
||||
DEFAA2B80F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = E14410EF0A94072E0063C4DC;
|
||||
remoteInfo = iCal;
|
||||
};
|
||||
DEFAA2BA0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B40767C87B006EA5CB;
|
||||
remoteInfo = Bezel;
|
||||
};
|
||||
DEFAA2BC0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508AF0767C87B006EA5CB;
|
||||
remoteInfo = Smoke;
|
||||
};
|
||||
DEFAA2BE0F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 93BC379E095A662B0002B365;
|
||||
remoteInfo = Nano;
|
||||
};
|
||||
DEFAA2C00F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B00767C87B006EA5CB;
|
||||
remoteInfo = MailMe;
|
||||
};
|
||||
DEFAA2C20F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0AB508B30767C87B006EA5CB;
|
||||
remoteInfo = MusicVideo;
|
||||
};
|
||||
DEFAA2C40F24192200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = DD4939CC084BACA700D1CCCB;
|
||||
remoteInfo = SMS;
|
||||
};
|
||||
DEFAA2C70F24196B00BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 34F60EAA078E1CD500CECA86;
|
||||
remoteInfo = Growl.framework;
|
||||
};
|
||||
DEFAA2CA0F241A0200BD51C1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 34F60EAA078E1CD500CECA86;
|
||||
remoteInfo = Growl.framework;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
@@ -1676,6 +1683,28 @@
|
||||
name = "Copy Profile Defaults";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
00BC696B114B6839000A0508 /* Copy Spotlight Importer */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = Contents/Library/Spotlight;
|
||||
dstSubfolderSpec = 1;
|
||||
files = (
|
||||
00BC696F114B68D1000A0508 /* CaminoImporter.mdimporter in Copy Spotlight Importer */,
|
||||
);
|
||||
name = "Copy Spotlight Importer";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
00BC696D114B6899000A0508 /* Copy Spotlight Importer */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = Contents/Library/Spotlight;
|
||||
dstSubfolderSpec = 1;
|
||||
files = (
|
||||
00BC6971114B68E0000A0508 /* CaminoImporter.mdimporter in Copy Spotlight Importer */,
|
||||
);
|
||||
name = "Copy Spotlight Importer";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
0E6A98A6097E00CD007962C1 /* Copy Gecko Fonts */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -2519,6 +2548,13 @@
|
||||
00BBBC840D66C13400C2D916 /* CHGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CHGradient.m; path = src/extensions/CHGradient.m; sourceTree = "<group>"; };
|
||||
00BBBF1D0D6A149800C2D916 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = resources/localized/English.lproj/FindBarTextured.nib; sourceTree = "<group>"; };
|
||||
00BBBFE60D70A6E400C2D916 /* tab_loading.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = tab_loading.tiff; path = chrome/tab_loading.tiff; sourceTree = "<group>"; };
|
||||
00BC6874114B5EA3000A0508 /* CaminoImporter.mdimporter */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaminoImporter.mdimporter; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
00BC68A2114B5F99000A0508 /* GetMetadataForFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GetMetadataForFile.m; path = "src/spotlight-importer/GetMetadataForFile.m"; sourceTree = "<group>"; };
|
||||
00BC68A3114B5F99000A0508 /* Info-Importer.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Importer.plist"; sourceTree = "<group>"; };
|
||||
00BC68A4114B5F99000A0508 /* Importer-main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "Importer-main.c"; path = "src/spotlight-importer/Importer-main.c"; sourceTree = "<group>"; };
|
||||
00BC68A5114B5F99000A0508 /* schema.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = schema.xml; path = "resources/spotlight-importer/schema.xml"; sourceTree = "<group>"; };
|
||||
00BC6981114B6E77000A0508 /* SpotlightFileKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpotlightFileKeys.h; path = "src/spotlight-importer/SpotlightFileKeys.h"; sourceTree = "<group>"; };
|
||||
00BC6CD8114B6F9C000A0508 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
|
||||
00C6890510560B110082D80F /* BreakpadWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BreakpadWrapper.h; path = src/application/BreakpadWrapper.h; sourceTree = SOURCE_ROOT; };
|
||||
00C6890610560B110082D80F /* BreakpadWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BreakpadWrapper.m; path = src/application/BreakpadWrapper.m; sourceTree = SOURCE_ROOT; };
|
||||
00F79F571075B622006688AC /* OperaBookmarkConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OperaBookmarkConverter.h; path = src/bookmarks/OperaBookmarkConverter.h; sourceTree = "<group>"; };
|
||||
@@ -2972,7 +3008,7 @@
|
||||
DEE8101D0EFB7D2E006ACC7D /* aquaSelect.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = aquaSelect.css; path = resources/application/aquaSelect.css; sourceTree = SOURCE_ROOT; };
|
||||
DEE9EBA30AF5C379002BC511 /* SessionManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SessionManager.h; path = src/application/SessionManager.h; sourceTree = "<group>"; };
|
||||
DEE9EBA60AF5C390002BC511 /* SessionManager.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = SessionManager.mm; path = src/application/SessionManager.mm; sourceTree = SOURCE_ROOT; };
|
||||
DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Growl.xcodeproj; path = growl/Growl.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||
DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Growl.xcodeproj; path = growl/Growl.xcodeproj; sourceTree = "<group>"; };
|
||||
DEFAA3430F241C1600BD51C1 /* Growl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; name = Growl.framework; path = growl/build/Release/Growl.framework; sourceTree = "<group>"; };
|
||||
DEFD234F0D021C3A006899B9 /* dom_loadsave.xpt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = file; name = dom_loadsave.xpt; path = ../dist/bin/components/dom_loadsave.xpt; sourceTree = SOURCE_ROOT; };
|
||||
DEFD23520D021C48006899B9 /* dom_storage.xpt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = file; name = dom_storage.xpt; path = ../dist/bin/components/dom_storage.xpt; sourceTree = SOURCE_ROOT; };
|
||||
@@ -3329,6 +3365,15 @@
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
00BC6872114B5EA3000A0508 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
00BC6955114B6009000A0508 /* Foundation.framework in Frameworks */,
|
||||
00BC6D6D114B6FA4000A0508 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
035A4973079DC83D0084B05F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -3516,6 +3561,50 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
00BC68A0114B5F55000A0508 /* Spotlight Importer */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
00BC68A2114B5F99000A0508 /* GetMetadataForFile.m */,
|
||||
00BC68A4114B5F99000A0508 /* Importer-main.c */,
|
||||
00BC6981114B6E77000A0508 /* SpotlightFileKeys.h */,
|
||||
00BC68A5114B5F99000A0508 /* schema.xml */,
|
||||
);
|
||||
name = "Spotlight Importer";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
00BC6C66114B6F45000A0508 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
00BC6C7B114B6F45000A0508 /* Growl.prefPane */,
|
||||
00BC6C7D114B6F45000A0508 /* GrowlHelperApp.app */,
|
||||
00BC6C7F114B6F45000A0508 /* GrowlMenu.app */,
|
||||
00BC6C81114B6F45000A0508 /* Growl.framework */,
|
||||
00BC6C83114B6F45000A0508 /* Growl.dylib */,
|
||||
00BC6C85114B6F45000A0508 /* Growl-WithInstaller.framework */,
|
||||
00BC6C87114B6F45000A0508 /* Speech.growlView */,
|
||||
00BC6C89114B6F45000A0508 /* Brushed.growlView */,
|
||||
00BC6C8B114B6F45000A0508 /* Bubbles.growlView */,
|
||||
00BC6C8D114B6F45000A0508 /* iCal.growlView */,
|
||||
00BC6C8F114B6F45000A0508 /* Bezel.growlView */,
|
||||
00BC6C91114B6F45000A0508 /* Smoke.growlView */,
|
||||
00BC6C93114B6F45000A0508 /* Nano.growlView */,
|
||||
00BC6C95114B6F45000A0508 /* MailMe.growlView */,
|
||||
00BC6C97114B6F45000A0508 /* MusicVideo.growlView */,
|
||||
00BC6C99114B6F45000A0508 /* SMS.growlView */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
00BC6CB7114B6F73000A0508 /* External Projects */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7B64B7BA0CCFD9F50098406C /* Sparkle.xcodeproj */,
|
||||
DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */,
|
||||
33820D980F8AA24500D2164A /* Breakpad.xcodeproj */,
|
||||
);
|
||||
name = "External Projects";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
032FFDCC077351A800440548 /* Downloads */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -3742,37 +3831,6 @@
|
||||
name = Security;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
34884A35074F7C5D000EA76B /* AddressBook.framework */,
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||
F557193A022B4102010001CA /* PreferencePanes.framework */,
|
||||
F52D5CDB027D412A01A80166 /* Carbon.framework */,
|
||||
F52D5CDC027D412A01A80166 /* CoreFoundation.framework */,
|
||||
DEB968300B0D8E9F0023F8B1 /* Security.framework */,
|
||||
F52D5CDD027D412A01A80166 /* SystemConfiguration.framework */,
|
||||
F5FEDBCB02AD8DD101A967F3 /* QuickTime.framework */,
|
||||
3F558E950552122E006156FD /* IOKit.framework */,
|
||||
7B64B7BA0CCFD9F50098406C /* Sparkle.xcodeproj */,
|
||||
7BAEF7470CCFDE7D00384F4E /* Sparkle.framework */,
|
||||
DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */,
|
||||
DEFAA3430F241C1600BD51C1 /* Growl.framework */,
|
||||
33820D980F8AA24500D2164A /* Breakpad.xcodeproj */,
|
||||
33820DC00F8AA31B00D2164A /* Breakpad.framework */,
|
||||
);
|
||||
name = "Linked Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
|
||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -3786,6 +3844,7 @@
|
||||
03E2D8530771F73F00BD2443 /* Tabs.prefPane */,
|
||||
03C5AB1007722DFC00EAF77D /* Downloads.prefPane */,
|
||||
035A4975079DC83D0084B05F /* History.prefPane */,
|
||||
00BC6874114B5EA3000A0508 /* CaminoImporter.mdimporter */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@@ -3796,10 +3855,12 @@
|
||||
332377960C4D0FA200A34879 /* Xcode Configs */,
|
||||
080E96DDFE201D6D7F000001 /* Classes */,
|
||||
F53F21EB022B7C77010001CA /* PreferencePanes */,
|
||||
00BC68A0114B5F55000A0508 /* Spotlight Importer */,
|
||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||
F6BD637A01B30E0F01A962F7 /* Gecko */,
|
||||
F56610A40394767101A9666E /* Plugins */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
00BC6CB7114B6F73000A0508 /* External Projects */,
|
||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||
3FECC78F05D1F68E0068E7ED /* Target Plists */,
|
||||
);
|
||||
@@ -3845,8 +3906,21 @@
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
|
||||
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
|
||||
34884A35074F7C5D000EA76B /* AddressBook.framework */,
|
||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
|
||||
F52D5CDB027D412A01A80166 /* Carbon.framework */,
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||
F52D5CDC027D412A01A80166 /* CoreFoundation.framework */,
|
||||
00BC6CD8114B6F9C000A0508 /* CoreServices.framework */,
|
||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
|
||||
3F558E950552122E006156FD /* IOKit.framework */,
|
||||
F557193A022B4102010001CA /* PreferencePanes.framework */,
|
||||
F5FEDBCB02AD8DD101A967F3 /* QuickTime.framework */,
|
||||
DEB968300B0D8E9F0023F8B1 /* Security.framework */,
|
||||
F52D5CDD027D412A01A80166 /* SystemConfiguration.framework */,
|
||||
7BAEF7470CCFDE7D00384F4E /* Sparkle.framework */,
|
||||
DEFAA3430F241C1600BD51C1 /* Growl.framework */,
|
||||
33820DC00F8AA31B00D2164A /* Breakpad.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -4198,6 +4272,7 @@
|
||||
03E2D8540771F73F00BD2443 /* Info-TabsPrefPane.plist */,
|
||||
03C5AB1107722DFD00EAF77D /* Info-DownloadsPrefPane.plist */,
|
||||
035A4976079DC83E0084B05F /* Info-HistoryPrefPane.plist */,
|
||||
00BC68A3114B5F99000A0508 /* Info-Importer.plist */,
|
||||
);
|
||||
name = "Target Plists";
|
||||
sourceTree = "<group>";
|
||||
@@ -4341,29 +4416,6 @@
|
||||
name = "Crash Reporter InfoPlist.strings Override";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DEFAA2910F24192200BD51C1 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DEFAA2A70F24192200BD51C1 /* Growl.prefPane */,
|
||||
DEFAA2A90F24192200BD51C1 /* GrowlHelperApp.app */,
|
||||
DEFAA2AB0F24192200BD51C1 /* GrowlMenu.app */,
|
||||
DEFAA2AD0F24192200BD51C1 /* Growl.framework */,
|
||||
DEFAA2AF0F24192200BD51C1 /* Growl.dylib */,
|
||||
DEFAA2B10F24192200BD51C1 /* Growl-WithInstaller.framework */,
|
||||
DEFAA2B30F24192200BD51C1 /* Speech.growlView */,
|
||||
DEFAA2B50F24192200BD51C1 /* Brushed.growlView */,
|
||||
DEFAA2B70F24192200BD51C1 /* Bubbles.growlView */,
|
||||
DEFAA2B90F24192200BD51C1 /* iCal.growlView */,
|
||||
DEFAA2BB0F24192200BD51C1 /* Bezel.growlView */,
|
||||
DEFAA2BD0F24192200BD51C1 /* Smoke.growlView */,
|
||||
DEFAA2BF0F24192200BD51C1 /* Nano.growlView */,
|
||||
DEFAA2C10F24192200BD51C1 /* MailMe.growlView */,
|
||||
DEFAA2C30F24192200BD51C1 /* MusicVideo.growlView */,
|
||||
DEFAA2C50F24192200BD51C1 /* SMS.growlView */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E091C0D006225EA3007D9E8F /* cursors */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -5132,6 +5184,23 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
00BC6873114B5EA3000A0508 /* CaminoImporter */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 00BC6878114B5EA5000A0508 /* Build configuration list for PBXNativeTarget "CaminoImporter" */;
|
||||
buildPhases = (
|
||||
00BC6870114B5EA3000A0508 /* Resources */,
|
||||
00BC6871114B5EA3000A0508 /* Sources */,
|
||||
00BC6872114B5EA3000A0508 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = CaminoImporter;
|
||||
productName = SpotlightImporter;
|
||||
productReference = 00BC6874114B5EA3000A0508 /* CaminoImporter.mdimporter */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
035A4974079DC83D0084B05F /* HistoryPrefPane */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3323777F0C4D0F9600A34879 /* Build configuration list for PBXNativeTarget "HistoryPrefPane" */;
|
||||
@@ -5213,6 +5282,7 @@
|
||||
3365CA1F0D073ECA00ACBF18 /* Scrub Sparkle Languages */,
|
||||
3F44AD7A05BDFB9F00CB4B08 /* Copy Plugins */,
|
||||
4D5881750864B276001305B3 /* Copy Gecko Plugins */,
|
||||
00BC696B114B6839000A0508 /* Copy Spotlight Importer */,
|
||||
33820EA50F8AB1F400D2164A /* Force Copy Before Link */,
|
||||
3F44AD7C05BDFB9F00CB4B08 /* Frameworks */,
|
||||
334D108B0FAA4D7600545AFE /* Strip Framework Headers */,
|
||||
@@ -5220,8 +5290,8 @@
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
00BC6967114B67F0000A0508 /* PBXTargetDependency */,
|
||||
7B64B7D20CCFDA1A0098406C /* PBXTargetDependency */,
|
||||
DEFAA2C80F24196B00BD51C1 /* PBXTargetDependency */,
|
||||
33820DBC0F8AA26500D2164A /* PBXTargetDependency */,
|
||||
);
|
||||
name = CaminoApp;
|
||||
@@ -5352,6 +5422,7 @@
|
||||
3365CA0F0D07197E00ACBF18 /* Scrub Sparkle Languages */,
|
||||
3F44AF9205BDFBA000CB4B08 /* Copy Plugins */,
|
||||
4D5881790864B297001305B3 /* Copy Gecko Plugins */,
|
||||
00BC696D114B6899000A0508 /* Copy Spotlight Importer */,
|
||||
33A72CD40F8ADDE4003D3D78 /* Force Copy Before Link */,
|
||||
3F44AF9405BDFBA000CB4B08 /* Frameworks */,
|
||||
00118D860FA3C75D00EADCBC /* Strip Framework Headers */,
|
||||
@@ -5359,8 +5430,8 @@
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
00BC6965114B67E7000A0508 /* PBXTargetDependency */,
|
||||
7B64B7D60CCFDA210098406C /* PBXTargetDependency */,
|
||||
DEFAA2CB0F241A0200BD51C1 /* PBXTargetDependency */,
|
||||
33820DBE0F8AA27400D2164A /* PBXTargetDependency */,
|
||||
);
|
||||
name = CaminoStaticApp;
|
||||
@@ -5394,7 +5465,7 @@
|
||||
ProjectRef = 33820D980F8AA24500D2164A /* Breakpad.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = DEFAA2910F24192200BD51C1 /* Products */;
|
||||
ProductGroup = 00BC6C66114B6F45000A0508 /* Products */;
|
||||
ProjectRef = DEFAA2850F24192200BD51C1 /* Growl.xcodeproj */;
|
||||
},
|
||||
{
|
||||
@@ -5416,6 +5487,7 @@
|
||||
03E2D8520771F73F00BD2443 /* TabsPrefPane */,
|
||||
03C5AB0F07722DFC00EAF77D /* DownloadsPrefPane */,
|
||||
3F44ADF205BDFBA000CB4B08 /* WebFeaturesPrefPane */,
|
||||
00BC6873114B5EA3000A0508 /* CaminoImporter */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
@@ -5435,6 +5507,118 @@
|
||||
remoteRef = 0080C7C70E2E4CBE006AFD32 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C7B114B6F45000A0508 /* Growl.prefPane */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Growl.prefPane;
|
||||
remoteRef = 00BC6C7A114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C7D114B6F45000A0508 /* GrowlHelperApp.app */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.application;
|
||||
path = GrowlHelperApp.app;
|
||||
remoteRef = 00BC6C7C114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C7F114B6F45000A0508 /* GrowlMenu.app */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.application;
|
||||
path = GrowlMenu.app;
|
||||
remoteRef = 00BC6C7E114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C81114B6F45000A0508 /* Growl.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = Growl.framework;
|
||||
remoteRef = 00BC6C80114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C83114B6F45000A0508 /* Growl.dylib */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = "compiled.mach-o.dylib";
|
||||
path = Growl.dylib;
|
||||
remoteRef = 00BC6C82114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C85114B6F45000A0508 /* Growl-WithInstaller.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = "Growl-WithInstaller.framework";
|
||||
remoteRef = 00BC6C84114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C87114B6F45000A0508 /* Speech.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Speech.growlView;
|
||||
remoteRef = 00BC6C86114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C89114B6F45000A0508 /* Brushed.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Brushed.growlView;
|
||||
remoteRef = 00BC6C88114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C8B114B6F45000A0508 /* Bubbles.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Bubbles.growlView;
|
||||
remoteRef = 00BC6C8A114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C8D114B6F45000A0508 /* iCal.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = iCal.growlView;
|
||||
remoteRef = 00BC6C8C114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C8F114B6F45000A0508 /* Bezel.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Bezel.growlView;
|
||||
remoteRef = 00BC6C8E114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C91114B6F45000A0508 /* Smoke.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Smoke.growlView;
|
||||
remoteRef = 00BC6C90114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C93114B6F45000A0508 /* Nano.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Nano.growlView;
|
||||
remoteRef = 00BC6C92114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C95114B6F45000A0508 /* MailMe.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = MailMe.growlView;
|
||||
remoteRef = 00BC6C94114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C97114B6F45000A0508 /* MusicVideo.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = MusicVideo.growlView;
|
||||
remoteRef = 00BC6C96114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
00BC6C99114B6F45000A0508 /* SMS.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = SMS.growlView;
|
||||
remoteRef = 00BC6C98114B6F45000A0508 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
33820DA60F8AA24500D2164A /* Breakpad.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
@@ -5512,121 +5696,17 @@
|
||||
remoteRef = 7B64B7CB0CCFD9F50098406C /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2A70F24192200BD51C1 /* Growl.prefPane */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Growl.prefPane;
|
||||
remoteRef = DEFAA2A60F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2A90F24192200BD51C1 /* GrowlHelperApp.app */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.application;
|
||||
path = GrowlHelperApp.app;
|
||||
remoteRef = DEFAA2A80F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2AB0F24192200BD51C1 /* GrowlMenu.app */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.application;
|
||||
path = GrowlMenu.app;
|
||||
remoteRef = DEFAA2AA0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2AD0F24192200BD51C1 /* Growl.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = Growl.framework;
|
||||
remoteRef = DEFAA2AC0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2AF0F24192200BD51C1 /* Growl.dylib */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = "compiled.mach-o.dylib";
|
||||
path = Growl.dylib;
|
||||
remoteRef = DEFAA2AE0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2B10F24192200BD51C1 /* Growl-WithInstaller.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = "Growl-WithInstaller.framework";
|
||||
remoteRef = DEFAA2B00F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2B30F24192200BD51C1 /* Speech.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Speech.growlView;
|
||||
remoteRef = DEFAA2B20F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2B50F24192200BD51C1 /* Brushed.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Brushed.growlView;
|
||||
remoteRef = DEFAA2B40F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2B70F24192200BD51C1 /* Bubbles.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Bubbles.growlView;
|
||||
remoteRef = DEFAA2B60F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2B90F24192200BD51C1 /* iCal.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = iCal.growlView;
|
||||
remoteRef = DEFAA2B80F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2BB0F24192200BD51C1 /* Bezel.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Bezel.growlView;
|
||||
remoteRef = DEFAA2BA0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2BD0F24192200BD51C1 /* Smoke.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Smoke.growlView;
|
||||
remoteRef = DEFAA2BC0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2BF0F24192200BD51C1 /* Nano.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = Nano.growlView;
|
||||
remoteRef = DEFAA2BE0F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2C10F24192200BD51C1 /* MailMe.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = MailMe.growlView;
|
||||
remoteRef = DEFAA2C00F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2C30F24192200BD51C1 /* MusicVideo.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = MusicVideo.growlView;
|
||||
remoteRef = DEFAA2C20F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
DEFAA2C50F24192200BD51C1 /* SMS.growlView */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = SMS.growlView;
|
||||
remoteRef = DEFAA2C40F24192200BD51C1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
00BC6870114B5EA3000A0508 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
00BC68A9114B5F99000A0508 /* schema.xml in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
035A4971079DC83D0084B05F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -6216,6 +6296,15 @@
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
00BC6871114B5EA3000A0508 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
00BC68A6114B5F99000A0508 /* GetMetadataForFile.m in Sources */,
|
||||
00BC68A8114B5F99000A0508 /* Importer-main.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
035A4972079DC83D0084B05F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -6599,6 +6688,16 @@
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
00BC6965114B67E7000A0508 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 00BC6873114B5EA3000A0508 /* CaminoImporter */;
|
||||
targetProxy = 00BC6964114B67E7000A0508 /* PBXContainerItemProxy */;
|
||||
};
|
||||
00BC6967114B67F0000A0508 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 00BC6873114B5EA3000A0508 /* CaminoImporter */;
|
||||
targetProxy = 00BC6966114B67F0000A0508 /* PBXContainerItemProxy */;
|
||||
};
|
||||
33820DBC0F8AA26500D2164A /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = Breakpad;
|
||||
@@ -6714,16 +6813,6 @@
|
||||
target = 3F44AE0905BDFBA000CB4B08 /* CaminoStaticApp */;
|
||||
targetProxy = 7BDD26F70D0DC31C00BA05C6 /* PBXContainerItemProxy */;
|
||||
};
|
||||
DEFAA2C80F24196B00BD51C1 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = Growl.framework;
|
||||
targetProxy = DEFAA2C70F24196B00BD51C1 /* PBXContainerItemProxy */;
|
||||
};
|
||||
DEFAA2CB0F241A0200BD51C1 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = Growl.framework;
|
||||
targetProxy = DEFAA2CA0F241A0200BD51C1 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
@@ -7314,6 +7403,26 @@
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
00BC6876114B5EA5000A0508 /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
INFOPLIST_FILE = "Info-Importer.plist";
|
||||
PRODUCT_NAME = CaminoImporter;
|
||||
WRAPPER_EXTENSION = mdimporter;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
00BC6877114B5EA5000A0508 /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
INFOPLIST_FILE = "Info-Importer.plist";
|
||||
PRODUCT_NAME = CaminoImporter;
|
||||
WRAPPER_EXTENSION = mdimporter;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
3323775D0C4D0F9600A34879 /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 332377D10C4D88D300A34879 /* PrefPane.xcconfig */;
|
||||
@@ -7678,6 +7787,15 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
00BC6878114B5EA5000A0508 /* Build configuration list for PBXNativeTarget "CaminoImporter" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
00BC6876114B5EA5000A0508 /* Development */,
|
||||
00BC6877114B5EA5000A0508 /* Deployment */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Development;
|
||||
};
|
||||
3323775C0C4D0F9600A34879 /* Build configuration list for PBXNativeTarget "AppearancePrefPane" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
|
||||
@@ -110,6 +110,18 @@
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Camino bookmark</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.mozilla.camino.bookmark</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Camino</string>
|
||||
@@ -253,6 +265,29 @@ xz+k1ujre1mK8oq2DT2kCo29Ufgsc6U5bCc2Bs7S/fHOVBjxUf9/XIfvOyJRCbVJ
|
||||
-----END PUBLIC KEY-----</string>
|
||||
<key>SUScheduledCheckInterval</key>
|
||||
<integer>86400</integer>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>com.apple.safari.bookmark</string>
|
||||
<string>public.data</string>
|
||||
</array>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>Camino bookmark</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>org.mozilla.camino.bookmark</string>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>caminobookmark</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>mozProfileDirName</key>
|
||||
<string>Camino</string>
|
||||
</dict>
|
||||
|
||||
49
mozilla/camino/Info-Importer.plist
Normal file
49
mozilla/camino/Info-Importer.plist
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>MDImporter</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.mozilla.camino.bookmark</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino.spotlightimporter</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${PRODUCT_VERSION_STRING}</string>
|
||||
<key>CFPlugInDynamicRegisterFunction</key>
|
||||
<string></string>
|
||||
<key>CFPlugInDynamicRegistration</key>
|
||||
<string>NO</string>
|
||||
<key>CFPlugInFactories</key>
|
||||
<dict>
|
||||
<key>FE75FA4A-AFDC-4DE2-912A-9860E3870F20</key>
|
||||
<string>MetadataImporterPluginFactory</string>
|
||||
</dict>
|
||||
<key>CFPlugInTypes</key>
|
||||
<dict>
|
||||
<key>8B08C4BF-415B-11D8-B3F9-0003936726FC</key>
|
||||
<array>
|
||||
<string>FE75FA4A-AFDC-4DE2-912A-9860E3870F20</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>CFPlugInUnloadFunction</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
||||
18
mozilla/camino/resources/spotlight-importer/schema.xml
Normal file
18
mozilla/camino/resources/spotlight-importer/schema.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema version="1.0" xmlns="http://www.apple.com/metadata"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.apple.com/metadata file:///System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Resources/MetadataSchema.xsd">
|
||||
|
||||
<types>
|
||||
<type name="org.mozilla.camino.bookmark">
|
||||
<allattrs>
|
||||
kMDItemDisplayName kMDItemTitle kMDItemURL kMDItemDescription kMDItemKeywords kMDItemContentModificationDate
|
||||
</allattrs>
|
||||
<displayattrs>
|
||||
kMDItemTitle kMDItemURL kMDItemDescription
|
||||
</displayattrs>
|
||||
</type>
|
||||
</types>
|
||||
</schema>
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
#import "BookmarksClient.h"
|
||||
#import "NSString+Utils.h"
|
||||
#import "SiteIconProvider.h"
|
||||
#import "SpotlightFileKeys.h"
|
||||
|
||||
NSString* const kSpotlightMetadataSuffix = @"caminobookmark";
|
||||
|
||||
// Notification of URL load
|
||||
NSString* const URLLoadNotification = @"url_load";
|
||||
@@ -315,34 +318,65 @@ NSString* const URLLoadSuccessKey = @"url_bool";
|
||||
// -writeBookmarksMetaDatatoPath:
|
||||
//
|
||||
// Writes out the meta data for this bookmark to a file with the name of this
|
||||
// item's UUID in the given path. Using the suffix "webbookmark" allows us to
|
||||
// piggyback on Safari's bookmark Spotlight importer.
|
||||
// item's UUID in the given path.
|
||||
//
|
||||
- (void)writeBookmarksMetadataToPath:(NSString*)inPath
|
||||
{
|
||||
if ([self isSeparator]) // Writing metadata for separators doesn't make sense.
|
||||
return;
|
||||
|
||||
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
[self savedTitle], @"Name",
|
||||
[self savedURL], @"URL",
|
||||
nil];
|
||||
NSString* file = [self UUID];
|
||||
NSString* path = [NSString stringWithFormat:@"%@/%@.webbookmark", inPath, file];
|
||||
[dict writeToFile:path atomically:YES];
|
||||
NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
||||
[self savedTitle], kSpotlightBookmarkTitleKey,
|
||||
[self savedURL], kSpotlightBookmarkURLKey,
|
||||
nil];
|
||||
if ([[self itemDescription] length] > 0) {
|
||||
[dict setObject:[self itemDescription]
|
||||
forKey:kSpotlightBookmarkDescriptionKey];
|
||||
}
|
||||
if ([[self shortcut] length] > 0)
|
||||
[dict setObject:[self shortcut] forKey:kSpotlightBookmarkShortcutKey];
|
||||
|
||||
// There doesn't seem to be any way for our files to get the behavior Safari's
|
||||
// bookmarks get, where the kMDItemDisplayName is used instead of the file
|
||||
// name in search results. To work around that, we name the file using the
|
||||
// title, using the UUID as an enclosing directory.
|
||||
NSString* directoryPath = [inPath stringByAppendingPathComponent:[self UUID]];
|
||||
NSFileManager* fileManager = [NSFileManager defaultManager];
|
||||
if (![fileManager fileExistsAtPath:directoryPath])
|
||||
[fileManager createDirectoryAtPath:directoryPath attributes:NULL];
|
||||
|
||||
NSString* title = [self savedTitle];
|
||||
if ([title length] == 0)
|
||||
title = @"-";
|
||||
// A : will look like a / when displayed; change them to -, since that's a bit
|
||||
// better. Then map any / to : so they display correctly.
|
||||
title = [[title componentsSeparatedByString:@":"] componentsJoinedByString:@"-"];
|
||||
title = [[title componentsSeparatedByString:@"/"] componentsJoinedByString:@":"];
|
||||
NSString* fileName = [title stringByAppendingPathExtension:kSpotlightMetadataSuffix];
|
||||
NSString* filePath = [directoryPath stringByAppendingPathComponent:fileName];
|
||||
[dict writeToFile:filePath atomically:YES];
|
||||
NSDictionary* attributes =
|
||||
[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
|
||||
forKey:NSFileExtensionHidden];
|
||||
[fileManager changeFileAttributes:attributes atPath:filePath];
|
||||
}
|
||||
|
||||
//
|
||||
// -removeBookmarksMetadataFromPath:
|
||||
//
|
||||
// Delete the meta data for this bookmark from the cache, which consists of a file with
|
||||
// this item's UUID.
|
||||
// Delete the meta data for this bookmark from the cache, which consists of a
|
||||
// file inside a folder with this item's UUID.
|
||||
//
|
||||
- (void)removeBookmarksMetadataFromPath:(NSString*)inPath
|
||||
{
|
||||
NSString* file = [self UUID];
|
||||
NSString* path = [NSString stringWithFormat:@"%@/%@.webbookmark", inPath, file];
|
||||
[[NSFileManager defaultManager] removeFileAtPath:path handler:nil];
|
||||
NSString* uuid = [self UUID];
|
||||
// This should not be possible, but since we are about to do a recursive
|
||||
// delete we want to be very, very careful.
|
||||
if ([uuid length] == 0)
|
||||
return;
|
||||
|
||||
NSString* directoryPath = [inPath stringByAppendingPathComponent:uuid];
|
||||
[[NSFileManager defaultManager] removeFileAtPath:directoryPath handler:nil];
|
||||
}
|
||||
|
||||
// for plist in native format
|
||||
|
||||
@@ -1232,9 +1232,8 @@ static BookmarkManager* gBookmarkManager = nil;
|
||||
// -writeBookmarksMetadataForSpotlight
|
||||
//
|
||||
// Write out a flat list of all bookmarks in the caches folder so that Spotlight
|
||||
// can parse them. We don't need to write our own metadata plugin, we piggyback
|
||||
// the one that Safari uses which launches the default browser when selected.
|
||||
// This blows away any previous cache and ensures that everything is up-to-date.
|
||||
// can parse them. This blows away any previous cache and ensures that
|
||||
// everything is up-to-date.
|
||||
//
|
||||
// Note that this is called on a thread, so it takes pains to ensure that the data
|
||||
// it's working with won't be changing on the UI thread
|
||||
|
||||
@@ -42,9 +42,12 @@
|
||||
|
||||
// This takes an NSURL to a local file, and if that file is a file that
|
||||
// represents a URL, returns the URL it contains. Otherwise, returns the
|
||||
// passed URL. Supports .url, .webloc and .ftploc files.
|
||||
// passed URL. Supports .url, .webloc, .ftploc, and .caminobookmark files.
|
||||
+ (NSURL*)decodeLocalFileURL:(NSURL*)url;
|
||||
|
||||
// Returns the URL for a plist file containing a URL key, or nil on failure.
|
||||
+(NSURL*)URLFromPlist:(NSString*)inFile;
|
||||
|
||||
+(NSURL*)URLFromInetloc:(NSString*)inFile;
|
||||
+(NSURL*)URLFromIEURLFile:(NSString*)inFile;
|
||||
|
||||
|
||||
@@ -46,18 +46,28 @@
|
||||
NSString* ext = [[urlPathString pathExtension] lowercaseString];
|
||||
OSType fileType = NSHFSTypeCodeFromFileType(NSHFSTypeOfFile(urlPathString));
|
||||
|
||||
if ([ext isEqualToString:@"url"] || fileType == 'LINK') {
|
||||
url = [NSURL URLFromIEURLFile:urlPathString];
|
||||
}
|
||||
else if ([ext isEqualToString:@"webloc"] || [ext isEqualToString:@"ftploc"] ||
|
||||
fileType == 'ilht' || fileType == 'ilft')
|
||||
if ([ext isEqualToString:@"caminobookmark"])
|
||||
return [NSURL URLFromPlist:urlPathString];
|
||||
if ([ext isEqualToString:@"url"] || fileType == 'LINK')
|
||||
return [NSURL URLFromIEURLFile:urlPathString];
|
||||
if ([ext isEqualToString:@"webloc"] || [ext isEqualToString:@"ftploc"] ||
|
||||
fileType == 'ilht' || fileType == 'ilft')
|
||||
{
|
||||
url = [NSURL URLFromInetloc:urlPathString];
|
||||
return [NSURL URLFromInetloc:urlPathString];
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
+(NSURL*)URLFromPlist:(NSString*)inFile
|
||||
{
|
||||
if (!inFile)
|
||||
return nil;
|
||||
NSDictionary* plist =
|
||||
[[[NSDictionary alloc] initWithContentsOfFile:inFile] autorelease];
|
||||
return [NSURL URLWithString:[plist objectForKey:@"URL"]];
|
||||
}
|
||||
|
||||
//
|
||||
// Reads the URL from a .webloc/.ftploc file.
|
||||
// Returns the URL, or nil on failure.
|
||||
@@ -90,11 +100,7 @@
|
||||
}
|
||||
|
||||
if (!ret) { // Look for valid plist data.
|
||||
NSDictionary *plist;
|
||||
if ((plist = [[NSDictionary alloc] initWithContentsOfFile:inFile])) {
|
||||
ret = [NSURL URLWithString:[plist objectForKey:@"URL"]];
|
||||
[plist release];
|
||||
}
|
||||
ret = [NSURL URLFromPlist:inFile];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
83
mozilla/camino/src/spotlight-importer/GetMetadataForFile.m
Normal file
83
mozilla/camino/src/spotlight-importer/GetMetadataForFile.m
Normal file
@@ -0,0 +1,83 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Camino code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Stuart Morgan
|
||||
* Portions created by the Initial Developer are Copyright (C) 2010
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Stuart Morgan <stuart.morgan@alumni.case.edu>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include <Foundation/Foundation.h>
|
||||
|
||||
#include "SpotlightFileKeys.h"
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
|
||||
static const CFStringRef kMDItemURL = @"kMDItemURL";
|
||||
#endif
|
||||
|
||||
Boolean GetMetadataForFile(void* thisInterface,
|
||||
CFMutableDictionaryRef attributes,
|
||||
CFStringRef contentTypeUTI,
|
||||
CFStringRef pathToFile)
|
||||
{
|
||||
NSMutableDictionary* outDict = (NSMutableDictionary*)attributes;
|
||||
NSDictionary* fileInfo =
|
||||
[NSDictionary dictionaryWithContentsOfFile:(NSString*)pathToFile];
|
||||
if (!fileInfo)
|
||||
return FALSE;
|
||||
|
||||
if (!([fileInfo objectForKey:kSpotlightBookmarkTitleKey] &&
|
||||
[fileInfo objectForKey:kSpotlightBookmarkURLKey])) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
[outDict setObject:[fileInfo objectForKey:kSpotlightBookmarkTitleKey]
|
||||
forKey:(NSString*)kMDItemDisplayName];
|
||||
[outDict setObject:[fileInfo objectForKey:kSpotlightBookmarkTitleKey]
|
||||
forKey:(NSString*)kMDItemTitle];
|
||||
|
||||
[outDict setObject:[fileInfo objectForKey:kSpotlightBookmarkURLKey]
|
||||
forKey:(NSString*)kMDItemURL];
|
||||
|
||||
if ([fileInfo objectForKey:kSpotlightBookmarkDescriptionKey]) {
|
||||
[outDict setObject:[fileInfo objectForKey:kSpotlightBookmarkDescriptionKey]
|
||||
forKey:(NSString*)kMDItemDescription];
|
||||
}
|
||||
|
||||
if ([fileInfo objectForKey:kSpotlightBookmarkShortcutKey]) {
|
||||
NSArray* keywords = [NSArray arrayWithObject:
|
||||
[fileInfo objectForKey:kSpotlightBookmarkShortcutKey]];
|
||||
[outDict setObject:keywords forKey:(NSString*)kMDItemKeywords];
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
213
mozilla/camino/src/spotlight-importer/Importer-main.c
Normal file
213
mozilla/camino/src/spotlight-importer/Importer-main.c
Normal file
@@ -0,0 +1,213 @@
|
||||
//==============================================================================
|
||||
//
|
||||
// DO NO MODIFY THE CONTENT OF THIS FILE
|
||||
//
|
||||
// This file contains the generic CFPlug-in code necessary for your importer
|
||||
// To complete your importer implement the function in GetMetadataForFile.c
|
||||
//
|
||||
//==============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include <CoreFoundation/CFPlugInCOM.h>
|
||||
#include <CoreServices/CoreServices.h>
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// constants
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#define PLUGIN_ID "FE75FA4A-AFDC-4DE2-912A-9860E3870F20"
|
||||
|
||||
//
|
||||
// Below is the generic glue code for all plug-ins.
|
||||
//
|
||||
// You should not have to modify this code aside from changing
|
||||
// names if you decide to change the names defined in the Info.plist
|
||||
//
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// typedefs
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// The import function to be implemented in GetMetadataForFile.c
|
||||
Boolean GetMetadataForFile(void *thisInterface,
|
||||
CFMutableDictionaryRef attributes,
|
||||
CFStringRef contentTypeUTI,
|
||||
CFStringRef pathToFile);
|
||||
|
||||
// The layout for an instance of MetaDataImporterPlugIn
|
||||
typedef struct __MetadataImporterPluginType
|
||||
{
|
||||
MDImporterInterfaceStruct *conduitInterface;
|
||||
CFUUIDRef factoryID;
|
||||
UInt32 refCount;
|
||||
} MetadataImporterPluginType;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// prototypes
|
||||
// -----------------------------------------------------------------------------
|
||||
// Forward declaration for the IUnknown implementation.
|
||||
//
|
||||
|
||||
MetadataImporterPluginType *AllocMetadataImporterPluginType(CFUUIDRef inFactoryID);
|
||||
void DeallocMetadataImporterPluginType(MetadataImporterPluginType *thisInstance);
|
||||
HRESULT MetadataImporterQueryInterface(void *thisInstance,REFIID iid,LPVOID *ppv);
|
||||
void *MetadataImporterPluginFactory(CFAllocatorRef allocator,CFUUIDRef typeID);
|
||||
ULONG MetadataImporterPluginAddRef(void *thisInstance);
|
||||
ULONG MetadataImporterPluginRelease(void *thisInstance);
|
||||
// -----------------------------------------------------------------------------
|
||||
// testInterfaceFtbl definition
|
||||
// -----------------------------------------------------------------------------
|
||||
// The TestInterface function table.
|
||||
//
|
||||
|
||||
static MDImporterInterfaceStruct testInterfaceFtbl = {
|
||||
NULL,
|
||||
MetadataImporterQueryInterface,
|
||||
MetadataImporterPluginAddRef,
|
||||
MetadataImporterPluginRelease,
|
||||
GetMetadataForFile
|
||||
};
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// AllocMetadataImporterPluginType
|
||||
// -----------------------------------------------------------------------------
|
||||
// Utility function that allocates a new instance.
|
||||
// You can do some initial setup for the importer here if you wish
|
||||
// like allocating globals etc...
|
||||
//
|
||||
MetadataImporterPluginType *AllocMetadataImporterPluginType(CFUUIDRef inFactoryID)
|
||||
{
|
||||
MetadataImporterPluginType *theNewInstance;
|
||||
|
||||
theNewInstance = (MetadataImporterPluginType *)malloc(sizeof(MetadataImporterPluginType));
|
||||
memset(theNewInstance,0,sizeof(MetadataImporterPluginType));
|
||||
|
||||
/* Point to the function table */
|
||||
theNewInstance->conduitInterface = &testInterfaceFtbl;
|
||||
|
||||
/* Retain and keep an open instance refcount for each factory. */
|
||||
theNewInstance->factoryID = CFRetain(inFactoryID);
|
||||
CFPlugInAddInstanceForFactory(inFactoryID);
|
||||
|
||||
/* This function returns the IUnknown interface so set the refCount to one. */
|
||||
theNewInstance->refCount = 1;
|
||||
return theNewInstance;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// DeallocMetadataImporterPluginType
|
||||
// -----------------------------------------------------------------------------
|
||||
// Utility function that deallocates the instance when
|
||||
// the refCount goes to zero.
|
||||
// In the current implementation importer interfaces are never deallocated
|
||||
// but implement this as this might change in the future
|
||||
//
|
||||
void DeallocMetadataImporterPluginType(MetadataImporterPluginType *thisInstance)
|
||||
{
|
||||
CFUUIDRef theFactoryID;
|
||||
|
||||
theFactoryID = thisInstance->factoryID;
|
||||
free(thisInstance);
|
||||
if (theFactoryID){
|
||||
CFPlugInRemoveInstanceForFactory(theFactoryID);
|
||||
CFRelease(theFactoryID);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// MetadataImporterQueryInterface
|
||||
// -----------------------------------------------------------------------------
|
||||
// Implementation of the IUnknown QueryInterface function.
|
||||
//
|
||||
HRESULT MetadataImporterQueryInterface(void *thisInstance,REFIID iid,LPVOID *ppv)
|
||||
{
|
||||
CFUUIDRef interfaceID;
|
||||
|
||||
interfaceID = CFUUIDCreateFromUUIDBytes(kCFAllocatorDefault,iid);
|
||||
|
||||
if (CFEqual(interfaceID,kMDImporterInterfaceID)){
|
||||
/* If the Right interface was requested, bump the ref count,
|
||||
* set the ppv parameter equal to the instance, and
|
||||
* return good status.
|
||||
*/
|
||||
((MetadataImporterPluginType*)thisInstance)->conduitInterface->AddRef(thisInstance);
|
||||
*ppv = thisInstance;
|
||||
CFRelease(interfaceID);
|
||||
return S_OK;
|
||||
}else{
|
||||
if (CFEqual(interfaceID,IUnknownUUID)){
|
||||
/* If the IUnknown interface was requested, same as above. */
|
||||
((MetadataImporterPluginType*)thisInstance )->conduitInterface->AddRef(thisInstance);
|
||||
*ppv = thisInstance;
|
||||
CFRelease(interfaceID);
|
||||
return S_OK;
|
||||
}else{
|
||||
/* Requested interface unknown, bail with error. */
|
||||
*ppv = NULL;
|
||||
CFRelease(interfaceID);
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// MetadataImporterPluginAddRef
|
||||
// -----------------------------------------------------------------------------
|
||||
// Implementation of reference counting for this type. Whenever an interface
|
||||
// is requested, bump the refCount for the instance. NOTE: returning the
|
||||
// refcount is a convention but is not required so don't rely on it.
|
||||
//
|
||||
ULONG MetadataImporterPluginAddRef(void *thisInstance)
|
||||
{
|
||||
((MetadataImporterPluginType *)thisInstance )->refCount += 1;
|
||||
return ((MetadataImporterPluginType*) thisInstance)->refCount;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// SampleCMPluginRelease
|
||||
// -----------------------------------------------------------------------------
|
||||
// When an interface is released, decrement the refCount.
|
||||
// If the refCount goes to zero, deallocate the instance.
|
||||
//
|
||||
ULONG MetadataImporterPluginRelease(void *thisInstance)
|
||||
{
|
||||
((MetadataImporterPluginType*)thisInstance)->refCount -= 1;
|
||||
if (((MetadataImporterPluginType*)thisInstance)->refCount == 0){
|
||||
DeallocMetadataImporterPluginType((MetadataImporterPluginType*)thisInstance );
|
||||
return 0;
|
||||
}else{
|
||||
return ((MetadataImporterPluginType*) thisInstance )->refCount;
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// MetadataImporterPluginFactory
|
||||
// -----------------------------------------------------------------------------
|
||||
// Implementation of the factory function for this type.
|
||||
//
|
||||
void *MetadataImporterPluginFactory(CFAllocatorRef allocator,CFUUIDRef typeID)
|
||||
{
|
||||
MetadataImporterPluginType *result;
|
||||
CFUUIDRef uuid;
|
||||
|
||||
/* If correct type is being requested, allocate an
|
||||
* instance of TestType and return the IUnknown interface.
|
||||
*/
|
||||
if (CFEqual(typeID,kMDImporterTypeID)){
|
||||
uuid = CFUUIDCreateFromString(kCFAllocatorDefault,CFSTR(PLUGIN_ID));
|
||||
result = AllocMetadataImporterPluginType(uuid);
|
||||
CFRelease(uuid);
|
||||
return result;
|
||||
}
|
||||
/* If the requested type is incorrect, return NULL. */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
42
mozilla/camino/src/spotlight-importer/SpotlightFileKeys.h
Normal file
42
mozilla/camino/src/spotlight-importer/SpotlightFileKeys.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Camino code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Stuart Morgan
|
||||
* Portions created by the Initial Developer are Copyright (C) 2010
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Stuart Morgan <stuart.morgan@alumni.case.edu>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
NSString* const kSpotlightBookmarkTitleKey = @"Name";
|
||||
NSString* const kSpotlightBookmarkURLKey = @"URL";
|
||||
NSString* const kSpotlightBookmarkDescriptionKey = @"Description";
|
||||
NSString* const kSpotlightBookmarkShortcutKey = @"Shortcut";
|
||||
Reference in New Issue
Block a user