return ;
}
+#if 0
QString Access::get()
{
m_orgData = getCacheData( m_thread->datURL() );
QCp932Codec codec;
return codec.toUnicode( m_threadData );
}
+#endif
// from netaccess.cpp
void qt_enter_modal( QWidget* widget );
}
}
+
+/*-------------------------------------------------*/
+/* shobon extension */
+/*-------------------------------------------------*/
+
+#include <qmessagebox.h>
+#include "threadinfo.h"
+
+QString Access::getcache()
+{
+ KURL url = m_thread->datURL();
+ url.setProtocol( "k2ch" );
+
+ m_orgData = getCacheData2( url );
+
+ QCp932Codec codec;
+ return codec.toUnicode( m_orgData );
+
+}
+
+
+/*-----------------------------------*/
+
+
+QString Access::getupdate()
+{
+
+ QString retstr;
+ m_threadData = "";
+
+ if ( KURL( m_thread->datURL() ).protocol() != "k2ch" ) {
+ KIO::SlaveConfig::self() ->setConfigData( "http",
+ KURL( m_thread->datURL() ).host(),
+ "UserAgent",
+ QString( "Monazilla/1.00 (Kita/%1)" ).arg( VERSION ) );
+ }
+
+ KIO::TransferJob* job = KIO::get( m_thread->datURL(), true, true );
+ m_currentJob = job;
+
+ connect( job, SIGNAL( data( KIO::Job*, const QByteArray& ) ),
+ SLOT( slotReceiveThreadData( KIO::Job*, const QByteArray& ) ) );
+ connect( job, SIGNAL( result( KIO::Job* ) ), SLOT( slotThreadResult( KIO::Job* ) ) );
+ connect( job, SIGNAL( redirection( KIO::Job *, const KURL& ) ), SLOT( slotRedirection( KIO::Job *, const KURL& ) ) );
+
+ // use 'HTTP-Headers' metadata.
+ job->addMetaData( "PropagateHttpHeader", "true" );
+ if ( ! m_orgData.isNull() ) {
+ job->addMetaData( "resume", QString::number( m_orgData.length() - 1 ) );
+ job->addMetaData( "AllowCompressedPage", "false" );
+ }
+
+ qApp->enter_loop();
+
+ if ( m_threadData.length() ) {
+ QCp932Codec codec;
+ retstr = codec.toUnicode( m_threadData );
+
+ KURL url = m_thread->datURL();
+
+ url.setProtocol( "k2ch" );
+ QString cachePath = Kita::Cache::getPath( url );
+ if ( !KIO::NetAccess::exists( cachePath ) ) {
+ QString path
+ = Kita::Cache::baseDir( url ) + Kita::Cache::subDir( url.host().lower() );
+ KIO::NetAccess::mkdir( path );
+ }
+
+ writeCacheData2( url );
+ } else retstr = "";
+
+ return retstr;
+}
+
+/*-----------------------------------*/
+
+QString Access::get()
+{
+
+ QString ret;
+ ret = getcache() + getupdate();
+
+ return ret;
+}
+
+
+/*-----------------------------------*/
+
+QCString Access::getCacheData2( const KURL& url )
+{
+ QString cachePath = Kita::Cache::getPath( url );
+
+ FILE *fs = fopen( QFile::encodeName( cachePath ), "r" );
+ if ( !fs ) {
+ return 0;
+ }
+
+ // if ( readCacheHeader( fs, url ) ) {
+ struct stat buf;
+ ::stat( QFile::encodeName( cachePath ), &buf );
+ int pos = ftell( fs );
+ int datasize = buf.st_size - pos;
+
+ char* ret = static_cast<char *>( malloc( datasize + 1 ) );
+ fread( ret, datasize, 1, fs );
+ ret[ datasize ] = '\0';
+ fclose( fs );
+ return ret;
+ /* }
+
+ fclose( fs );
+ unlink( QFile::encodeName( cachePath ) );
+ return 0;*/
+}
+
+
+/*-----------------------------------*/
+
+
+void Access::writeCacheData2( const KURL& url )
+{
+ if ( m_orgData.isNull() && responseCode() == 304 ) {
+
+ m_threadData = QString::null;
+ m_orgData = m_threadData;
+ return ;
+
+ } else if ( ! m_orgData.isNull() && responseCode() == 304 ) {
+
+ m_threadData = m_orgData;
+ return ;
+
+ } else if ( ! m_orgData.isNull() && responseCode() == 206 ) {
+ QCString orgData = QCString( m_orgData, m_orgData.length() );
+ m_threadData = orgData + m_threadData;
+ }
+ m_orgData = m_threadData;
+
+ QString cachePath = Kita::Cache::getPath( url );
+ FILE *fs = fopen( QFile::encodeName( cachePath ), "w" );
+ if ( !fs ) return ;
+
+ fwrite( m_threadData, m_threadData.size(), 1, fs );
+ fclose( fs );
+
+ return ;
+}
+
+
+/*-----------------------------------*/
+
+
+/* static & public */
+bool Access::deleteLog( const Thread* thread, QWidget* parent )
+{
+
+ if ( QMessageBox::warning( parent,
+ "Kita",
+ "Do you want to delete Log ?",
+ QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
+ == QMessageBox::Ok ) {
+
+ KURL url = thread->datURL();
+ QString str = Kita::Cache::getPath( url );
+ KIO::NetAccess::del( str );
+
+ url.setProtocol( "k2ch" );
+ str = Kita::Cache::getPath( url );
+ return KIO::NetAccess::del( str );
+ /*
+ KitaThreadInfo * cache = KitaThreadInfo::getInstance();
+ cache->m_readDict.remove(thread->datURL());
+ cache->m_resNumDict.remove(thread->datURL());
+ */
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+
+
#include "access.moc"