Skip to content

Commit

Permalink
Merge pull request #21 from ian4hu/bugfix/issue-18
Browse files Browse the repository at this point in the history
Bugfix/issue #18
  • Loading branch information
ian4hu authored Aug 19, 2019
2 parents 4bea186 + 368c120 commit d80424f
Show file tree
Hide file tree
Showing 10 changed files with 58 additions and 212 deletions.
Binary file removed .DS_Store
Binary file not shown.
12 changes: 0 additions & 12 deletions Clipy.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@
FA1DB4D61DDCB479007F95C8 /* CPYFolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4D01DDCB479007F95C8 /* CPYFolder.swift */; };
FA1DB4D71DDCB479007F95C8 /* CPYSnippet.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4D11DDCB479007F95C8 /* CPYSnippet.swift */; };
FA1DB4E51DDCB49C007F95C8 /* CPYUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4D91DDCB49C007F95C8 /* CPYUtilities.swift */; };
FA1DB4E71DDCB49C007F95C8 /* CPYDesignableButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4DD1DDCB49C007F95C8 /* CPYDesignableButton.swift */; };
FA1DB4E81DDCB49C007F95C8 /* CPYDesignableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4DE1DDCB49C007F95C8 /* CPYDesignableView.swift */; };
FA1DB4E91DDCB49C007F95C8 /* CPYSplitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4E01DDCB49C007F95C8 /* CPYSplitView.swift */; };
FA1DB4EA1DDCB49C007F95C8 /* CPYSnippetsEditorCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4E21DDCB49C007F95C8 /* CPYSnippetsEditorCell.swift */; };
FA1DB4EB1DDCB49C007F95C8 /* CPYPlaceHolderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4E41DDCB49C007F95C8 /* CPYPlaceHolderTextView.swift */; };
FA1DB5121DDCB4C0007F95C8 /* CPYPreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1DB4ED1DDCB4C0007F95C8 /* CPYPreferencesWindowController.swift */; };
Expand Down Expand Up @@ -184,9 +181,6 @@
FA1DB4D01DDCB479007F95C8 /* CPYFolder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYFolder.swift; sourceTree = "<group>"; };
FA1DB4D11DDCB479007F95C8 /* CPYSnippet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYSnippet.swift; sourceTree = "<group>"; };
FA1DB4D91DDCB49C007F95C8 /* CPYUtilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYUtilities.swift; sourceTree = "<group>"; };
FA1DB4DD1DDCB49C007F95C8 /* CPYDesignableButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYDesignableButton.swift; sourceTree = "<group>"; };
FA1DB4DE1DDCB49C007F95C8 /* CPYDesignableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYDesignableView.swift; sourceTree = "<group>"; };
FA1DB4E01DDCB49C007F95C8 /* CPYSplitView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYSplitView.swift; sourceTree = "<group>"; };
FA1DB4E21DDCB49C007F95C8 /* CPYSnippetsEditorCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYSnippetsEditorCell.swift; sourceTree = "<group>"; };
FA1DB4E41DDCB49C007F95C8 /* CPYPlaceHolderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYPlaceHolderTextView.swift; sourceTree = "<group>"; };
FA1DB4ED1DDCB4C0007F95C8 /* CPYPreferencesWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPYPreferencesWindowController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -433,16 +427,13 @@
FA1DB4DC1DDCB49C007F95C8 /* DesignableView */ = {
isa = PBXGroup;
children = (
FA1DB4DD1DDCB49C007F95C8 /* CPYDesignableButton.swift */,
FA1DB4DE1DDCB49C007F95C8 /* CPYDesignableView.swift */,
);
path = DesignableView;
sourceTree = "<group>";
};
FA1DB4DF1DDCB49C007F95C8 /* SplitViews */ = {
isa = PBXGroup;
children = (
FA1DB4E01DDCB49C007F95C8 /* CPYSplitView.swift */,
);
path = SplitViews;
sourceTree = "<group>";
Expand Down Expand Up @@ -885,8 +876,6 @@
FA1DB4BD1DDCB452007F95C8 /* String+Substring.swift in Sources */,
FA1189331E4CD58C00244F12 /* ExcludeAppService.swift in Sources */,
FA801F4821A99F0400ACBE31 /* AvailableType.swift in Sources */,
FA1DB4E91DDCB49C007F95C8 /* CPYSplitView.swift in Sources */,
FA1DB4E81DDCB49C007F95C8 /* CPYDesignableView.swift in Sources */,
FA1DB5181DDCB4C0007F95C8 /* CPYUpdatesPreferenceViewController.swift in Sources */,
FA1DB4D41DDCB479007F95C8 /* CPYClipData.swift in Sources */,
FA1DB4B71DDCB452007F95C8 /* NSImage+Resize.swift in Sources */,
Expand All @@ -896,7 +885,6 @@
FA1DB5161DDCB4C0007F95C8 /* CPYShortcutsPreferenceViewController.swift in Sources */,
FA431F021E6718CE00ACFF56 /* Collection+Safe.swift in Sources */,
FA10897D20EC22E200A3FEFC /* AssetsImages.swift in Sources */,
FA1DB4E71DDCB49C007F95C8 /* CPYDesignableButton.swift in Sources */,
FA10898320EC2AFB00A3FEFC /* Colors.swift in Sources */,
FA1DB4D21DDCB479007F95C8 /* CPYAppInfo.swift in Sources */,
FAE911B91DE045E2008A4BEC /* HotKeyService.swift in Sources */,
Expand Down
10 changes: 10 additions & 0 deletions Clipy/Sources/Extensions/NSCoding+Archive.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,22 @@ import Foundation

extension NSCoding {
func archive() -> Data {
if #available(OSX 10.13, *) {
if let data = try? NSKeyedArchiver.archivedData(withRootObject: self, requiringSecureCoding: true) {
return data
}
}
return NSKeyedArchiver.archivedData(withRootObject: self)
}
}

