21#include <tdeapplication.h>
23#include <tdefilemetainfo.h>
24#include <tdeio/netaccess.h>
27#include <kstandarddirs.h>
31#include <tqfileinfo.h>
37#include "karambaapp.h"
39#ifdef HAVE_TDENEWSTUFF
40#include "sknewstuff.h"
42SKNewStuff::SKNewStuff( ThemesDlg *dlg ) :
43 TDENewStuff(
"Karamba & Superkaramba", dlg ),
48bool SKNewStuff::install(
const TQString &fileName )
50 kdDebug() <<
"SKNewStuff::install(): " << fileName << endl;
52 KMimeType::Ptr result = KMimeType::findByURL(fileName);
53 TDEStandardDirs myStdDir;
54 TQFileInfo fi(fileName);
55 TQString base = fi.baseName();
56 TQString baseDestDir =myStdDir.saveLocation(
"data", kapp->instanceName() +
"/themes/",
true);
57 const TQString destDir = baseDestDir + base +
"/";
58 TDEStandardDirs::makeDir( destDir );
60 kdDebug() <<
"SKNewStuff::install() mimetype: " << result->name() << endl;
62 if( result->name() ==
"application/x-gzip" ||
63 result->name() ==
"application/x-tgz" ||
64 result->name() ==
"application/x-bzip" ||
65 result->name() ==
"application/x-bzip2" ||
66 result->name() ==
"application/x-tbz" ||
67 result->name() ==
"application/x-tar" ||
68 result->name() ==
"application/x-tarz")
70 kdDebug() <<
"SKNewStuff::install() gzip/bzip2 mimetype encountered" <<
72 KTar archive( fileName );
73 if ( !archive.open( IO_ReadOnly ) )
75 const KArchiveDirectory *archiveDir = archive.directory();
76 archiveDir->copyTo(destDir);
78 mDlg->addThemeToDialog(archiveDir, destDir);
81 else if(result->name() ==
"application/x-zip" ||
82 result->name() ==
"application/x-superkaramba")
84 kdDebug() <<
"SKNewStuff::install() zip mimetype encountered" << endl;
88 KURL sourceFile(fileName);
89 KURL destFile( destDir + sourceFile.fileName() );
90 if(!TDEIO::NetAccess::file_copy( sourceFile, destFile ))
94 TDEIO::NetAccess::removeTempFile( sourceFile.url() );
96 mDlg->addSkzThemeToDialog(destFile.path());
98 else if(result->name() ==
"plain/text")
100 kdDebug() <<
"SKNewStuff::install() plain text" << endl;
102 else if(result->name() ==
"text/html")
104 kdDebug() <<
"SKNewStuff::install() text/html" << endl;
105 KRun::runURL( m_sourceLink,
"text/html");
109 kdDebug() <<
"SKNewStuff::install() Error no compatible mimetype encountered to install"
116bool SKNewStuff::createUploadFile(
const TQString &fileName )
118 kdDebug() <<
"SKNewStuff::createUploadFile(): " << fileName << endl;
122TQString SKNewStuff::downloadDestination( KNS::Entry *entry )
124 KURL source = entry->payload();
125 m_sourceLink = source;
127 kdDebug() <<
"SKNewStuff::downloadDestination() url: "
128 << source.url() <<
" fileName: " << source.fileName() << endl;
129 TQString file(source.fileName());
130 if ( file.isEmpty() )
132 kdDebug() <<
"The file was empty. " << source.url() <<
133 " must be a URL link." << endl;
134 KRun::runURL( source,
"text/html");
137 return TDEGlobal::dirs()->saveLocation(
"tmp" ) + source.fileName();