ftplogin.cpp

来自「本文件是<精通QT4编程>的配套源代码」· C++ 代码 · 共 66 行

CPP
66
字号
#include "ftplogin.h"

FtpLogin::FtpLogin(QObject *parent)
	: QObject(parent)
{
	connect(&ftp,SIGNAL(done(bool)),this,SLOT(ftpDone(bool)));
	connect(&ftp,SIGNAL(commandStarted(int)),this,SLOT(ftpcommandStarted(int)));
	connect(&ftp,SIGNAL(commandFinished(int,bool)),this,SLOT(ftpcommandFinished(int,bool)));
}

FtpLogin::~FtpLogin()
{

}

bool FtpLogin::logIn(const QUrl &url)
{
	if(!url.isValid()){
		qDebug()<<tr("错误:无效 URL")<<endl;
		return false;
	}
	if(url.scheme() !="ftp"){
		qDebug()<<tr("错误: URL 必须以 'ftp:'开始")<<endl;
		return false;
	}

	connectId = ftp.connectToHost(url.host(),url.port(21));
	loginId = ftp.login();
	closeId = ftp.close();
	return true;
}

void FtpLogin::ftpcommandStarted(int id)
{
	if(id == connectId){
		qDebug()<<QObject::tr("连接中....")<<endl;
	}else if(id == loginId){
		qDebug()<<QObject::tr("登陆中...")<<endl;
	}else if(id == closeId){
		qDebug()<<QObject::tr("关闭中...")<<endl;
	}
}

void FtpLogin::ftpcommandFinished(int id,bool error)
{
	if(error){
		qDebug()<<QObject::tr("操作错误,程序退出!");
		return;
	}

	if(id == connectId){
		qDebug()<<QObject::tr("已连接")<<endl;
	}else if(id == loginId){
		qDebug()<<QObject::tr("已登陆")<<endl;
	}else if(id == closeId){
		qDebug()<<QObject::tr("已关闭")<<endl;
	}
}
void FtpLogin::ftpDone(bool error)
{
	if(error){
		qDebug()<<tr("错误:")<<qPrintable(ftp.errorString())<<endl;
	}
	emit done();
}

⌨️ 快捷键说明

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