Skip to content

Commit

Permalink
#53 new feature have been implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
jeevatkm committed May 26, 2014
1 parent 606b0fb commit cef555c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 28 deletions.
5 changes: 3 additions & 2 deletions ReplyWithHeader/MHMailMessage.m
Expand Up @@ -87,9 +87,10 @@ - (id)MHsignatureId
NSString *sKey = [NSString stringWithFormat:@"MH-S-%@", uniqueId];
NSString *signatureId = GET_DEFAULT(sKey);

MHLog(@"Account ID: %@ Signature ID: %@", sKey, signatureId);
MHLog(@"Account ID: %@, Name: %@, Signature ID: %@", sKey, [[self account] valueForKey:@"displayName"], signatureId);

if (signatureId == nil) {
if (nil == signatureId)
{
return [self MHsignatureId];
}

Expand Down
57 changes: 31 additions & 26 deletions ReplyWithHeader/MHPreferences.m
Expand Up @@ -247,45 +247,55 @@ - (void)loadSignatures

- (NSString*)integerToString:(NSInteger)key
{
return [[NSString stringWithFormat: @"%d", (int)key] copy];
return [NSString stringWithFormat: @"%d", (int)key];
}

- (void)selectRFSignatureForAccount:(NSInteger)key
{
NSString *accountUniqueId = [[(MHSignature*)[signaturesData objectForKey:[self integerToString:accountIndex]] uniqueId] copy];
MHSignature *account = (MHSignature*)[signaturesData objectForKey:[self integerToString:accountIndex]];
NSString *aui = [[account uniqueId] copy];
NSString *sui = [[(MHSignature*)[[account values] objectForKey:[self integerToString:key]] uniqueId] copy];

NSString *signatureUniqueId = [[(MHSignature*)[[(MHSignature*)[signaturesData objectForKey:[self integerToString:accountIndex]] values] objectForKey:[self integerToString:key]] uniqueId] copy];
NSString *sKey = [NSString stringWithFormat:@"MH-S-%@", aui];
SET_USER_DEFAULT(sui, sKey);

MHLog(@"Mail account mapping: %@ <==> %@", accountUniqueId, signatureUniqueId);

NSString *sKey = [NSString stringWithFormat:@"MH-S-%@", accountUniqueId];
SET_USER_DEFAULT(signatureUniqueId, sKey);
NSLog(@"RWH: Signature mapping for account [%@, %@]: %@", [account name], aui, sui);
}

- (NSInteger)findSignatureIndex:(NSInteger)aIndex sKey:(NSString *)sKey
- (void)highlightSignatureRow
{
NSInteger count = 0;
MHSignature *account = (MHSignature*)[signaturesData objectForKey:[self integerToString:accountIndex]];
NSString *sKey = [NSString stringWithFormat:@"MH-S-%@", [[account uniqueId] copy]];

NSString *signatureId = GET_DEFAULT(sKey);
NSLog(@"key: %@, signature id: %@", sKey, signatureId);
NSLog(@"Account [%@, %@]: %@", [account name], sKey, signatureId);

if (nil != signatureId)
if (nil == signatureId)
{
NSMutableDictionary *dict = [(MHSignature*)[signaturesData objectForKey:[self integerToString:aIndex]] values];
NSLog(@"RWH: Signature mapping doesn't exist");

for (id k in dict)
for (int ic=0; ic<[[[account values] allKeys] count]; ic++) {
[_signaturesTableView deselectRow:ic];
}
}
else
{
MHLog(@"Account Signatures: %@", [account values]);

for (id k in [account values])
{
//NSLog(@"Inner:: key: %@, signature id: %@", sKey, [(MHSignature*)[dict objectForKey:k] uniqueId]);
if ([[(MHSignature*)[dict objectForKey:k] uniqueId] isEqualToString:signatureId]) break;

count++;
if ([[(MHSignature*)[[account values] objectForKey:k] uniqueId] isEqualToString:signatureId])
{
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:[(NSString*)k integerValue]];
[_signaturesTableView selectRowIndexes:indexSet byExtendingSelection:NO];

break;
}
}
}

return count;
}



#pragma mark NSTableView datasource delegates

// Provides no of rows in the table
Expand Down Expand Up @@ -338,12 +348,7 @@ - (NSIndexSet *)tableView:(NSTableView *)tableView selectionIndexesForProposedSe
accountIndex = [proposedSelectionIndexes firstIndex];
[_signaturesTableView reloadData];

// row selection
NSString *sKey = [NSString stringWithFormat:@"MH-S-%@", [[(MHSignature*)[signaturesData objectForKey:[self integerToString:accountIndex]] uniqueId] copy]];

NSIndexSet *indexSet = [NSIndexSet
indexSetWithIndex:[self findSignatureIndex:accountIndex sKey:sKey]];
[_signaturesTableView selectRowIndexes:indexSet byExtendingSelection:NO];
[self highlightSignatureRow];
}
else if ([[tableView identifier] isEqualToString:@"signaturesTable"])
{
Expand Down

0 comments on commit cef555c

Please sign in to comment.