⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchwindowcontroller.mm

📁 lumaqq
💻 MM
📖 第 1 页 / 共 2 页
字号:
			break;	}	switch([m_pbClusterSearchMode indexOfSelectedItem]) {		case 0:			[m_tabSearchCluster selectTabViewItemWithIdentifier:_kTabViewItemByClusterID];			break;		case 1:			[m_tabSearchCluster selectTabViewItemWithIdentifier:_kTabViewItemByCategory];			break;	}}- (void)refreshTitleMessage {		// check identifier	id identifier = [[m_tabMain selectedTabViewItem] identifier];	if([kTabViewItemSearchWhat isEqual:identifier]) {		[m_txtTitle setStringValue:L(@"LQTitleSearchWhat", @"Search")];		[m_txtMessage setStringValue:L(@"LQMessageSearchWhat", @"Search")];	} else if([kTabViewItemSearchUser isEqual:identifier]) {		[m_txtTitle setStringValue:L(@"LQTitleSearchUser", @"Search")];		[m_txtMessage setStringValue:L(@"LQMessageSearchUser", @"Search")];	} else if([kTabViewItemSearchCluster isEqual:identifier]) {		[m_txtTitle setStringValue:L(@"LQTitleSearchCluster", @"Search")];		[m_txtMessage setStringValue:L(@"LQMessageSearchCluster", @"Search")];	}}- (void)refreshControls {	id identifier = [[m_tabMain selectedTabViewItem] identifier];	[m_btnBack setEnabled:(![kTabViewItemSearchWhat isEqual:identifier] && !m_operating)];	[m_btnNext setEnabled:(![kTabViewItemSearchUser isEqual:identifier] && ![kTabViewItemSearchCluster isEqual:identifier] && !m_operating)];	[m_btnFinished setEnabled:([kTabViewItemSearchUser isEqual:identifier] || [kTabViewItemSearchCluster isEqual:identifier] && !m_operating)];	[m_btnNextUserPage setEnabled:(m_nextPage > 0 && !m_operating)];	[m_btnPrevUserPage setEnabled:(m_nextPage > 1 && !m_operating)];	[m_btnNextClusterPage setEnabled:(m_nextPage > 0 && !m_operating)];	[m_btnPrevClusterPage setEnabled:(m_nextPage > 1 && !m_operating)];	[m_btnViewUserInfo setEnabled:([m_userTable selectedRow] != -1)];	[m_btnViewClusterInfo setEnabled:([m_clusterTable selectedRow] != -1)];	[m_btnViewCreatorInfo setEnabled:([m_clusterTable selectedRow] != -1)];	[m_btnAddFriend setEnabled:([m_userTable selectedRow] != -1)];	[m_btnJoinCluster setEnabled:([m_clusterTable selectedRow] != -1)];}- (void)showErrorMessage:(NSString*)error {	[AlertTool showWarning:[self window] message:error];}- (void)goToNextPage {	id identifier = [[m_tabMain selectedTabViewItem] identifier];	if([kTabViewItemSearchWhat isEqual:identifier]) {		if([m_matrixSearchWhat selectedRow] == 0)			[m_tabMain selectTabViewItemWithIdentifier:kTabViewItemSearchUser];		else			[m_tabMain selectTabViewItemWithIdentifier:kTabViewItemSearchCluster];	} else if([kTabViewItemSearchUser isEqual:identifier]) {	} else if([kTabViewItemSearchCluster isEqual:identifier]) {	}		// refresh title and message	[self refreshTitleMessage];	[self refreshControls];}- (void)gotoPreviousPage {	id identifier = [[m_tabMain selectedTabViewItem] identifier];	if([kTabViewItemSearchWhat isEqual:identifier]) {	} else if([kTabViewItemSearchUser isEqual:identifier]) {		[m_tabMain selectTabViewItemWithIdentifier:kTabViewItemSearchWhat];	} else if([kTabViewItemSearchCluster isEqual:identifier]) {		[m_tabMain selectTabViewItemWithIdentifier:kTabViewItemSearchWhat];	}		// refresh title and message	[self refreshTitleMessage];	[self refreshControls];}- (NSString*)canNext {	id identifier = [[m_tabMain selectedTabViewItem] identifier];	if([kTabViewItemSearchUser isEqual:identifier]) {		if([m_userTable selectedRow] == -1)			return L(@"LQWarningSelectUser", @"Search");	} else if([kTabViewItemSearchCluster isEqual:identifier]) {		if([m_clusterTable selectedRow] == -1)			return L(@"LQWarningSelectCluster", @"Search");	} 		return nil;}- (NSString*)canSearch {	id identifier = [[m_tabMain selectedTabViewItem] identifier];	if([kTabViewItemSearchWhat isEqual:identifier]) {		return nil;	} else if([kTabViewItemSearchUser isEqual:identifier]) {		switch([m_pbUserSearchMode indexOfSelectedItem]) {			case 1:				// all empty				if([[m_txtQQ stringValue] isEmpty] &&				   [[m_txtNick stringValue] isEmpty])					return L(@"LQWarningAllEmpty", @"Search");								// check qq format				if(![[m_txtQQ stringValue] isEmpty]) {					UInt32 QQ = [[m_txtQQ stringValue] intValue];					if(QQ < 10001)						return L(@"LQWarningInvalidQQ", @"Search");				}									return nil;			default:				return nil;		}	} else if([kTabViewItemSearchCluster isEqual:identifier]) {		switch([m_pbClusterSearchMode indexOfSelectedItem]) {			case 0:				if([[m_txtClusterId stringValue] intValue] == 0)					return L(@"LQWarningInvalidClusterId", @"Search");			default:				return nil;		}	} else		return nil;}- (void)startHint:(NSString*)hint {	[m_piBusy setHidden:NO];	[m_piBusy startAnimation:self];	[m_txtHint setStringValue:hint];}- (void)stopHint {	[m_piBusy setHidden:YES];	[m_piBusy stopAnimation:self];	[m_txtHint setStringValue:kStringEmpty];}- (void)onUserTableDoubleClick {	[self onViewUserInfo:self];}- (void)onClusterTableDoubleClick {	[self onViewClusterInfo:self];}#pragma mark -#pragma mark getter and setter- (void)setInitialIdentifier:(NSString*)identifier {	[identifier retain];	[m_initialItemIdentifier release];	m_initialItemIdentifier = identifier;}#pragma mark -#pragma mark qq event handler- (BOOL)handleQQEvent:(QQNotification*)event {	BOOL ret = NO;		// check sequence	Packet* packet = (Packet*)[event object];	if([packet sequence] != m_waitingSequence)		return ret;		switch([event eventId]) {		case kQQEventSearchUserOK:			ret = [self handleSearchUserOK:event];			break;		case kQQEventSearchUserFailed:			ret = [self handleSearchUserFailed:event];			break;		case kQQEventAdvancedSearchUserOK:			ret = [self handleAdvancedSearchUserOK:event];			break;		case kQQEventAdvancedSearchUserFailed:			ret = [self handleAdvancedSearchUserFailed:event];			break;		case kQQEventClusterSearchOK:			ret = [self handleSearchClusterOK:event];			break;		case kQQEventClusterSearchFailed:			ret = [self handleSearchClusterFailed:event];			break;		case kQQEventTimeoutBasic:			ret = [self handleTimeOut:event];			break;	}	return ret;}- (BOOL)handleSearchUserOK:(QQNotification*)event {	if(!m_operating)		return NO;		SearchUserPacket* packet = (SearchUserPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				SearchUserReplyPacket* reply = (SearchUserReplyPacket*)[event object];		[m_userCache addObject:[reply searchedUsers]];		[self showUserPage:(m_nextPage - 1)];		[m_txtUserPage setStringValue:[NSString stringWithFormat:@"Page %u", m_nextPage]];	}		return NO;}- (BOOL)handleSearchUserFailed:(QQNotification*)event {	if(!m_operating)		return NO;		SearchUserPacket* packet = (SearchUserPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				[self showErrorMessage:L(@"LQWarningSearchUserFailed", @"Search")];	}		return NO;}- (BOOL)handleAdvancedSearchUserOK:(QQNotification*)event {	if(!m_operating)		return NO;		AdvancedSearchUserPacket* packet = (AdvancedSearchUserPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				AdvancedSearchUserReplyPacket* reply = (AdvancedSearchUserReplyPacket*)[event object];		[m_userCache addObject:[reply searchedUsers]];		[self showUserPage:(m_nextPage - 1)];		[m_txtUserPage setStringValue:[NSString stringWithFormat:@"Page %u", m_nextPage]];	}		return NO;}- (BOOL)handleAdvancedSearchUserFailed:(QQNotification*)event {	if(!m_operating)		return NO;		AdvancedSearchUserPacket* packet = (AdvancedSearchUserPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				[self showErrorMessage:L(@"LQWarningSearchUserFailed", @"Search")];	}		return NO;}- (BOOL)handleTimeOut:(QQNotification*)event {	OutPacket* packet = (OutPacket*)[event outPacket];		switch([packet command]) {		case kQQCommandSearch:		case kQQCommandAdvancedSearch:			// refresh ui			m_operating = NO;			[self stopHint];			[self refreshControls];						[self showErrorMessage:L(@"LQWarningSearchTimeout", @"Search")];			break;		case kQQCommandCluster:			switch([(ClusterCommandPacket*)packet subCommand]) {				case kQQSubCommandClusterSearch:					// refresh ui					m_operating = NO;					[self stopHint];					[self refreshControls];										[self showErrorMessage:L(@"LQWarningSearchTimeout", @"Search")];					break;			}	}		return NO;}- (BOOL)handleSearchClusterOK:(QQNotification*)event {	if(!m_operating)		return NO;		ClusterSearchPacket* packet = (ClusterSearchPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				ClusterCommandReplyPacket* reply = (ClusterCommandReplyPacket*)[event object];		[m_clusterCache addObject:[reply infos]];		[m_clusterDataSource setClusters:[reply infos]];		[m_clusterTable reloadData];	}		return NO;}- (BOOL)handleSearchClusterFailed:(QQNotification*)event {	if(!m_operating)		return NO;		ClusterCommandPacket* packet = (ClusterCommandPacket*)[event outPacket];	if([[packet user] QQ] == [[m_mainWindowController me] QQ]) {		// refresh ui		m_operating = NO;		[self stopHint];		[self refreshControls];				ClusterCommandReplyPacket* reply = (ClusterCommandReplyPacket*)[event object];		if([reply errorMessage])			[self showErrorMessage:[reply errorMessage]];		else			[self showErrorMessage:L(@"LQWarningSearchClusterFailed", @"Search")];	}		return NO;}#pragma mark -#pragma mark combobox data source- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(int)index {	if(index == 0)		return L(@"LQAny");	else if(aComboBox == m_cbAge)		return AGE(index);	else if(aComboBox == m_cbGender)		return GENDER(index);	else if(aComboBox == m_cbProvince)		return PROVINCE(index);	else if(aComboBox == m_cbCity) {		int province = [m_cbProvince indexOfSelectedItem];		return CITY(province, index);	} else		return kStringEmpty;}- (int)numberOfItemsInComboBox:(NSComboBox *)aComboBox {	if(aComboBox == m_cbAge)		return AGECOUNT + 1;	else if(aComboBox == m_cbGender)		return GENDERCOUNT + 1;	else if(aComboBox == m_cbProvince)		return PROVINCECOUNT + 1;	else if(aComboBox == m_cbCity) {		int province = [m_cbProvince indexOfSelectedItem];		if(province == 0)			return 1;		else			return CITYCOUNT(province) + 1;	} else		return 0;}#pragma mark -#pragma mark combobox delegate- (void)comboBoxSelectionDidChange:(NSNotification *)notification {	NSComboBox* comboBox = [notification object];	if(comboBox == m_cbProvince) {		[m_cbCity reloadData];		[m_cbCity selectItemAtIndex:0];	}}#pragma mark -#pragma mark tableview delegate- (void)tableViewSelectionDidChange:(NSNotification *)aNotification {	[self refreshControls];}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -