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

📄 evasearchwindow.cpp

📁 linux下的eva源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			case B_CUSTOM:{				m_Id = leQQNum->text().stripWhiteSpace();				m_Nick = leNickName->text().stripWhiteSpace();				//m_Email = leEmail->text().stripWhiteSpace();				processBasicSearch(false, m_Id, m_Nick, m_Email);				}				break;			case B_FRDCENTER:{				QStringList args;				args<<"exec"<< "http://love.qq.com/";				kapp->kdeinitExec("kfmclient",args);				}				break;			}		}else{			//we are now on the search result page, click the button means send a auth request message			//to selected user. the auth dialog should called here			if(m_SelectedBasicUser.getQQ() == 0){				KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("Please select a user."),				i18n("Eva - Search/Add"));				return;			}			EvaMain::g_AddingManager->slotAddBuddy(m_SelectedBasicUser.getQQ(),								codec->toUnicode(m_SelectedBasicUser.getNick().c_str()),								m_SelectedBasicUser.getFace());			close();		}		break;			case 1:		if(!strcmp(wsAdvancedSearch->visibleWidget()->name(),"wsASPage")){			m_OnlineUser = chbOnlineUsers->isChecked();			m_HasCam = chbHaveCamera->isChecked();			m_ProvinceIndex = cbASProvince->currentItem();			m_CityIndex = cbASCity->currentItem();			m_AgeIndex = cbASAge->currentItem();			m_GenderIndex = cbASSex->currentItem(); 			processAdvancedSearch(m_OnlineUser, m_HasCam, m_ProvinceIndex, m_CityIndex, m_AgeIndex, m_GenderIndex);		}else{			//we are now on the advanced search result page, click the button means send a auth request//message to selected user. the auth dialog should called here			if(m_SelectedAdvancedUser.getQQ() == 0){				KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("Please select a user."),				i18n("Eva - Search/Add"));				return;			}			EvaMain::g_AddingManager->slotAddBuddy(m_SelectedAdvancedUser.getQQ(),								codec->toUnicode(m_SelectedAdvancedUser.getNick().c_str()),								m_SelectedAdvancedUser.getFace());			close();		}		break;	case 2:		if(!strcmp(wsQunSearch->visibleWidget()->name(),"wsQSPage")){			//the same to above			switch(m_QSearchType){				case Q_ALUMNI:{					QStringList args;					args<<"exec"<< "http://school.qq.com/";					kapp->kdeinitExec("kfmclient",args);					}					break;				case Q_CATEGORY:{					QStringList args;					args << "exec" << "http://jump.qq.com/clienturl_simp_18";					kapp->kdeinitExec("kfmclient",args);					//QString url = "http://group.qq.com/cgi-bin/group_classify?catalog="+QString::number(getCategoryCode()); 					//KRun::runCommand("konqueror \""+url+"\"");					}					break;				case Q_ACCURATE:{					m_QunNum = leQunNum->text().stripWhiteSpace();					processQunSearch(m_QunNum);					}					break;			}		}else{			//the same to above			//we are now on the search result page, click the button means send a auth request message			//to selected user. the auth dialog should called here			if(m_SelectedQun.getQunID() == 0){				KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("Please select a Qun."),				i18n("Eva - Search/Add"));				return;			}			//emit requestJoinQun(m_SelectedQun);			EvaMain::g_AddingManager->slotAddQun(m_SelectedQun);			close();		}		break;	}	}void EvaSearchWindow::processBasicSearch(const bool isSearchAll, const QString id, const QString nick, const QString email){	tbBSPrev->setEnabled(false);	tbBSNext->setEnabled(false);	tbBSDetails->setEnabled(false);	tbBSAll->setEnabled(false);	lblBSResultTip->setText(i18n("Eva is searching users for you..."));		m_BCurrentPage = 0;	m_ShowAllBasicUsers = false;	m_BasicUserPages.clear();//clear because click here aways means re-search	m_SelectedBasicUser.setQQ(0);	tbBSResult->setNumRows(0);		//clear the result	for(int row=0; row<tbBSResult->numRows(); row++){		for(int col=0; col<tbBSResult->numCols(); col++){			tbBSResult->clearCell(row, col);		}	}		if(isSearchAll){		pbSearch->setText(i18n("Add Buddy"));		pbLastStep->setHidden(false);		wsBasicSearch->raiseWidget(1);		emit requestSearchUsers(true, "0", "", "", "", false);//request the first page of online users 	}	else{		if(id.isEmpty() && nick.isEmpty() && email.isEmpty()){			KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("Search conditions can not be empty."),				i18n("Eva - Search/Add"));			leQQNum->setFocus();			return;		}				bool ok;		m_Id.toInt(&ok);		if(!ok && !m_Id.isEmpty()){			KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("QQ number is incorrect."),				i18n("Eva - Search/Add"));			leQQNum->setFocus();			return;		}				pbSearch->setText(i18n("Add Buddy"));		pbLastStep->setHidden(false);		wsBasicSearch->raiseWidget(1);		emit requestSearchUsers(false, "0", id, nick, email, true);//request the first page of  precise online users	}	}void EvaSearchWindow::slotPbLastStepClicked(){	//there's no need to find which page we are, because the"last step" button is only on the search result page	switch(twSearchMain->currentPageIndex()){	case 0://basic search		switch(m_BSearchType){		case B_ONLINE:{				pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);			wsBasicSearch->raiseWidget(0);			}			break;		case B_CUSTOM:{			pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);			wsBasicSearch->raiseWidget(0);			}			break;		case B_FRDCENTER:{			}			break;		}		break;			case 1://advance search		pbSearch->setText(i18n("Search"));		pbLastStep->setHidden(true);		wsAdvancedSearch->raiseWidget(0);		break;	case 2://qun search		switch(m_QSearchType){		case Q_ALUMNI:{			}			break;		case Q_CATEGORY:{			}			break;		case Q_ACCURATE:{			pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);			wsQunSearch->raiseWidget(0);			}			break;		}		break;	}}void EvaSearchWindow::slotCurrentChanged(QWidget* wCurrentPage){	if(!strcmp(wCurrentPage->name(), "tabBasicSearch")){				if(!strcmp(wsBasicSearch->visibleWidget()->name(),"wsBSPage")){			pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);			}		else{			pbSearch->setText(i18n("Add Buddy"));			pbLastStep->setHidden(false);			}				}	if(!strcmp(wCurrentPage->name(), "tabAdvancedSearch")){		if(!strcmp(wsAdvancedSearch->visibleWidget()->name(),"wsASPage")){			pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);		}		else{			pbSearch->setText(i18n("Add Buddy"));			pbLastStep->setHidden(false);			}	}	if(!strcmp(wCurrentPage->name(), "tabQunSearch")){		if(!strcmp(wsQunSearch->visibleWidget()->name(),"wsQSPage")){			pbSearch->setText(i18n("Search"));			pbLastStep->setHidden(true);		}		else{			pbSearch->setText(i18n("Join Qun"));			pbLastStep->setHidden(false);			}	}}void EvaSearchWindow::slotSearchUsersReady(const bool finished, const std::list<OnlineUser> list){	lblBSResultTip->setText(i18n("the following users are found for you by Eva."));		std::map<int, std::list<OnlineUser> >::iterator iter = m_BasicUserPages.find(m_BCurrentPage);	if( iter != m_BasicUserPages.end()) return ;		m_BasicUserPages[m_BCurrentPage] = list;	m_BSearchFinished = finished;			displayBasicUsers();}void EvaSearchWindow::displayBasicUsers(){	//clear the reuslt table of basic search	for(int row=0; row<tbBSResult->numRows(); row++){		for(int col=0; col<tbBSResult->numCols(); col++){			tbBSResult->clearCell(row, col);		}	}	tbBSResult->setNumRows(0);		int start=0, end=1;		if(m_ShowAllBasicUsers){		end = m_BasicUserPages.size();	}else{		start = m_BCurrentPage;		end = start+1;	}	std::list<OnlineUser>::iterator iter;	QTextCodec *codec = QTextCodec::codecForName("GB18030");	for(int i=start; i<end; i++){		for(iter = m_BasicUserPages[i].begin(); iter!=m_BasicUserPages[i].end(); ++iter){			tbBSResult->setNumRows(tbBSResult->numRows()+1);			QImage img = images->getFace(images->getFaceFileIndex(iter->getFace()),true)->convertToImage();			tbBSResult->setPixmap(tbBSResult->numRows()-1, 0, QPixmap(img.smoothScale(16,16)));			tbBSResult->setText(tbBSResult->numRows()-1, 0, QString::number(iter->getQQ()));			tbBSResult->setText(tbBSResult->numRows()-1, 1,codec->toUnicode(iter->getNick().c_str()));			tbBSResult->setText(tbBSResult->numRows()-1, 2,codec->toUnicode(iter->getProvince().c_str()));		}	}		tbBSPrev->setEnabled(m_BCurrentPage==0?false:true);	tbBSNext->setEnabled(m_BSearchFinished?false:true);	tbBSDetails->setEnabled(true);	tbBSAll->setEnabled(true);		lblBSResultPage->setText(QString(i18n("Current page %1 ")).arg(m_BCurrentPage+1));	}void EvaSearchWindow::slotTbBSNextClicked(){	m_BCurrentPage++;	m_ShowAllBasicUsers = false;	if((m_BCurrentPage+1)>m_BasicUserPages.size()){				tbBSNext->setEnabled(false);		tbBSPrev->setEnabled(false);		tbBSDetails->setEnabled(false);		tbBSAll->setEnabled(false);				lblBSResultTip->setText(i18n("Eva is searching users for you..."));			QString pageNo = QString::number(m_BCurrentPage);		if(m_BSearchType == B_ONLINE){			emit requestSearchUsers(true, pageNo, "", "", "", false);		}else{			//send precise search request			emit requestSearchUsers(false, pageNo, m_Id, m_Nick, m_Email, false);		}	}else{		displayBasicUsers();	}}void EvaSearchWindow::slotTbBSPrevClicked(){	m_BCurrentPage--;	m_ShowAllBasicUsers = false;	displayBasicUsers();}void EvaSearchWindow::slotTbBSAllClicked(){	m_ShowAllBasicUsers = true;	displayBasicUsers();}void EvaSearchWindow::slotBasicUserSelected(int row){	int start = 0, end = 1 ,count = 0;	if(m_ShowAllBasicUsers){		end = m_BasicUserPages.size();	}else{		start = m_BCurrentPage;		end = start+1;	}	std::list<OnlineUser>::iterator iter;	for(int i=start; i<end; i++){		for(iter = m_BasicUserPages[i].begin(); iter!=m_BasicUserPages[i].end(); ++iter){			if(count == row){				m_SelectedBasicUser = *iter;				return;			}else				count++;		}	}	}void EvaSearchWindow::slotTbBSDetailsClicked(){	//if user click the "details" button without any selected item, then show the message box	if(tbBSResult->numRows()!=0 && m_SelectedBasicUser.getQQ() == 0){		KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information,				i18n("Please select a user."),

⌨️ 快捷键说明

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