initial import

This commit is contained in:
Mo Elzubeir
2022-12-13 09:18:00 -06:00
commit d2d561810c
322 changed files with 1147261 additions and 0 deletions
+112
View File
@@ -0,0 +1,112 @@
/************************************************************************
* $Id: imagecachingthread.cpp 661 2011-04-05 13:16:53Z elzubeir $
*
* ------------
* Description:
* ------------
*
* (C) Copyright 2009-2011 ALLCONTENT. All rights reserved.
*
* -----------------
* Revision Details: (Updated by Revision Control System)
* -----------------
* $Date: 2011-04-05 17:16:53 +0400 (Tue, 05 Apr 2011) $
* $Author: elzubeir $
* $Revision: 661 $
* $HeadURL: file:///opt/svn/socialhose/trunk/app/ClippingStation/imagecachingthread.cpp $
*
************************************************************************/
#include "imagecachingthread.h"
#include "imagecachingdialog.h"
#include "globalfunctions.h"
#include <QMessageBox>
#include <curl/curl.h>
ImageCachingThread::ImageCachingThread(ImageCachingDialog * dlg):
m_imageCacheDlg(*dlg)
{
}
void ImageCachingThread::setValues(QString srcPath, QStringList srcFiles, QString dstPath, QStringList dstFiles )
{
m_srcPath = srcPath; //src path
m_srcFiles = srcFiles; //src files
m_dstPath = dstPath; //dst path
m_dstFiles = dstFiles; //dst files
}
void ImageCachingThread::run()
{
m_imageCacheDlg.m_totalFilesCompleted = 0; //number of completed files it set to zero
m_dstPath = m_srcPath = "";
//char strerror[256]; //string to hold the error message, if any occurs
for( int i=0; i< m_srcFiles.count(); i++) //iterate thru the files to upload
{
while( !m_imageCacheDlg.m_resume )
return;
//qDebug() << "Copying " << m_srcFiles[i].toAscii();
if (m_imageCacheDlg.m_cachedImages[ m_dstPath+m_dstFiles[i] ] )
{
m_imageCacheDlg.m_totalFilesCompleted++;
}
else
{
bool ret = false;
if(m_imageCacheDlg.useFtp())
ret = cacheFromFtpServer(m_srcPath+m_srcFiles[i], m_dstPath+m_dstFiles[i]);
else
ret = cacheFromFileServer(m_srcPath+m_srcFiles[i], m_dstPath+m_dstFiles[i]);
m_imageCacheDlg.m_cachedImages[ m_dstPath+m_dstFiles[i] ] = ret;
m_imageCacheDlg.m_totalFilesCompleted++;
}
}
}
bool ImageCachingThread::cacheFromFtpServer(QString srcPage, QString dstPage)
{
//remove windows drive letter, if any
QString dst = srcPage.mid(srcPage.indexOf(":")+1, srcPage.length());
//dst = dst.left( dst.length() -1 ); //to remove the last /
//if ( !dst.endsWith("/") )
// dst += "/";
srcPage = dst;
srcPage = QString("ftp://%1:%2@%3/").arg( m_imageCacheDlg.username() ).arg( m_imageCacheDlg.password() ).arg( m_imageCacheDlg.address()) + srcPage;
CURL *curlhandle = NULL; //the libcurl easy handle
curl_global_init(CURL_GLOBAL_ALL); //initate it
curlhandle = curl_easy_init();
char strerror[256];
bool ret = download(curlhandle, srcPage.toAscii(), dstPage.toAscii(), 0, 1, strerror);
curl_easy_cleanup(curlhandle);
curl_global_cleanup();
return ret;
}
bool ImageCachingThread::cacheFromFileServer(QString srcPage, QString dstPage)
{
if (!QFile::exists(dstPage) && !QFile::copy(srcPage, dstPage) )
{
QMessageBox::critical(NULL, tr("Error!"), tr("Error copying image %1 to %2").arg(srcPage).arg(dstPage) );
return false;
}
return true;
}