Skip to content

Commit

Permalink
refactor: improve cell type checks
Browse files Browse the repository at this point in the history
  • Loading branch information
tisfeng committed Oct 27, 2024
1 parent e7ecc0f commit 413ea6b
Showing 1 changed file with 19 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -892,15 +892,15 @@ - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
- (nullable NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row {
// MMLogInfo(@"tableView for row: %ld", row);

if (row == self.inputFieldCellIndex && self.isInputFieldCellVisible) {
if ([self isInputFieldCellAtRow:row]) {
self.queryView = [self createQueryView];
self.queryView.associatedWindowType = self.windowType;
[self.queryView initializeAimatedButtonAlphaValue:self.queryModel];
self.queryView.queryModel = self.queryModel;
return self.queryView;
}

if (row == self.selectLanguageCellIndex && self.isSelectLanguageCellVisible) {
if ([self isSelectLanguageCellAtRow:row]) {
EZSelectLanguageCell *selectLanguageCell = [self.tableView makeViewWithIdentifier:EZSelectLanguageCellId owner:self];
if (!selectLanguageCell) {
selectLanguageCell = [[EZSelectLanguageCell alloc] initWithFrame:[self tableViewContentBounds]];
Expand All @@ -921,7 +921,7 @@ - (nullable NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(null
}

// show tips view
if (row == self.tipsCellIndex && self.isTipsViewVisible) {
if ([self isTipsViewAtRow:row]) {
EZTableTipsCell *tipsCell = [self.tableView makeViewWithIdentifier:EZTableTipsCellId owner:self];
if (!tipsCell) {
tipsCell = [[EZTableTipsCell alloc] initWithFrame:[self tableViewContentBounds]
Expand All @@ -946,11 +946,11 @@ - (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row {
CGFloat height;

if (row == self.inputFieldCellIndex && self.isInputFieldCellVisible) {
if ([self isInputFieldCellAtRow:row]) {
height = self.queryModel.queryViewHeight;
} else if (row == self.selectLanguageCellIndex && self.isSelectLanguageCellVisible) {
} else if ([self isSelectLanguageCellAtRow:row]) {
height = 35;
} else if (row == self.tipsCellIndex && self.isTipsViewVisible) {
} else if ([self isTipsViewAtRow:row]) {
if (!self.tipsCell) {
// mini cell height
if ([self isCustomTipsType]) {
Expand Down Expand Up @@ -1199,7 +1199,7 @@ - (void)updateService:(NSString *)serviceTypeWithUniqueIdentifier autoQuery:(BOO
return;
}

EZQueryService *updatedService = [EZLocalStorage.shared service:service.serviceTypeWithUniqueIdentifier windowType:self.windowType];
EZQueryService *updatedService = [EZLocalStorage.shared service:serviceTypeWithUniqueIdentifier windowType:self.windowType];

// For some strange reason, the old service can not be deallocated, this will cause a memory leak, and we also need to cancel old services subscribers.
if ([service isKindOfClass:EZLLMStreamService.class]) {
Expand Down Expand Up @@ -1713,4 +1713,16 @@ - (BOOL)isCustomTipsType {
self.tipsCellType == EZTipsCellTypeWarnTips;
}

- (BOOL)isInputFieldCellAtRow:(NSInteger)row {
return row == self.inputFieldCellIndex && self.isInputFieldCellVisible;
}

- (BOOL)isSelectLanguageCellAtRow:(NSInteger)row {
return row == self.selectLanguageCellIndex && self.isSelectLanguageCellVisible;
}

- (BOOL)isTipsViewAtRow:(NSInteger)row {
return row == self.tipsCellIndex && self.isTipsViewVisible;
}

@end

0 comments on commit 413ea6b

Please sign in to comment.