From 413ea6b2bd3f48a08af19e9b19fe09ca53b7f7c4 Mon Sep 17 00:00:00 2001 From: tisfeng Date: Sun, 27 Oct 2024 11:40:03 +0800 Subject: [PATCH] refactor: improve cell type checks --- .../EZBaseQueryViewController.m | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Easydict/objc/ViewController/Window/BaseQueryWindow/EZBaseQueryViewController.m b/Easydict/objc/ViewController/Window/BaseQueryWindow/EZBaseQueryViewController.m index 7beba0ff3..5986ab2a9 100644 --- a/Easydict/objc/ViewController/Window/BaseQueryWindow/EZBaseQueryViewController.m +++ b/Easydict/objc/ViewController/Window/BaseQueryWindow/EZBaseQueryViewController.m @@ -892,7 +892,7 @@ - (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]; @@ -900,7 +900,7 @@ - (nullable NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(null 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]]; @@ -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] @@ -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]) { @@ -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]) { @@ -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