21 #include <kapplication.h>
23 #include <kfilemetainfo.h>
24 #include <kio/netaccess.h>
25 #include <kmimetype.h>
27 #include <kstandarddirs.h>
31 #include <tqfileinfo.h>
37 #include "karambaapp.h"
38 #include "themesdlg.h"
40 #include "sknewstuff.h"
42 SKNewStuff::SKNewStuff( ThemesDlg *dlg ) :
43 KNewStuff(
"superkaramba/themes", dlg ),
48 bool SKNewStuff::install(
const TQString &fileName )
50 kdDebug() <<
"SKNewStuff::install(): " << fileName << endl;
52 KMimeType::Ptr result = KMimeType::findByURL(fileName);
53 KStandardDirs 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 KStandardDirs::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-tbz2" ||
68 result->name() ==
"application/x-tar" ||
69 result->name() ==
"application/x-tarz")
71 kdDebug() <<
"SKNewStuff::install() gzip/bzip2 mimetype encountered" <<
73 KTar archive( fileName );
74 if ( !archive.open( IO_ReadOnly ) )
76 const KArchiveDirectory *archiveDir = archive.directory();
77 archiveDir->copyTo(destDir);
79 mDlg->addThemeToDialog(archiveDir, destDir);
82 else if(result->name() ==
"application/x-zip" ||
83 result->name() ==
"application/x-superkaramba")
85 kdDebug() <<
"SKNewStuff::install() zip mimetype encountered" << endl;
89 KURL sourceFile(fileName);
90 KURL destFile( destDir + sourceFile.fileName() );
91 if(!KIO::NetAccess::file_copy( sourceFile, destFile ))
95 KIO::NetAccess::removeTempFile( sourceFile.url() );
97 mDlg->addSkzThemeToDialog(destFile.path());
99 else if(result->name() ==
"plain/text")
101 kdDebug() <<
"SKNewStuff::install() plain text" << endl;
103 else if(result->name() ==
"text/html")
105 kdDebug() <<
"SKNewStuff::install() text/html" << endl;
106 KRun::runURL( m_sourceLink,
"text/html");
110 kdDebug() <<
"SKNewStuff::install() Error no compatible mimetype encountered to install"
117 bool SKNewStuff::createUploadFile(
const TQString &fileName )
119 kdDebug() <<
"SKNewStuff::createUploadFile(): " << fileName << endl;
123 TQString SKNewStuff::downloadDestination( KNS::Entry *entry )
125 KURL source = entry->payload();
126 m_sourceLink = source;
128 kdDebug() <<
"SKNewStuff::downloadDestination() url: "
129 << source.url() <<
" fileName: " << source.fileName() << endl;
130 TQString file(source.fileName());
131 if ( file.isEmpty() )
133 kdDebug() <<
"The file was empty. " << source.url() <<
134 " must be a URL link." << endl;
135 KRun::runURL( source,
"text/html");
138 return KGlobal::dirs()->saveLocation(
"tmp" ) + source.fileName();
140 #endif //HAVE_KNEWSTUFF