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:
stuart.morgan%alumni.case.edu
2010-03-27 19:55:52 +00:00
parent d6f7114f94
commit af34ed6760
11 changed files with 937 additions and 337 deletions

View File

@@ -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 = (

View File

@@ -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>

View 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>

View 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>

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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];
}
}

View 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;
}

View 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;
}

View 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";