From 4ae7b09944e4925feb41e94678df8acbaade85fc Mon Sep 17 00:00:00 2001 From: relikd Date: Mon, 29 Jul 2019 21:50:24 +0200 Subject: [PATCH] Quick Look preview for OPML files --- CHANGELOG.md | 3 ++- README.md | 16 ++++++++--- baRSS.xcodeproj/project.pbxproj | 48 +++++++++++++++++++++++++++++++++ baRSS/Info.plist | 4 ++- 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 151338c..cc56fa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,8 @@ and this project does NOT adhere to [Semantic Versioning](https://semver.org/spe - Settings, Feeds: Drag & Drop feed titles and urls as text - Settings, Feeds: OPML export with selected items only - Accessibility hints for most UI elements -- Associate OPML files (double click and right click actions in Finder) +- Associate OPML files (double click and right click actions in Finder) +- Quick Look preview for OPML files ### Fixed - Adding feed: Show users any 5xx server error response and extracted failure reason diff --git a/README.md b/README.md index 2b9d393..dfb0633 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,24 @@ Install Requires macOS Sierra (10.12) or higher. ### Easy way -go to [releases](https://github.com/relikd/baRSS/releases) and downloaded the latest version. +Go to [releases](https://github.com/relikd/baRSS/releases) and downloaded the latest version. ### Build from source -You'll need Xcode and [Carthage](https://github.com/Carthage/Carthage#installing-carthage). The latter is optional, you can build the [RSXML](https://github.com/relikd/RSXML) library from source instead. Carthage just makes it more convenient. +You'll need Xcode and [Carthage](https://github.com/Carthage/Carthage#installing-carthage). +The latter is optional, you can build the [RSXML](https://github.com/relikd/RSXML) library from source instead. +Carthage just makes it more convenient. Download and unzip this project, navigate to the root folder and run `carthage bootstrap --platform macOS`. -That's it. Open Xcode and build the project. Note, there are some compiler flags that append 'beta' to the development release. If you prefer the optimized release version go to `Product > Archive`. +Next you need to clone [QLOPML](https://github.com/relikd/QLOPML) in the same folder where this project is located. +Alternatively you can simply delete the `QLOPML` project reference without much harm. +`QLOPML` is a Quick Look plugin for `.opml` files. +It will display the file contents whenever you hit space. + +That's it. +Open Xcode and build the project. +Note, there are some compiler flags that append 'beta' to the development release. +If you prefer the optimized release version go to `Product > Archive`. Hidden options diff --git a/baRSS.xcodeproj/project.pbxproj b/baRSS.xcodeproj/project.pbxproj index dd91d17..6f5bac5 100644 --- a/baRSS.xcodeproj/project.pbxproj +++ b/baRSS.xcodeproj/project.pbxproj @@ -27,6 +27,7 @@ 5496B511214D6275003ED4ED /* UserPrefs.m in Sources */ = {isa = PBXBuildFile; fileRef = 5496B510214D6275003ED4ED /* UserPrefs.m */; }; 54A07A7F220E04CF00082C51 /* NSFetchRequest+Ext.m in Sources */ = {isa = PBXBuildFile; fileRef = 54A07A7E220E04CF00082C51 /* NSFetchRequest+Ext.m */; }; 54A07A82220E723D00082C51 /* MapUnreadTotal.m in Sources */ = {isa = PBXBuildFile; fileRef = 54A07A81220E723D00082C51 /* MapUnreadTotal.m */; }; + 54A2D63922EF81A4007C61F3 /* QLOPML.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = 54A2D63822EF8193007C61F3 /* QLOPML.qlgenerator */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 54ACC28C21061B3C0020715F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28B21061B3C0020715F /* main.m */; }; 54ACC29521061E270020715F /* FeedDownload.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29421061E270020715F /* FeedDownload.m */; }; 54ACC29821061FBA0020715F /* Preferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29721061FBA0020715F /* Preferences.m */; }; @@ -47,6 +48,16 @@ 54FE73D3212316CD003EAC65 /* BarMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 54FE73D2212316CD003EAC65 /* BarMenu.m */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 54A2D63722EF8193007C61F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 54A2D62E22EF8183007C61F3 /* QLOPML.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 540A649822EE78B200470937; + remoteInfo = QLOPML; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXCopyFilesBuildPhase section */ 544DCCBB212A2B4D002DBC46 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; @@ -69,6 +80,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 54CE4D4522EF509400E89C16 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = Contents/Library/QuickLook; + dstSubfolderSpec = 1; + files = ( + 54A2D63922EF81A4007C61F3 /* QLOPML.qlgenerator in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -109,6 +130,7 @@ 54A07A7E220E04CF00082C51 /* NSFetchRequest+Ext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSFetchRequest+Ext.m"; sourceTree = ""; }; 54A07A80220E723D00082C51 /* MapUnreadTotal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapUnreadTotal.h; sourceTree = ""; }; 54A07A81220E723D00082C51 /* MapUnreadTotal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapUnreadTotal.m; sourceTree = ""; }; + 54A2D62E22EF8183007C61F3 /* QLOPML.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = QLOPML.xcodeproj; path = ../QLOPML/QLOPML.xcodeproj; sourceTree = ""; }; 54ACC27C21061B3B0020715F /* baRSS Beta.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "baRSS Beta.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 54ACC28321061B3B0020715F /* DBv1.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DBv1.xcdatamodel; sourceTree = ""; }; 54ACC28A21061B3C0020715F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -231,12 +253,21 @@ path = "Core Data"; sourceTree = ""; }; + 54A2D63422EF8193007C61F3 /* Products */ = { + isa = PBXGroup; + children = ( + 54A2D63822EF8193007C61F3 /* QLOPML.qlgenerator */, + ); + name = Products; + sourceTree = ""; + }; 54ACC27321061B3B0020715F = { isa = PBXGroup; children = ( 540CD14821C094A2004AB594 /* README.md */, 54892F1D2235285700271CBA /* CHANGELOG.md */, 54ACC27E21061B3B0020715F /* baRSS */, + 54A2D62E22EF8183007C61F3 /* QLOPML.xcodeproj */, 54ACC27D21061B3B0020715F /* Products */, 544FBD4321064AEB008A260C /* Frameworks */, ); @@ -353,6 +384,7 @@ 54ACC27921061B3B0020715F /* Frameworks */, 54ACC27A21061B3B0020715F /* Resources */, 544DCCBB212A2B4D002DBC46 /* Embed Frameworks */, + 54CE4D4522EF509400E89C16 /* CopyFiles */, 544DCCBC212A2B5A002DBC46 /* CopyFiles */, 543964EE2215C27B0016AAA3 /* ShellScript */, ); @@ -399,6 +431,12 @@ mainGroup = 54ACC27321061B3B0020715F; productRefGroup = 54ACC27D21061B3B0020715F /* Products */; projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 54A2D63422EF8193007C61F3 /* Products */; + ProjectRef = 54A2D62E22EF8183007C61F3 /* QLOPML.xcodeproj */; + }, + ); projectRoot = ""; targets = ( 54ACC27B21061B3B0020715F /* baRSS */, @@ -406,6 +444,16 @@ }; /* End PBXProject section */ +/* Begin PBXReferenceProxy section */ + 54A2D63822EF8193007C61F3 /* QLOPML.qlgenerator */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = QLOPML.qlgenerator; + remoteRef = 54A2D63722EF8193007C61F3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + /* Begin PBXResourcesBuildPhase section */ 54ACC27A21061B3B0020715F /* Resources */ = { isa = PBXResourcesBuildPhase; diff --git a/baRSS/Info.plist b/baRSS/Info.plist index 8725043..11cab05 100644 --- a/baRSS/Info.plist +++ b/baRSS/Info.plist @@ -60,7 +60,9 @@ CFBundleVersion - 9654 + 9740 + LSApplicationCategoryType + public.app-category.news LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement