21 #include <tdeapplication.h> 23 #include <tdefilemetainfo.h> 24 #include <tdeio/netaccess.h> 25 #include <kmimetype.h> 27 #include <tdestandarddirs.h> 31 #include <tqfileinfo.h> 37 #include "karambaapp.h" 38 #include "themesdlg.h" 39 #ifdef HAVE_TDENEWSTUFF 40 #include "sknewstuff.h" 42 SKNewStuff::SKNewStuff( ThemesDlg *dlg ) :
43 TDENewStuff(
"Karamba & Superkaramba", dlg ),
48 bool 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", tdeApp->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" 116 bool SKNewStuff::createUploadFile(
const TQString &fileName )
118 kdDebug() <<
"SKNewStuff::createUploadFile(): " << fileName << endl;
122 TQString 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();
139 #endif //HAVE_TDENEWSTUFF