亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fxbuddy.cpp

?? linux-下的fetion-0.8.1。包括所有源代碼
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*************************************************************************** *   Copyright (C) 2008 by DDD                                          * *   dedodong@163.com                                                     * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/#include <QtGui>#include <assert.h>#include "appconfig.h"#include "fxbuddy.h"#include "fxsendGroupSMS.h"BuddyOpt::BuddyOpt(QTreeWidget * widget, bool isMainView){	m_isMainView = isMainView;	QunItem = NULL;	have_zero_group = false;	markedCount = 0;	assert(widget);	treeWidget = widget;	addGroupToTree();	addAccountToTree();	if (m_isMainView)		addQunToTree();	else	{		connect(treeWidget, SIGNAL(itemChanged(QTreeWidgetItem *, int)),				this, SLOT(updateStyles(QTreeWidgetItem *, int)));	}	//expandTree();}BuddyOpt::~BuddyOpt(){	freeAllGroupdata();    }void BuddyOpt::expandTree(){	QTreeWidgetItem *RootItem = this->treeWidget->invisibleRootItem();	if(!RootItem)		return ;	for(int i =0;  i< RootItem-> childCount (); i++)		this->treeWidget->expandItem (RootItem->child(i));}void BuddyOpt::freeAllGroupdata(){	QTreeWidgetItem *RootItem = this->treeWidget->invisibleRootItem();	if(!RootItem)		return ;	int GroupCount = RootItem-> childCount ();	QTreeWidgetItem *groupItem = NULL;	for(int i =0;  i< GroupCount; i++)	{		groupItem = RootItem->child(i);		if(!groupItem && isQunItem(groupItem) )			continue;		//free all account data of this group		freeAllAccountdata(groupItem);    #if MS_VC6		Group_Info *group_info =(Group_Info *)( groupItem->data(0, Qt::UserRole).toUInt() );#else		Group_Info *group_info = groupItem->data(0, Qt::UserRole).value<Group_Info *>();#endif		if( group_info) 			delete group_info;	}}void BuddyOpt::freeAllAccountdata(QTreeWidgetItem *groupItem)    {	if (!groupItem)		return;	int itemCounts = groupItem-> childCount();	QTreeWidgetItem *tmpItem = NULL;	for(int i =0;  i< itemCounts; i++)	{		tmpItem = groupItem->child(i);		if(!tmpItem)			continue;#if MS_VC6		Account_Info *ac_info =(Account_Info*)(tmpItem->data(0, Qt::UserRole).toUInt());#else		Account_Info *ac_info =tmpItem->data(0, Qt::UserRole).value<Account_Info*>() ;#endif		if(ac_info )			delete ac_info;	}}void BuddyOpt::addQunToTree(){	Fetion_Qun *qun = NULL;	Qun_Info *qun_info = NULL;	DList *tmp_qun = (DList *)fx_get_qun();	while(tmp_qun)	{		qun = (Fetion_Qun *) tmp_qun->data;		if(qun) {			if(!QunItem) {				QunItem = new QTreeWidgetItem(treeWidget);				QunItem->setText(0, tr("fetion qun"));			}			qun_info = new Qun_Info;			char * qun_name = fx_get_qun_show_name(qun); 			qun_info->qunName = QString::fromUtf8(qun_name);			if(qun_name)				free(qun_name);			qun_info->qunID = qun->id; #if MS_VC6			QVariant Var((uint)qun_info);#else			QVariant Var;			Var.setValue (qun_info); #endif			QTreeWidgetItem *item;			item = new QTreeWidgetItem(QunItem);			item->setText(0, qun_info->qunName);			item->setIcon(0, getQunIcon());			item->setData(0, Qt::UserRole, Var);		}		tmp_qun = d_list_next(tmp_qun);	}}bool BuddyOpt::isQunItem(QTreeWidgetItem *item) {	if(QunItem)		return item == QunItem;	else		return false;}//add Group info to tree widgetvoid BuddyOpt::addGroupToTree(){	Group_Info *groupinfo = NULL; 	Fetion_Group *group = NULL;	DList *tmp_group = (DList *)fx_get_group();	while(tmp_group)	{		group = (Fetion_Group *) tmp_group->data;		if(group) {			QTreeWidgetItem *item;			item = new QTreeWidgetItem(treeWidget);			if (!m_isMainView)				item->setCheckState(0, Qt::Unchecked);			QString str = QString::fromUtf8(group->name);			groupinfo = new Group_Info;			groupinfo->groupName = str;			groupinfo->groupID = group->id;			groupinfo->online_no = 0;			item->setText(0, str+"(0/0)");		#if MS_VC6				QVariant Var((uint)groupinfo);#else	QVariant Var;			Var.setValue (groupinfo); #endif			item->setData(0, Qt::UserRole, Var);		}		tmp_group = d_list_next(tmp_group);	}}void BuddyOpt::delAccount_direct(qlonglong uid){	QTreeWidgetItem *RootItem = this->treeWidget->invisibleRootItem();	if(!RootItem)		return ;	int GroupCount = RootItem-> childCount ();	QTreeWidgetItem *groupItem = NULL;	for(int i =0;  i< GroupCount; i++)	{		groupItem = RootItem->child(i);		if(!groupItem && isQunItem(groupItem) )			continue;		int itemCounts = groupItem-> childCount();		QTreeWidgetItem *tmpItem = NULL;		for(int i =0;  i< itemCounts; i++)		{			tmpItem = groupItem->child(i);			if(!tmpItem)				continue;#if MS_VC6			Account_Info *ac_info =(Account_Info*)(tmpItem->data(0, Qt::UserRole).toUInt());#else			Account_Info *ac_info =tmpItem->data(0, Qt::UserRole).value<Account_Info*>() ;#endif			if (!ac_info)				continue;			if(ac_info->accountID == uid)			{				delAccount(tmpItem); 				return;			}		}	}}void BuddyOpt::delAccount(QTreeWidgetItem* accountItem)  {	if(!accountItem)		return;#if MS_VC6	Account_Info *ac_info =(Account_Info*)(accountItem->data(0, Qt::UserRole).toUInt());#else	Account_Info *ac_info =accountItem->data(0, Qt::UserRole).value<Account_Info*>() ;#endif	if (!ac_info)		return;	const Fetion_Account * account = fx_get_account_by_id (ac_info->accountID);	if(ac_info )	delete ac_info;	QTreeWidgetItem* groupItem = accountItem->parent();	if(!groupItem) 	return;	groupItem->removeChild(accountItem);	{#if MS_VC6		Group_Info *group_info =(Group_Info *)( groupItem->data(0, Qt::UserRole).toUInt() );#else		Group_Info *group_info = groupItem->data(0, Qt::UserRole).value<Group_Info *>();#endif		if (!group_info)			return ;		if (fx_is_on_line_by_account(account))			group_info->online_no --;#ifdef WIN32		char online[30];		_snprintf (online, sizeof(online)-1, "(%d/%d)", group_info->online_no, groupItem->childCount());		QString groupShowName = group_info->groupName+ online;#else		char *online= NULL;		asprintf(&online, "(%d/%d)", group_info->online_no, groupItem->childCount());		QString groupShowName = group_info->groupName+ online;		if (online)			free(online);#endif		groupItem->setText(0, groupShowName);	}}void BuddyOpt::delAccount(qlonglong uid)  {	const Fetion_Account * account = fx_get_account_by_id (uid);	if(!account)  return;	delAccount(findAccountItem(account)); }void BuddyOpt::addGroup(const char* groupname, qlonglong id){	Group_Info *groupinfo = new Group_Info;	groupinfo->groupName = QString::fromUtf8((char*)groupname);	groupinfo->groupID = id;	groupinfo->online_no = 0;	QTreeWidgetItem *item;	item = new QTreeWidgetItem(treeWidget);	if (!m_isMainView)		item->setCheckState(0, Qt::Unchecked);	item->setText(0, groupinfo->groupName+"(0/0)");	#if MS_VC6			QVariant Var((uint)groupinfo);#elseQVariant Var;			Var.setValue (groupinfo); #endif	item->setData(0, Qt::UserRole, Var);}void BuddyOpt::delGroup(qlonglong id)  {	QTreeWidgetItem *RootItem = this->treeWidget->invisibleRootItem();	if(!RootItem)		return ;	QTreeWidgetItem *groupItem = NULL;	int GroupCount = RootItem-> childCount ();	for(int i =0;  i< GroupCount; i++)	{		groupItem = RootItem->child(i);		if(!groupItem && isQunItem(groupItem) )			continue;#if MS_VC6		Group_Info *group_info =(Group_Info *)( groupItem->data(0, Qt::UserRole).toUInt() );#else		Group_Info *group_info = groupItem->data(0, Qt::UserRole).value<Group_Info *>();#endif		if( group_info && group_info->groupID == id) 		{			//free all account data of this group			freeAllAccountdata(groupItem);    			delete group_info;			RootItem->removeChild(groupItem); 		}	}}//add account info to tree widgetvoid BuddyOpt::addAccountToTree(){	Fetion_Account *account = NULL;	DList *tmp_account = (DList *)fx_get_account();	while(tmp_account) 	{		account = (Fetion_Account *)tmp_account->data; 		if(account)			addAccountToGroup(account);		tmp_account = d_list_next(tmp_account);	}}//add account to it's group item void BuddyOpt::addAccountToGroup(const Fetion_Account *account)  {	//remove the user's id on account from list...	if (!account || account->id == (qlonglong)strtol(fx_get_usr_uid(), NULL, 10))		return;	int	group_no = fx_get_account_group_id(account) ;	if(group_no <= 0)	{		group_no = 0;		if( !have_zero_group)		{			QTreeWidgetItem *item;			item = new QTreeWidgetItem(treeWidget);			if (!m_isMainView)				item->setCheckState(0, Qt::Unchecked);			QString str = tr("un set group");			Group_Info *groupinfo = new Group_Info;			groupinfo->groupName = str;			groupinfo->groupID = group_no;			groupinfo->online_no = 0;			item->setText(0, str);#if MS_VC6			QVariant Var((uint)groupinfo);#else			QVariant Var;			Var.setValue (groupinfo); #endif			item->setData(0, Qt::UserRole, Var);			have_zero_group = true;		}	}	char * showname = fx_get_account_show_name(account, TRUE);	QString show_name = QString::fromUtf8(showname);	int online_state = fx_get_online_status_by_account(account);	addAccountToGroup(account, show_name, online_state, group_no);	if(showname)		free(showname);}void BuddyOpt::addAccountToGroup(const Fetion_Account *account, QString & name, int online_state, int group_id ){	//remove the user's id on account from list... fixed: it maybe have redundance	if (!account || account->id == (qlonglong)strtol(fx_get_usr_uid(), NULL, 10))		return;	QTreeWidgetItem * groupItem = findGroupItemByID(group_id);	if(!groupItem)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久人人超碰| 欧美日韩亚洲综合| 亚洲成人免费视| 久久久亚洲国产美女国产盗摄 | 日本成人在线一区| 久久日一线二线三线suv| 欧美日韩一区小说| 成人精品视频一区| 久久精品免费观看| 亚洲国产成人tv| 中文字幕在线一区免费| 精品美女在线观看| 在线成人高清不卡| 91蝌蚪porny成人天涯| 国产福利91精品一区二区三区| 日日摸夜夜添夜夜添精品视频| 中文字幕一区二区三区四区| 久久综合精品国产一区二区三区| 欧美精品一卡二卡| 在线观看视频一区二区| 成人免费看片app下载| 国产在线不卡一区| 久久精品国产澳门| 日日夜夜免费精品| 亚洲成人先锋电影| 亚洲电影在线免费观看| 夜夜爽夜夜爽精品视频| 亚洲图片激情小说| 国产精品传媒入口麻豆| 国产人成一区二区三区影院| 精品少妇一区二区三区在线播放| 欧美日韩另类一区| 在线精品视频免费观看| 色老汉av一区二区三区| 91福利视频久久久久| 色婷婷综合久久久中文字幕| av网站免费线看精品| 成人午夜免费视频| 成人av午夜影院| 不卡在线视频中文字幕| 波多野结衣在线aⅴ中文字幕不卡| 国产盗摄一区二区三区| 国产成人精品影视| 99天天综合性| 一本一道综合狠狠老| 在线看国产一区| 欧美理论在线播放| 欧美一区二区三区小说| 精品乱人伦一区二区三区| 精品国产人成亚洲区| 久久精品免视看| 中文乱码免费一区二区| 亚洲欧美怡红院| 中文字幕在线一区| 亚洲一区日韩精品中文字幕| 亚洲国产精品久久人人爱| 日韩福利电影在线| 美女性感视频久久| 福利一区二区在线| 色94色欧美sute亚洲13| 6080yy午夜一二三区久久| 欧美成人精品3d动漫h| 久久久综合网站| 国产精品久久久久久久蜜臀| 亚洲欧美日本在线| 日韩av电影天堂| 国产伦精品一区二区三区免费| 成人18视频在线播放| 欧美中文字幕一二三区视频| 91精品国产综合久久婷婷香蕉| 精品日韩成人av| 国产精品久久久久久亚洲伦| 亚洲国产美女搞黄色| 精品综合久久久久久8888| 成人高清av在线| 欧美欧美欧美欧美| 国产日韩在线不卡| 亚洲成人第一页| 国产精品羞羞答答xxdd| 在线视频一区二区三| 欧美一级二级三级蜜桃| 国产精品视频麻豆| 日日摸夜夜添夜夜添国产精品| 国产精品1区2区| 欧美婷婷六月丁香综合色| 亚洲精品在线电影| 亚洲一区二区三区四区五区黄 | 91在线小视频| 精品久久国产字幕高潮| 亚洲美女视频在线| 国模冰冰炮一区二区| 欧美三级电影在线看| 中文字幕欧美日韩一区| 免费看日韩精品| 色综合色综合色综合色综合色综合| 欧美一级生活片| 依依成人精品视频| 国产成a人无v码亚洲福利| 538在线一区二区精品国产| 亚洲欧美怡红院| 国产一区日韩二区欧美三区| 欧美在线视频全部完| 国产精品色在线| 国产又黄又大久久| 91精品国产麻豆| 亚洲黄一区二区三区| 丁香婷婷综合网| 精品欧美一区二区三区精品久久 | 国产日韩欧美精品一区| 性久久久久久久| 91成人免费在线| 国产精品福利在线播放| 韩国成人在线视频| 欧美一区二区三区免费大片| 一区二区三区在线不卡| www.综合网.com| 欧美激情中文不卡| 国产一区二区毛片| 日韩免费高清电影| 日本最新不卡在线| 91麻豆精品91久久久久同性| 亚洲一区二区在线观看视频| 99久久精品国产导航| 欧美激情一区二区三区在线| 黄色成人免费在线| 精品av综合导航| 日本成人中文字幕在线视频| 在线成人小视频| 日韩不卡一区二区三区| 欧美精品一级二级三级| 性欧美大战久久久久久久久| 欧洲色大大久久| 亚洲一区二区三区中文字幕在线| 99国产精品视频免费观看| 国产精品成人在线观看| av在线播放一区二区三区| 一区在线中文字幕| 97精品国产97久久久久久久久久久久| 中文在线资源观看网站视频免费不卡 | 亚洲毛片av在线| 99精品久久只有精品| 亚洲激情六月丁香| 欧美日韩免费一区二区三区| 五月天激情小说综合| 51精品久久久久久久蜜臀| 丝袜国产日韩另类美女| 日韩欧美电影一区| 国产精品一品视频| 国产精品午夜在线| 色欧美片视频在线观看在线视频| 一区二区在线观看视频| 欧美日韩亚洲丝袜制服| 免费成人小视频| 国产欧美日韩在线| 95精品视频在线| 日韩国产一二三区| 久久午夜羞羞影院免费观看| 国产91高潮流白浆在线麻豆| 中文字幕一区免费在线观看| 在线精品亚洲一区二区不卡| 午夜精品久久久久久久久久| 欧美成人aa大片| 国产**成人网毛片九色| 亚洲人亚洲人成电影网站色| 欧美色涩在线第一页| 免费成人深夜小野草| 久久综合成人精品亚洲另类欧美| 国产超碰在线一区| 亚洲午夜久久久久久久久电影院| 日韩一区二区三区四区五区六区| 国产一区福利在线| 一区二区三区自拍| 日韩免费一区二区三区在线播放| 成人高清av在线| 日韩av不卡一区二区| 国产精品久久久一本精品 | 偷拍亚洲欧洲综合| 亚洲精品一区二区三区福利| 成人黄色小视频| 天堂蜜桃一区二区三区| 欧美国产亚洲另类动漫| 欧美老女人第四色| 成人免费精品视频| 蜜芽一区二区三区| 中文字幕日韩欧美一区二区三区| 91精品国产免费久久综合| 成人av集中营| 久88久久88久久久| 亚洲激情综合网| 国产欧美视频一区二区三区| 欧美日韩一区二区在线观看视频| 国产伦精品一区二区三区免费| 一级特黄大欧美久久久| 国产精品―色哟哟| 精品成人a区在线观看| 欧美老年两性高潮| 91久久精品日日躁夜夜躁欧美| 国产在线一区观看| 天天综合网天天综合色| 亚洲欧洲成人精品av97|