extension Array where Element: NSCoding {
func archive() -> Data {
if #available(OSX 10.13, *) {
if let data = try? NSKeyedArchiver.archivedData(withRootObject: self, requiringSecureCoding: true) {
return data
}
}
return NSKeyedArchiver.archivedData(withRootObject: self)
}
}
11 changes: 10 additions & 1 deletion Clipy/Sources/Models/CPYClipData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ final class CPYClipData: NSObject {
} else if (type.isRTF || type.isRTFD) && RTFData != nil {
// RTF data should be parsed the get the hash
if let attr = NSAttributedString(rtfd: RTFData!, documentAttributes: nil) ?? NSAttributedString(rtf: RTFData!, documentAttributes: nil) {
hash ^= attr.archive().hashValue
hash ^= "\(attr)".removePtr().hashValue
} else {
hash ^= RTFData!.hashValue
}
Expand Down Expand Up @@ -193,3 +193,12 @@ private extension CPYClipData {
image = pasteboard.readObjects(forClasses: [NSImage.self], options: nil)?.first as? NSImage
}
}

private extension String {

static let ptrRegex = try! NSRegularExpression(pattern: "0x[a-f0-9]+", options: [.caseInsensitive])

func removePtr() -> String {
return String.ptrRegex.stringByReplacingMatches(in: self, options: [], range: NSRange(location: 0, length: self.count), withTemplate: "")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KFD-K3-E8i">
<rect key="frame" x="170" y="159" width="140" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="jFw-zK-V8j"/>
<constraint firstAttribute="width" constant="136" id="nOG-Ch-nWk"/>
</constraints>
<rect key="frame" x="172" y="159" width="136" height="17"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="No Pane is Selected." usesSingleLineMode="YES" id="Vy6-Ui-lLf">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
Expand Down Expand Up @@ -366,16 +362,11 @@
<constraint firstItem="KnF-V7-1F2" firstAttribute="top" secondItem="LzX-pA-tjM" secondAttribute="top" constant="8" id="q7l-tP-IgV"/>
</constraints>
</customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="RKs-Gr-vpv" customClass="CPYDesignableView" customModule="Clipy" customModuleProvider="target">
<customView translatesAutoresizingMaskIntoConstraints="NO" id="RKs-Gr-vpv">
<rect key="frame" x="0.0" y="0.0" width="480" height="1"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="oUc-OU-CpE"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="backgroundColor">
<color key="value" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<constraints>
Expand Down
Loading

0 comments on commit d80424f

Please sign in to comment.