📄 sendfileplugin.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 + -