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

📄 qundetailswindow.cpp

📁 linux下的eva源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void QunDetailsWindow::initTable( ){	QHeader *vheader = tblMembers->verticalHeader();	vheader->hide();	tblMembers->setLeftMargin(0);	tblMembers->setNumRows( 0 );	tblMembers->setNumCols( 4 );	tblMembers->setColumnWidth(0, 16);	tblMembers->setColumnWidth(1, 90);	tblMembers->setColumnWidth(2, 110);	tblMembers->setColumnWidth(3, 34);	tblMembers->horizontalHeader()->setLabel( 0, i18n( " " ) );	tblMembers->horizontalHeader()->setLabel( 1, i18n( "QQ" ) );	tblMembers->horizontalHeader()->setLabel( 2, i18n( "Nick" ) );	tblMembers->horizontalHeader()->setLabel( 3, i18n( "Gender" ) );	tblMembers->setSelectionMode( QTable::SingleRow );	tblMembers->setFocusStyle( QTable::FollowStyle );	tblMembers->setReadOnly( true );	QObject::connect(tblMembers, SIGNAL(clicked(int,int,int,const QPoint&)), SLOT(slotTableClicked(int,int,int,const QPoint&)));	unsigned int myid = EvaMain::user->getQQ();	if( mQun->isAdmin( myid) || mQun->getDetails().getCreator() == myid){		pbSetMembers->setEnabled(true);		printf("setMember enabled\n");	} else {		pbSetMembers->setEnabled(false);		printf("setMember disabled\n");	}		pbAddToMe->setEnabled(false);	pbDelMembers->setEnabled(false);	pbSetAdmin->setEnabled(false);	pbUnsetAdmin->setEnabled(false);	pbTransfer->setEnabled(false);		QObject::connect(pbSetMembers, SIGNAL(clicked()), SLOT(slotSetMembersClicked()));	QObject::connect(pbAddToMe, SIGNAL(clicked()), SLOT(slotAddToMeClicked()));	QObject::connect(pbDelMembers, SIGNAL(clicked()), SLOT(slotDelMembersClicked()));	QObject::connect(pbSetAdmin, SIGNAL(clicked()), SLOT(slotSetAdminClicked()));	QObject::connect(pbUnsetAdmin, SIGNAL(clicked()), SLOT(slotUnsetAdminClicked()));	QObject::connect(pbTransfer, SIGNAL(clicked()), SLOT(slotTransferClicked()));}void QunDetailsWindow::slotTableClicked( int row, int /*col*/, int /*button*/, const QPoint & /*mousePos*/ ){	QString num = tblMembers->text(row, 1);	bool ok;	unsigned int id = num.toUInt(&ok);		unsigned int myID = EvaMain::user->getQQ();	if(ok){		const FriendItem *item = mQun->getMemberDetails(id);		if(!item){			pbSetMembers->setEnabled(true);			pbAddToMe->setEnabled(false);			pbDelMembers->setEnabled(true);			pbSetAdmin->setEnabled(false);			pbUnsetAdmin->setEnabled(false);			pbTransfer->setEnabled(false);			return;		}		if(EvaMain::user->getFriendList().hasFriend(id) || myID == item->getQQ()){			pbAddToMe->setEnabled(false);		}else{			pbAddToMe->setEnabled(true);		}	 			if(myID != mQun->getDetails().getCreator() && !mQun->isAdmin(myID)){			pbSetMembers->setEnabled(false);			return;  // neither creator nor admin, we just return		}else			pbSetMembers->setEnabled(true);		if(myID == item->getQQ())			pbDelMembers->setEnabled(false);		else			pbDelMembers->setEnabled(true);			pbTransfer->setEnabled(false);		if( myID == mQun->getDetails().getCreator()){			if(id != myID){ // selected other member				if(item->getQunAdminValue() & QUN_TYPE_ADMIN ){					pbSetAdmin->setEnabled(false);					pbUnsetAdmin->setEnabled(true);				} else {					pbSetAdmin->setEnabled(true);					pbUnsetAdmin->setEnabled(false);				}				pbTransfer->setEnabled(true);			}		}	} else {		pbAddToMe->setEnabled(false);		pbDelMembers->setEnabled(false);		pbSetAdmin->setEnabled(false);		pbUnsetAdmin->setEnabled(false);		pbTransfer->setEnabled(false);	}}void QunDetailsWindow::slotSetMembersClicked(){	if(picker->isVisible()){		pbSetMembers->setText(i18n("&Members >>"));		picker->hide();	}else{		pbSetMembers->setText(i18n("&Members <<"));		picker->move(x() + frameGeometry().width(), y());		picker->show();	}}void QunDetailsWindow::slotAddToMeClicked(){	QString num = tblMembers->text(tblMembers->currentRow(), 1);	bool ok;	int id = num.toInt(&ok);	if(ok){		const FriendItem *item = mQun->getMemberDetails(id);		//emit requestAddBuddy(id);		emit requestAddBuddy(id, codec->toUnicode(item->getNick().c_str()), item->getFace());		close();	} }void QunDetailsWindow::slotDelMembersClicked(){	int row = tblMembers->currentRow();	QString txt = tblMembers->text(row, 1);	bool ok;	unsigned int id = txt.toUInt(&ok);	if(!ok) return;		if(id == EvaMain::user->getQQ()) return;		tblMembers->removeRow(row);	tblMembers->selectRow(0);	slotTableClicked(0, 1, 0, QPoint(0,0));	emit removeMember(id);}void QunDetailsWindow::slotSetAdminClicked(){	QString num = tblMembers->text(tblMembers->currentRow(), 1);	bool ok;	int id = num.toInt(&ok);	if(ok){		pbSetAdmin->setEnabled(false);		emit requestQunSetAdmin(mQun->getQunID(), id, true);  // note last arg "true" means to set id as an Administrator	}}void QunDetailsWindow::slotUnsetAdminClicked(){	QString num = tblMembers->text(tblMembers->currentRow(), 1);	bool ok;	int id = num.toInt(&ok);	if(ok){		pbUnsetAdmin->setEnabled(false);		emit requestQunSetAdmin(mQun->getQunID(), id, false);  // note last arg "false" means to unset  Administrator on id	}}void QunDetailsWindow::slotTransferClicked(){	QString num = tblMembers->text(tblMembers->currentRow(), 1);	bool ok;	int id = num.toInt(&ok);	if(ok){		pbTransfer->setEnabled(false);		emit requestQunTransfer(mQun->getQunID(), id);	}	}void QunDetailsWindow::slotSetAdmin(const unsigned int id, const bool ok,  const unsigned int qq, const bool isSetAdmin, QString msg){	if(ok && id != mQun->getQunID()) return;	QString title = i18n("Qun Administrator Setting");	QString message;		if(isSetAdmin)		message = QString(i18n("Set \"%1\" as Qun administrator sucessfully.")).arg(qq);	else		message = QString(i18n("Unset \"%1\" as Qun administrator sucessfully.")).arg(qq);	if(ok){		QMessageBox::information(this, title, message);		//slotClose( );	} else {		QMessageBox::information(this, title, msg);	}}void QunDetailsWindow::slotTransferQun( const unsigned int id, const bool ok, const unsigned int qq, QString msg ){	if(ok && id != mQun->getQunID()) return;	QString title = i18n("Qun Transfer");	if(ok){		QMessageBox::information(this, title, QString(i18n("Transfer Qun to \"%1\" sucessfully.")).arg(qq));		//slotClose( );	} else {		QMessageBox::information(this, title, msg);	}	}void QunDetailsWindow::slotClose( ){	close();}void QunDetailsWindow::closeEvent( QCloseEvent * event){	if(picker)		delete picker;	picker=NULL;	QunDetailsUI::closeEvent(event);	deleteLater();}void QunDetailsWindow::moveEvent( QMoveEvent * event ){	if(picker)		picker->move(x() + frameGeometry().width(), y());	QunDetailsUI::moveEvent(event);}void QunDetailsWindow::slotPickerMemberClicked( const unsigned int id, const bool isChecked ){		int row;	unsigned int qq;	bool ok;	QString txt;	if(isChecked){		const QQFriend * frd = (EvaMain::user->getFriendList()).getFriend(id);		if(!frd) return;		//if(mQun->hasMember(frd->getQQ())) return;		for(row=0; row<tblMembers->numRows(); row++){			txt = tblMembers->text(row, 1);			qq = txt.toInt(&ok);			if(!ok) continue;			if(qq == id) return;		}				unsigned short face;		QString nick;		face = frd->getFace();		nick = codec->toUnicode(frd->getNick().c_str());				row = tblMembers->numRows(); // note: the index is start from 0		tblMembers->setNumRows(tblMembers->numRows() + 1);				QPixmap *bmpFace = EvaMain::images->getFace(EvaMain::images->getFaceFileIndex(face));				if(bmpFace){			QImage img(bmpFace->convertToImage().smoothScale(16, 16));			tblMembers->setPixmap(row, 1, QPixmap(img));		}		tblMembers->setText(row,1,QString::number(id));		tblMembers->setText(row,2,nick);		tblMembers->setText(row,3, frd->isBoy()?i18n("Male"):i18n("Female"));	}else {		bool ok;		QString txt;		unsigned int qq;		for(row = 0; row < tblMembers->numRows(); row ++){			txt = tblMembers->text(row, 1);			qq = txt.toInt(&ok);			if(!ok) continue;			if(qq == id){				tblMembers->removeRow(row);				return;			}		}	}}void QunDetailsWindow::slotModifyMembers( ){	std::list<unsigned int> removeList;	std::list<unsigned int> addList;		std::list<FriendItem>::iterator iter;	std::list<FriendItem> list = mQun->getMembers();	for(iter = list.begin(); iter!=list.end(); ++iter){		removeList.push_back(iter->getQQ());	}		bool ok;	QString txt;	unsigned int qq;	for(int row = 0; row < tblMembers->numRows(); row ++){		txt = tblMembers->text(row, 1);		qq = txt.toInt(&ok);		if(!ok) return;		addList.push_back(qq);printf("qq: %d\n",qq);	}	printf("addList size: %d\n", addList.size());	std::list<unsigned int>::iterator itr1, itr1_next;	std::list<unsigned int>::iterator itr2;	for(itr1=addList.begin(); itr1!=addList.end(); ){		itr1_next = itr1;printf("iter1 contents:%d\n", *itr1);		++itr1_next;printf("iter1_next contents:%d\n", *itr1_next);		for(itr2=removeList.begin(); itr2!=removeList.end(); ++itr2){			if( (*itr1) == (*itr2)){				addList.remove(*itr1);				removeList.remove(*itr2);				break;			}		}		itr1 = itr1_next;	}	printf("remove size:%d\n", removeList.size());	printf("add size:%d\n", addList.size());	numModifications = 0;	if(removeList.size()){		numModifications++;		emit requestModifyQunMembers(mQun->getQunID(), removeList, false);	}	if(addList.size()){		numModifications++;		emit requestModifyQunMembers(mQun->getQunID(), addList, true);	}}void QunDetailsWindow::slotModifyQunMembers( const unsigned int id, const bool ok, QString msg){	if(ok && id != mQun->getQunID()) return;	QString title = i18n("Qun Modify Members");	numModifications--;	if(ok){		if(numModifications > 0) return;		QMessageBox::information(this, title, QString(i18n("Modify Qun members successfully.")));		//slotClose( );	} else {		QMessageBox::information(this, title, msg);	}}void QunDetailsWindow::slotReceivedQunCard( const unsigned int id, const bool ok, const unsigned int qq, QString realName, const unsigned char gender, 						QString phone, QString email, QString memo, QString msg ){		if(id != mQun->getQunID()) return;	m_CardId = qq;	leMyName->setText("");	cbbMyGender->setCurrentItem(2);	leMyPhone->setText("");	leMyEmail->setText("");	teMyMemo->setText("");		if(ok){		leMyName->setText(realName);		leMyName->setReadOnly(true);		cbbMyGender->setCurrentItem(gender);		cbbMyGender->setEnabled(false);		leMyPhone->setText(phone);		leMyPhone->setReadOnly(true);		leMyEmail->setText(email);		leMyEmail->setReadOnly(true);		teMyMemo->setText(memo);		teMyMemo->setReadOnly(true);	}else {		leMyName->setText(QString::number(qq));		leMyName->setReadOnly(true);		teMyMemo->setText(msg);		teMyMemo->setReadOnly(true);	}		tabWMain->setCurrentPage(3);	pbUpdate->setEnabled(true);}void QunDetailsWindow::slotCategoryClicked( ){	QunCategoryPicker *picker = new QunCategoryPicker(this, "categoryPicker",WStyle_Customize | WStyle_Dialog |										 WStyle_DialogBorder|WDestructiveClose);	QObject::connect(picker, SIGNAL(selectCategoryCode(const unsigned short )), SLOT(slotCategorySelected(const unsigned short )));	picker->show();}void QunDetailsWindow::slotCategorySelected( const unsigned short code){	category = code;	QunCategory qunCate;	QString cateDescription = qunCate.getDescription(category);	tbCategory->setText(cateDescription);}void QunDetailsWindow::slotMembersUpdated( const unsigned int id ){	if(id!= mQun->getQunID()) return;	slotLoadMembers( );}void QunDetailsWindow::slotUpdateMessageSetting( ){	unsigned char type = Qun::Notify;	if(rbRecord_Show->isChecked())		type = Qun::Notify;	else if(rbPopupWindow->isChecked())		type = Qun::Popup;	else if(rbDisplayNumbers->isChecked())		type = Qun::Numbers;	else if(rbRecord_only->isChecked())		type = Qun::RecordOnly;	else if(rbRejectMsgs->isChecked())		type = Qun::Reject;		emit requestUpdateQunMessageSettings(mQun->getQunID(), type);	QMessageBox::information(this, i18n("Qun Setting"), QString(i18n("Message setting updated successfully.")));}#include "qundetailswindow.moc"

⌨️ 快捷键说明

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