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

📄 sendfileplugin.cpp

📁 张勇的linQ学习P2P及IM软件的极佳素材代码
💻 CPP
字号:
/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 *   copyright            : (C) 2003 by Zhang Yong                         *
 *   email                : z-yong163@163.com                              *
 ***************************************************************************/

#include "plugin.h"
#include "sendfiledlgimpl.h"
#include "sendfile.xpm"
#include <qpixmap.h>


class FileSessionFactory : public SessionFactory {
public:
	virtual const char *getType() {
		return "sendfile";
	}
	virtual QString getText() {
		return SendFileDlg::tr("Send/Receive File");
	}
	virtual const QPixmap *getIcon();
	virtual TCPSessionListener *createSession(TCPSessionBase *tcp);
};


class SendFilePlugin : public Plugin {
public:
	static SendFilePlugin *instance();

	virtual bool init(MAPI *mapi);
	virtual void destroy() {
		delete this;
	}
	virtual QString getName() {
		return SendFileDlg::tr("File Transfer");
	}
	virtual QString getDesc() {
		return QString::null;
	}
	virtual const QPixmap *getIcon() {
		return &iconPix;
	}

	virtual void load(const QDomElement &pref);
	virtual void unload(QDomDocument &doc, QDomElement &pref);

private:
	SendFilePlugin();
	virtual ~SendFilePlugin();

	MAPI *mapi;
	QPixmap iconPix;
	FileSessionFactory factory;
};


const QPixmap *FileSessionFactory::getIcon()
{
	return SendFilePlugin::instance()->getIcon();
}


TCPSessionListener *FileSessionFactory::createSession(TCPSessionBase *tcp)
{
	SendFileDlg *dlg = new SendFileDlg(tcp);
	dlg->setIcon(*getIcon());
	dlg->show();
	return dlg;
}


SendFilePlugin *SendFilePlugin::instance()
{
	static SendFilePlugin *p = NULL;
	if (!p)
		p = new SendFilePlugin;
	return p;
}


SendFilePlugin::SendFilePlugin()
{
	iconPix = QPixmap((const char **) sendfile_xpm);
}

SendFilePlugin::~SendFilePlugin()
{
}

bool SendFilePlugin::init(MAPI *mapi)
{
	this->mapi = mapi;
	return true;
}

void SendFilePlugin::load(const QDomElement &pref)
{
	mapi->registerSession(&factory);
}

void SendFilePlugin::unload(QDomDocument &doc, QDomElement &pref)
{
	mapi->unregisterSession(&factory);
}


LINQ_EXPORT Plugin *getPlugin()
{
	return SendFilePlugin::instance();
}

⌨️ 快捷键说明

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