From 6ed82d8f15a121eb2646078d1080b902fefbdd77 Mon Sep 17 00:00:00 2001 From: Michael Starke Date: Tue, 11 Sep 2018 17:00:08 +0200 Subject: [PATCH] Pinned Group and Index columns. Disabled reordering of those two columns --- MacPass/MPEntryViewController.m | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index fb6a8d21..df4bdf86 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -204,7 +204,16 @@ NSString *const _MPTableSecurCellView = @"PasswordCell"; options:@{ NSValueTransformerNameBindingOption: NSUnarchiveFromDataTransformerName }]; [self _setupHeaderMenu]; + /* Move index and parent column to dedicated places if it was moved by the user before */ parentColumn.hidden = YES; + NSUInteger indexIndex = [self.entryTable columnWithIdentifier:MPEntryTableIndexColumnIdentifier]; + if(indexIndex != 0) { + [self.entryTable moveColumn:indexIndex toColumn:0]; + } + NSUInteger parentIndex = [self.entryTable columnWithIdentifier:MPEntryTableParentColumnIdentifier]; + if(parentIndex != 1) { + [self.entryTable moveColumn:parentIndex toColumn:1]; + } } - (NSResponder *)reconmendedFirstResponder { @@ -376,6 +385,18 @@ NSString *const _MPTableSecurCellView = @"PasswordCell"; document.selectedEntries = self.entryArrayController.selectedObjects; } +- (BOOL)tableView:(NSTableView *)tableView shouldReorderColumn:(NSInteger)columnIndex toColumn:(NSInteger)newColumnIndex { + NSTableColumn *column = tableView.tableColumns[columnIndex]; + /* Do not allow to set as first column */ + + if(newColumnIndex == 1 || newColumnIndex == 0) { + return NO; + } + BOOL isParentColumn = [column.identifier isEqualToString:MPEntryTableParentColumnIdentifier]; + BOOL isIndexColumn = [column.identifier isEqualToString:MPEntryTableIndexColumnIdentifier]; + return !(isParentColumn || isIndexColumn); +} + #pragma mark MPTargetItemResolving - (NSArray *)currentTargetEntries { NSInteger activeRow = self.entryTable.clickedRow;