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

📄 evaqtutil.h

📁 linux下的eva源代码
💻 H
字号:
/*************************************************************************** *   Copyright (C) 2005 by yunfan                                          * *   yunfan_zg@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.             * ***************************************************************************/ #ifndef EVAQTUTIL_H #define EVAQTUTIL_H#include "evafriendlist.h"#include "evaqunlist.h"#include "evahtmlparser.h"#include <string>#include <qobject.h>#include <qthread.h>#include <qpixmap.h>#include <qimage.h>#include <qsize.h>#include <qevent.h>#include <qmutex.h>#define EvaLoadGroupedUsersEvent  65535#define EvaLoadQunUsersEvent      65534#define EvaLoadSysEvent           65533#define EvaScaleImageEvent        65532#define EvaRequestCustomizedPicEvent 65531#define EvaPictureReadyEvent      65530#define EvaSendPictureReadyEvent  65529#define EvaUserHeadReadyEvent     65528const Q_UINT32 profileVersion = 0x000400;class QFile;// note that this static method is to filer those control chars out and change some printable funny chars into spacesclass EvaTextFilter {public:	static const QString filter(const QString &str);};class EvaSysEvent : public QCustomEvent{public:	EvaSysEvent() : 		QCustomEvent(EvaLoadSysEvent){};};class EvaScaleEvent : public QCustomEvent{public:	EvaScaleEvent(const QPixmap p) : 		QCustomEvent(EvaScaleImageEvent), pic(p) {}	QPixmap pixmap() { return pic; }private:	QPixmap pic;};class EvaBuddyListEvent : public QCustomEvent{public:	EvaBuddyListEvent() : QCustomEvent(EvaLoadGroupedUsersEvent) {};		void setGroupNames(const std::list<std::string>& names) { groupNames = names; }	void setDetails(const ContactInfo &info) { myInfo = info; }	void setFriendList(const FriendList &l) { list = l; }	void setExtraInfo(const unsigned short info) { mExtraInfo = info; }	void setSignature(const std::string sig, const unsigned int time) { mSignature = sig; mSigModiTime = time; }		const std::list<std::string> getGroupNames() const { return groupNames; }	const ContactInfo getMyInfo() const { return myInfo; }	const FriendList getMyFriendList() const { return list; }	const unsigned long long getExtraInfo() const { return mExtraInfo; }	const std::string getSignature() const { return mSignature;}	const unsigned int getSignatureTime() const { return mSigModiTime;}private:	std::list<std::string> groupNames;	ContactInfo myInfo;	FriendList list;	unsigned long long mExtraInfo;	std::string mSignature;	unsigned int mSigModiTime;};class EvaQunListEvent : public QCustomEvent{public:	EvaQunListEvent() : QCustomEvent(EvaLoadQunUsersEvent) {};	void setQunList( const QunList &l) { list = l; }	QunList getQunList() { return list; }private:	QunList list;};class EvaAskForCustomizedPicEvent : public QCustomEvent{public:	EvaAskForCustomizedPicEvent() : QCustomEvent(EvaRequestCustomizedPicEvent) {};	void setPicList( const std::list<CustomizedPic> &list) { picList = list; }	std::list<CustomizedPic> getPicList() { return picList; }	void setQunID(const unsigned int id) { qunID = id; }	const unsigned int getQunID() const { return qunID; }private:	std::list<CustomizedPic> picList;	unsigned int qunID;};class EvaSendCustomizedPicEvent : public QCustomEvent{public:	EvaSendCustomizedPicEvent() : QCustomEvent(EvaSendPictureReadyEvent) {};	void setPicList( const std::list<OutCustomizedPic> &list) { picList = list; }	std::list<OutCustomizedPic> getPicList() { return picList; }	void setQunID(const unsigned int id) { qunID = id; }	const unsigned int getQunID() const { return qunID; }private:	std::list<OutCustomizedPic> picList;	unsigned int qunID;};class EvaPicReadyEvent : public QCustomEvent{public:	EvaPicReadyEvent() : QCustomEvent(EvaPictureReadyEvent) {};	void setFileName( const QString &name) { fileName = name; }	QString getFileName() { return fileName; }		void setTmpFileName( const QString &name) { tmpFileName = name; }	QString getTmpFileName() { return tmpFileName; }		void setQunID(const unsigned int id) { qunID = id; }	const unsigned int getQunID() const { return qunID; }private:	unsigned int qunID;	QString fileName;	QString tmpFileName;};class EvaUHReadyEvent : public QCustomEvent{public:	EvaUHReadyEvent() : QCustomEvent(EvaUserHeadReadyEvent) {};		void setQQ( const unsigned int id) { mId = id; }	void setImages( const QImage on, const QImage off) { imgOn = on; imgOff = off; }		const unsigned int getQQ() { return mId; }	const QImage getOnImage() const { return imgOn; }	const QImage getOffImage() const { return imgOff; }private:	unsigned int mId;	QImage imgOn;	QImage imgOff;};class EvaHelper : public QThread{public:	enum Type{ LoadGroupedUsers, SaveGroupedUsers, LoadQunUsers, SaveQunUsers, LoadSys, ScaleImage };	void setCategory(const Type t, QObject *rec) { type = t; receiver = rec; }		// for loading grouped users list	void setLoadGroupedUsersArgs(QFile *file) ;		// for saving grouped users list	void setSaveGroupedUsersArgs(QFile *file, std::list<std::string> myGroups, ContactInfo &info, FriendList &myList,					unsigned short extraInfo, std::string signature, unsigned int sigModiTime);		// for loading Qun list	void setLoadQunListArgs(QFile *file);		// for saving Qun list	void setSaveQunListArgs(QFile *file, QunList &list);		// for image scaling	void setScaleArgs(const QPixmap &p, const QSize &s) { pic = p; size = s; }		// static method for generating customized smiley file into user's customCaches directory, should be the absolute path	static const QString generateCustomSmiley(const QString &source, const QString &destDir, const bool withThumbnail = false);		// static method for calculating md5 of a file, should be the absolute path. note: char *md5 must be allocated before calling this method	static const bool getFileMD5(const QString &fileName, char *md5);		// convert MD5 into string expression, all converted string are in upper case	static const QString md5ToString(const char *md5);		// static method for copying source to dest directory, should be the absolute path	static const bool copyFile(const QString &source, const QString &dest);		// static method for renaming the source file to dest file name, should be the absolute path, note that: this method will delete source file	static const bool rename(const QString &source, const QString &dest);	// starting the thread	virtual void run();private:	static QMutex mutex;	Type type;	QObject *receiver;		// for user loading/saving buddy list  use only	QFile *file;		// for user saving only	std::list< std::string > groups;	ContactInfo myInfo;	FriendList list;	Q_UINT16 mExtraInfo;	std::string mSignature;	int mSigModiTime;		// for qun list saving only	QunList qunList;			// for scale the image only	QPixmap pic;	QSize size;		void doGroupedUserLoading();	void doGroupedUserSaving();	void doQunUserLoading();	void doQunUserSaving();	void doSysLoading();	void doImageScaling();};class EvaQtUtils {public:	static QRgb toGray(QRgb rgb);	// Warning: this can only be used in GUI thread	static QPixmap convertToGrayscale(const QPixmap &pm);	// This method is thread-safe method	static void convertToGrayscale (QImage *destImagePtr);};#endif

⌨️ 快捷键说明

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