Skip to content

Commit

Permalink
#2732: Fix table information panel stuck on activities view.
Browse files Browse the repository at this point in the history
  • Loading branch information
stuconnolly committed Mar 15, 2017
1 parent 95250e0 commit 8222c8f
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 37 deletions.
17 changes: 9 additions & 8 deletions Source/SPDatabaseDocument.m
Original file line number Diff line number Diff line change
Expand Up @@ -5794,7 +5794,7 @@ - (void)handleSchemeCommand:(NSDictionary*)commandDict
);
}

- (void)registerActivity:(NSDictionary*)commandDict
- (void)registerActivity:(NSDictionary *)commandDict
{
[runningActivitiesArray addObject:commandDict];
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:self];
Expand Down Expand Up @@ -5832,23 +5832,24 @@ - (void)removeRegisteredActivity:(NSInteger)pid
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:self];
}

- (void)setActivityPaneHidden:(NSNumber*)hide
- (void)setActivityPaneHidden:(NSNumber *)hide
{
if(hide.boolValue) {
[tableInfoScrollView setHidden:YES];
[documentActivityScrollView setHidden:NO];
} else {
if (hide.boolValue) {
[documentActivityScrollView setHidden:YES];
[tableInfoScrollView setHidden:NO];
}
else {
[tableInfoScrollView setHidden:YES];
[documentActivityScrollView setHidden:NO];
}
}

- (NSArray*)runningActivities
- (NSArray *)runningActivities
{
return (NSArray*)runningActivitiesArray;
}

- (NSDictionary*)shellVariables
- (NSDictionary *)shellVariables
{

if(!_isConnected) return @{};
Expand Down
15 changes: 10 additions & 5 deletions Source/SPTableInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,19 @@
//
// More info at <https://github.com/sequelpro/sequelpro>

@class SPTableView;
@class SPTablesList;
@class SPTableData;
@class SPDatabaseDocument;

@interface SPTableInfo : NSObject
{
IBOutlet NSTableView *infoTable;
IBOutlet id tableList;
IBOutlet id tableListInstance;
IBOutlet id tableDataInstance;
IBOutlet id tableDocumentInstance;
IBOutlet SPTableView *tableList;
IBOutlet SPTablesList *tableListInstance;
IBOutlet SPTableData *tableDataInstance;
IBOutlet SPDatabaseDocument *tableDocumentInstance;

IBOutlet NSTableView *infoTable;
IBOutlet NSTableView *activitiesTable;
IBOutlet NSScrollView *tableInfoScrollView;

Expand Down
53 changes: 29 additions & 24 deletions Source/SPTableInfo.m
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,20 @@ - (id)init
- (void)awakeFromNib
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableChanged:)
name:SPTableChangedNotification
object:tableDocumentInstance];
selector:@selector(tableChanged:)
name:SPTableChangedNotification
object:tableDocumentInstance];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableChanged:)
name:SPTableInfoChangedNotification
object:tableDocumentInstance];
selector:@selector(tableChanged:)
name:SPTableInfoChangedNotification
object:tableDocumentInstance];

// Register activities update notifications for add/remove BASH commands etc.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateActivities)
name:SPActivitiesUpdateNotification
object:nil];
selector:@selector(updateActivities)
name:SPActivitiesUpdateNotification
object:nil];

// Add activities header
[activities addObject:@{@"name" : NSLocalizedString(@"ACTIVITIES", @"header for activities pane")}];
Expand Down Expand Up @@ -147,6 +148,7 @@ - (void)tableChanged:(NSNotification *)notification
}

[infoTable reloadData];

return;
}

Expand Down Expand Up @@ -195,8 +197,10 @@ - (void)tableChanged:(NSNotification *)notification
if([[tableStatus objectForKey:@"Data_length"] unboxNull]) {
[info addObject:[NSString stringWithFormat:NSLocalizedString(@"size: %@", @"Table Info Section : table size on disk"), [NSString stringForByteSize:[[tableStatus objectForKey:@"Data_length"] longLongValue]]]];
}

NSString *tableEnc = [tableDataInstance tableEncoding];
NSString *tableColl = [tableStatus objectForKey:@"Collation"];

if([tableColl length]) {
// instead of @"latin1 (latin1_german_ci)" we can just show @"latin1 (german_ci)"
if([tableColl hasPrefix:[NSString stringWithFormat:@"%@_",tableEnc]]) tableColl = [tableColl substringFromIndex:([tableEnc length]+1)];
Expand Down Expand Up @@ -382,11 +386,11 @@ - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
return (row == 0 ? 25 : [tableView rowHeight]);
}

- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex
{
if (rowIndex == 0) return YES;

if (aTableView == infoTable) {
if (tableView == infoTable) {
return NO;
}
else {
Expand All @@ -396,7 +400,7 @@ - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex
return NO;
}

- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex
{
if (rowIndex > 0) return NO;

Expand All @@ -411,14 +415,15 @@ - (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn

[infoTable deselectAll:nil];
[activitiesTable deselectAll:nil];

[self updateActivities];

return NO;
}

- (NSString *)tableView:(NSTableView *)aTableView toolTipForCell:(NSCell *)aCell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex mouseLocation:(NSPoint)mouseLocation
- (NSString *)tableView:(NSTableView *)tableView toolTipForCell:(NSCell *)cell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex mouseLocation:(NSPoint)mouseLocation
{
if (aTableView == activitiesTable) {
if (tableView == activitiesTable) {
if (rowIndex == 0) return @"";

if (mouseLocation.x > rect->origin.x + rect->size.width - 30) {
Expand All @@ -437,23 +442,23 @@ - (NSString *)tableView:(NSTableView *)aTableView toolTipForCell:(NSCell *)aCell
return nil;
}

- (BOOL)tableView:(NSTableView *)aTableView isGroupRow:(NSInteger)row
- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row
{
// This makes the top row (TABLE INFORMATION/ACTIVITIES) have the diff styling
return (row == 0);
return row == 0;
}

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex
{
if (aTableView == infoTable) {
if (rowIndex > 0 && [[aTableColumn identifier] isEqualToString:@"info"]) {
[(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"table-property"]];
[(ImageAndTextCell*)aCell setIndentationLevel:1];
[(ImageAndTextCell*)aCell setDrawsBackground:NO];
if (tableView == infoTable) {
if (rowIndex > 0 && [[tableColumn identifier] isEqualToString:@"info"]) {
[(ImageAndTextCell*)cell setImage:[NSImage imageNamed:@"table-property"]];
[(ImageAndTextCell*)cell setIndentationLevel:1];
[(ImageAndTextCell*)cell setDrawsBackground:NO];
}
else {
[(ImageAndTextCell*)aCell setImage:nil];
[(ImageAndTextCell*)aCell setIndentationLevel:0];
[(ImageAndTextCell*)cell setImage:nil];
[(ImageAndTextCell*)cell setIndentationLevel:0];
}
}
}
Expand Down

0 comments on commit 8222c8f

Please sign in to comment.