diff --git a/MacPass/MPEntryViewController.h b/MacPass/MPEntryViewController.h index 6e9b6fe6..a87446d6 100644 --- a/MacPass/MPEntryViewController.h +++ b/MacPass/MPEntryViewController.h @@ -46,4 +46,8 @@ typedef NS_ENUM( NSUInteger, MPCopyContentTypeTag) { - (void)copyURL:(id)sender; - (void)openURL:(id)sender; +/* Settings migration */ ++ (NSString *)timeInfoModificationTimeKeyPath; + @end + diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index a3d1ac21..0c41e22f 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -93,6 +93,14 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; @implementation MPEntryViewController ++ (NSString *)timeInfoModificationTimeKeyPath { + static NSString *timeInfoModificationTimeKeyPath; + if(nil == timeInfoModificationTimeKeyPath) { + timeInfoModificationTimeKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(timeInfo)), NSStringFromSelector(@selector(lastModificationTime))]; + } + return timeInfoModificationTimeKeyPath; +} + - (NSString *)nibName { return @"EntryView"; } @@ -158,12 +166,11 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; [self.entryTable setAutosaveTableColumns:YES]; NSString *parentNameKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(parent)), NSStringFromSelector(@selector(name))]; - NSString *timeInfoModificationTimeKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(timeInfo)), NSStringFromSelector(@selector(lastModificationTime))]; NSSortDescriptor *titleColumSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(title))ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; NSSortDescriptor *userNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(username)) ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; NSSortDescriptor *urlSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(url)) ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; NSSortDescriptor *groupnameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:parentNameKeyPath ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; - NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:timeInfoModificationTimeKeyPath ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; + NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:[MPEntryViewController timeInfoModificationTimeKeyPath] ascending:YES selector:@selector(compare:)]; [titleColumn setSortDescriptorPrototype:titleColumSortDescriptor]; [userNameColumn setSortDescriptorPrototype:userNameSortDescriptor]; diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index 45b12f9e..0c54315b 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -8,6 +8,7 @@ #import "MPSettingsHelper.h" #import "NSString+MPPasswordCreation.h" +#import "MPEntryViewController.h" // Sort descriptors NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout"; NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit"; @@ -141,8 +142,9 @@ NSString *const kMPDeprecatedSettingsKeyDoubleClickURLToLaunch = @"Do return; // No user defaults } NSArray *sortDescriptors = [NSUnarchiver unarchiveObjectWithData:descriptorData]; + for(NSSortDescriptor *descriptor in sortDescriptors) { - if([descriptor selector] == @selector(compare:)) { + if([descriptor selector] == @selector(compare:) || [[descriptor key] isEqualToString:[MPEntryViewController timeInfoModificationTimeKeyPath]] ) { [[NSUserDefaults standardUserDefaults] removeObjectForKey:kMPSettingsKeyEntryTableSortDescriptors]; break; }