diff --git a/Cartfile b/Cartfile index 7f0353ad..d3df4b05 100644 --- a/Cartfile +++ b/Cartfile @@ -1,3 +1,3 @@ github "sparkle-project/Sparkle" ~> 1.18.1 -github "MacPass/KeePassKit" ~> 1.7 +github "MacPass/KeePassKit" ~> 1.7.1 github "mstarke/HNHUi" ~> 1.4.1 diff --git a/Cartfile.resolved b/Cartfile.resolved index 7320ca2f..0003885f 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,3 +1,3 @@ -github "MacPass/KeePassKit" "1.7" +github "MacPass/KeePassKit" "1.7.1" github "mstarke/HNHUi" "1.4.1" github "sparkle-project/Sparkle" "1.18.1" diff --git a/MacPass/MPCustomFieldTableViewDelegate.h b/MacPass/MPCustomFieldTableViewDelegate.h index ad37762a..549e95e8 100644 --- a/MacPass/MPCustomFieldTableViewDelegate.h +++ b/MacPass/MPCustomFieldTableViewDelegate.h @@ -24,6 +24,15 @@ @class MPInspectorViewController; + +/** + Determines the index of the custom Attribute from the a tag value + + @param tag Tag value (e.g. from the input filed inside the table view row) + @return the row number of the custom attribute, if tag is no row then -1 is returned + */ +NSInteger MPCustomFieldIndexFromTag(NSInteger tag); + @interface MPCustomFieldTableViewDelegate : NSObject @property (weak, nonatomic) id viewController; diff --git a/MacPass/MPCustomFieldTableViewDelegate.m b/MacPass/MPCustomFieldTableViewDelegate.m index 5b7bb308..e293e167 100644 --- a/MacPass/MPCustomFieldTableViewDelegate.m +++ b/MacPass/MPCustomFieldTableViewDelegate.m @@ -26,6 +26,12 @@ #import "HNHUi/HNHUi.h" #import "KeePassKit/KeePassKit.h" +NSInteger MPCustomFieldTagOffset = 50000; + +NSInteger MPCustomFieldIndexFromTag(NSInteger tag) { + return MAX(-1, tag - MPCustomFieldTagOffset); +} + @implementation MPCustomFieldTableViewDelegate @@ -73,12 +79,16 @@ options:@{NSConditionallySetsEditableBindingOption: @NO }]; } + view.valueTextField.tag = (MPCustomFieldTagOffset + row); + view.valueTextField.delegate = self.viewController; + view.removeButton.target = self.viewController; view.removeButton.action = @selector(removeCustomField:); view.removeButton.tag = row; view.observer = tableView.window.windowController.document; + return view; } diff --git a/MacPass/MPEntryInspectorViewController.m b/MacPass/MPEntryInspectorViewController.m index 9d20c626..915ab8e0 100644 --- a/MacPass/MPEntryInspectorViewController.m +++ b/MacPass/MPEntryInspectorViewController.m @@ -577,6 +577,12 @@ typedef NS_ENUM(NSUInteger, MPEntryTab) { else if(textField == self.titleTextField) { name = NSLocalizedString(@"TITLE", "Displayed name when title field was copied"); } + else { + NSInteger index = MPCustomFieldIndexFromTag(textField.tag); + if(index > -1) { + name = [_customFieldsController.arrangedObjects[index] key]; + } + } [[MPPasteBoardController defaultController] copyObjects:@[value] overlayInfo:info name:name atView:self.view]; return NO; }