From: ikemo Date: Thu, 1 Jan 2004 09:22:21 +0000 (+0000) Subject: refactoring. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a70f19f7751d24f6ea04c5b9a5b7d52f154e2f50;p=kita%2Fkita.git refactoring. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@763 56b19765-1e22-0410-a548-a0f45d66c51a --- diff --git a/kita/src/libkita/thread.cpp b/kita/src/libkita/thread.cpp index e902ab5..95e6a01 100644 --- a/kita/src/libkita/thread.cpp +++ b/kita/src/libkita/thread.cpp @@ -1,12 +1,12 @@ /*************************************************************************** - * Copyright (C) 2003 by Hideki Ikemoto * - * ikemo@users.sourceforge.jp * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - ***************************************************************************/ +* Copyright (C) 2003 by Hideki Ikemoto * +* ikemo@users.sourceforge.jp * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +***************************************************************************/ #include "thread.h" @@ -32,37 +32,18 @@ using namespace Kita; ThreadFactory* ThreadFactory::instance = 0; Thread::Thread() -{ -} +{} Thread::Thread( const QString& datURL, const QString& threadName ) - : m_datURL( datURL ), m_threadName( threadName ) -{ -} - -Thread::Thread( const Thread& obj ) -{ - m_datURL = obj.m_datURL; - m_threadName = obj.m_threadName; - setResNum( obj.resNum() ); -} + : m_datURL( datURL ), m_threadName( threadName ) +{} Thread::~Thread() -{ -} - -Thread& Thread::operator=( const Thread& obj ) -{ - m_datURL = obj.m_datURL; - m_threadName = obj.m_threadName; - setResNum( obj.resNum() ); - - return *this; -} +{} const QString& Thread::datURL() const { - return m_datURL; + return m_datURL; } const QString Thread::url() const @@ -72,7 +53,7 @@ const QString Thread::url() const const QString Thread::datID() const { - return KURL( m_datURL ).filename().section( ".", 0, 0 ); + return KURL( m_datURL ).filename().section( ".", 0, 0 ); } int Thread::resNum() const @@ -82,7 +63,7 @@ int Thread::resNum() const const QString& Thread::name() const { - return m_threadName; + return m_threadName; } void Thread::setResNum( int resNum ) @@ -92,154 +73,155 @@ void Thread::setResNum( int resNum ) const QString& Thread::boardName() const { - Board* board = Board::getByURL( boardURL() ); + Board * board = Board::getByURL( boardURL() ); return board->name(); } const QString Thread::boardURL() const { - return datToBoard( m_datURL ); + return datToBoard( m_datURL ); } const QString Thread::boardID() const { - return KURL( datToBoard( m_datURL ) ).fileName(); + return KURL( datToBoard( m_datURL ) ).fileName(); } const QString Thread::toXmlFragment() const { - QString ret; + QString ret; - ret += "\n"; - ret += QString("%1\n").arg( m_datURL ); - ret += QString("%1\n").arg( m_threadName ); - ret += QString("%1\n").arg( resNum() ); + ret += "\n"; + ret += QString( "%1\n" ).arg( m_datURL ); + ret += QString( "%1\n" ).arg( m_threadName ); + ret += QString( "%1\n" ).arg( resNum() ); - // FIXME: Board¥¯¥é¥¹¤«¤é¥³¥Ô¡¼ - ret += "\n"; - ret += QString("%1\n").arg( boardURL() ); - ret += QString("%1\n").arg( boardName() ); - ret += "\n"; + // FIXME: Board¥¯¥é¥¹¤«¤é¥³¥Ô¡¼ + ret += "\n"; + ret += QString( "%1\n" ).arg( boardURL() ); + ret += QString( "%1\n" ).arg( boardName() ); + ret += "\n"; - ret += "\n"; + ret += "\n"; - return ret; + return ret; } Thread Thread::fromXml( const QString& xml ) { - Thread thread; - - ThreadXmlParser parser; - QXmlSimpleReader reader; - QXmlInputSource source; - source.setData( xml ); - reader.setContentHandler( &parser ); - reader.parse( &source ); - - if( parser.isValid() ) { - thread = parser.getThread(); - } else { - kdError() << "inValid" << endl; - } - - return thread; + Thread thread; + + ThreadXmlParser parser; + QXmlSimpleReader reader; + QXmlInputSource source; + source.setData( xml ); + reader.setContentHandler( &parser ); + reader.parse( &source ); + + if ( parser.isValid() ) { + thread = parser.getThread(); + } else { + kdError() << "inValid" << endl; + } + + return thread; } +ThreadXmlParser::ThreadXmlParser() + : m_boardParser( 0 ), m_inBoard( false ), m_isValid( false ), m_inThread( false ) +{}; + bool ThreadXmlParser::startElement( const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts ) { - if( m_inBoard ) { - m_boardParser->startElement( namespaceURI, localName, qName, atts ); - } else if( m_inThread ) { - if( localName == "daturl" ) { - } else if( localName == "name" ) { - } else if( localName == "resnum" ) { - } else if( localName == "board" ) { - m_inBoard = true; - m_boardParser = new BoardXmlParser(); - m_boardParser->startElement( namespaceURI, localName, qName, atts ); + if ( m_inBoard ) { + m_boardParser->startElement( namespaceURI, localName, qName, atts ); + } else if ( m_inThread ) { + if ( localName == "daturl" ) {} else if ( localName == "name" ) {} else if ( localName == "resnum" ) {} else if ( localName == "board" ) { + m_inBoard = true; + m_boardParser = new BoardXmlParser(); + m_boardParser->startElement( namespaceURI, localName, qName, atts ); + } else { + // error + return false; + } } else { - // error - return false; + if ( localName == "thread" ) { + m_inThread = true; + } else { + // error + return false; + } } - } else { - if( localName == "thread" ) { - m_inThread = true; - } else { - // error - return false; - } - } - return true; + return true; } // TODO: ¤ÏFavorites¤Ç¤Ï»È¤ï¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤¿¤Î¤Çºï½ü¤¹¤ëɬÍפ¢¤ê¡£ bool ThreadXmlParser::endElement( const QString& namespaceURI, const QString& localName, const QString& qName ) { - if( localName == "board" ) { - m_inBoard = false; - m_boardParser->endElement( namespaceURI, localName, qName ); - - delete m_boardParser; - m_boardParser = 0; - - // create board; - } else if( m_inBoard ) { - m_boardParser->endElement( namespaceURI, localName, qName ); - } else if( localName == "thread" ) { - m_inThread = false; - m_thread = Kita::Thread( m_datUrlStr, m_threadName ); - KitaThreadInfo::setResNum( m_datUrlStr, m_resNum ); - m_isValid = true; - // create thread; - } else if( localName == "daturl" ) { - m_datUrlStr = m_characters; - } else if( localName == "name" ) { - m_threadName = m_characters; - } else if( localName == "resnum" ) { - m_resNum = m_characters.toInt(); - } else { - // error - return false; - } - return true; + if ( localName == "board" ) { + m_inBoard = false; + m_boardParser->endElement( namespaceURI, localName, qName ); + + delete m_boardParser; + m_boardParser = 0; + + // create board; + } else if ( m_inBoard ) { + m_boardParser->endElement( namespaceURI, localName, qName ); + } else if ( localName == "thread" ) { + m_inThread = false; + m_thread = Kita::Thread( m_datUrlStr, m_threadName ); + KitaThreadInfo::setResNum( m_datUrlStr, m_resNum ); + m_isValid = true; + // create thread; + } else if ( localName == "daturl" ) { + m_datUrlStr = m_characters; + } else if ( localName == "name" ) { + m_threadName = m_characters; + } else if ( localName == "resnum" ) { + m_resNum = m_characters.toInt(); + } else { + // error + return false; + } + return true; } bool ThreadXmlParser::characters( const QString& ch ) { - if( m_inBoard ) { - m_boardParser->characters( ch ); - } else { - m_characters = ch; - } - return true; + if ( m_inBoard ) { + m_boardParser->characters( ch ); + } else { + m_characters = ch; + } + return true; } QString ThreadAccess::get() { - 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 ) ); - } + 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; + 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&) ) ); + 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"); + // use 'HTTP-Headers' metadata. + job->addMetaData( "PropagateHttpHeader", "true" ); - enter_loop(); + enter_loop(); - QCp932Codec codec; - return codec.toUnicode( m_threadData ); + QCp932Codec codec; + return codec.toUnicode( m_threadData ); } // from netaccess.cpp @@ -248,41 +230,41 @@ void qt_leave_modal( QWidget* widget ); void ThreadAccess::enter_loop() { - QWidget dummy( 0, 0, WType_Dialog | WShowModal ); - dummy.setFocusPolicy( QWidget::NoFocus ); - qt_enter_modal(&dummy); - qApp->enter_loop(); - qt_leave_modal(&dummy); + QWidget dummy( 0, 0, WType_Dialog | WShowModal ); + dummy.setFocusPolicy( QWidget::NoFocus ); + qt_enter_modal( &dummy ); + qApp->enter_loop(); + qt_leave_modal( &dummy ); } -void ThreadAccess::slotRedirection(KIO::Job *, const KURL & newURL) +void ThreadAccess::slotRedirection( KIO::Job *, const KURL & newURL ) { - kdDebug() << "Redirected to newURL: " << newURL.url() << endl; - Kita::Board::setName( datToBoard( newURL.url() ), m_thread.boardName() ); - m_thread = Kita::Thread( newURL.url() ); - emit redirection( newURL.url() ); + kdDebug() << "Redirected to newURL: " << newURL.url() << endl; + Kita::Board::setName( datToBoard( newURL.url() ), m_thread.boardName() ); + m_thread = Kita::Thread( newURL.url() ); + emit redirection( newURL.url() ); } void ThreadAccess::slotReceiveThreadData( KIO::Job*, const QByteArray& data ) { - QCString cstr(data.data(), data.size()+1); - m_threadData.append(cstr); + QCString cstr( data.data(), data.size() + 1 ); + m_threadData.append( cstr ); } -void ThreadAccess::slotThreadResult(KIO::Job* job) +void ThreadAccess::slotThreadResult( KIO::Job* job ) { - m_currentJob = 0; - if(job->error()) { - job->showErrorDialog(); - } else { - m_header = job->queryMetaData("HTTP-Headers"); - } - qApp->exit_loop(); + m_currentJob = 0; + if ( job->error() ) { + job->showErrorDialog(); + } else { + m_header = job->queryMetaData( "HTTP-Headers" ); + } + qApp->exit_loop(); } void ThreadAccess::killJob() { - if( m_currentJob ) m_currentJob->kill(); + if ( m_currentJob ) m_currentJob->kill(); } int ThreadAccess::serverTime() @@ -290,40 +272,40 @@ int ThreadAccess::serverTime() // parse HTTP headers QStringList headerList = QStringList::split( "\n", m_header ); QRegExp regexp( "Date: (...), (..) (...) (....) (..:..:..) .*" ); - QString dateStr = headerList.grep(regexp)[0]; - if( regexp.search(dateStr) == -1 ) { + QString dateStr = headerList.grep( regexp ) [ 0 ]; + if ( regexp.search( dateStr ) == -1 ) { // invalid date format return QDateTime::currentDateTime().toTime_t(); } else { // I hate this format ;p - QString usLocalDateStr = regexp.cap(1) + " " + regexp.cap(3) + " " + - regexp.cap(2) + " " + regexp.cap(5) + " " + - regexp.cap(4); + QString usLocalDateStr = regexp.cap( 1 ) + " " + regexp.cap( 3 ) + " " + + regexp.cap( 2 ) + " " + regexp.cap( 5 ) + " " + + regexp.cap( 4 ); // 1970/01/01 00:00:00 GMT - QDateTime zeroTime(QDate(1970, 1, 1), QTime(0, 0)); - return zeroTime.secsTo(QDateTime::fromString(usLocalDateStr)); + QDateTime zeroTime( QDate( 1970, 1, 1 ), QTime( 0, 0 ) ); + return zeroTime.secsTo( QDateTime::fromString( usLocalDateStr ) ); } } void ThreadFactory::insertThread( Thread& thread ) { - if( ! instance ) { - instance = new ThreadFactory(); - } + if ( ! instance ) { + instance = new ThreadFactory(); + } - Thread* new_thread = new Thread( thread.datURL(), thread.name() ); - KitaThreadInfo::setResNum( thread.datURL(), thread.resNum() ); - instance->m_dict.insert( thread.datURL(), new_thread ); + Thread* new_thread = new Thread( thread.datURL(), thread.name() ); + KitaThreadInfo::setResNum( thread.datURL(), thread.resNum() ); + instance->m_dict.insert( thread.datURL(), new_thread ); } Thread* ThreadFactory::getThread( QString& datURL ) { - if( ! instance ) { - instance = new ThreadFactory(); - } + if ( ! instance ) { + instance = new ThreadFactory(); + } - return instance->m_dict[ datURL ]; + return instance->m_dict[ datURL ]; } #include "thread.moc" diff --git a/kita/src/libkita/thread.h b/kita/src/libkita/thread.h index c31db22..d3080b9 100644 --- a/kita/src/libkita/thread.h +++ b/kita/src/libkita/thread.h @@ -1,116 +1,133 @@ /*************************************************************************** - * Copyright (C) 2003 by Hideki Ikemoto * - * ikemo@users.sourceforge.jp * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - ***************************************************************************/ +* Copyright (C) 2003 by Hideki Ikemoto * +* ikemo@users.sourceforge.jp * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +***************************************************************************/ #ifndef KITATHREAD_H #define KITATHREAD_H -#include - #include #include #include -namespace KIO { - class Job; +namespace KIO +{ + class Job; }; -namespace Kita { - -/** -@author Hideki Ikemoto -*/ - class Board; - class BoardXmlParser; - - class Thread - { - QString m_datURL; - QString m_threadName; - public: - Thread( const QString& datURL, const QString& threadName = QString::null ); - Thread(); - Thread( const Thread& obj ); - ~Thread(); - Thread& operator=( const Thread& obj ); - const QString& datURL() const; - const QString url() const; - const QString datID() const; - int resNum() const; - const QString& name() const; - void setName(const QString& name) { m_threadName = name; } - void setResNum(int resNum); - const QString& boardName() const; - const QString boardURL() const; - const QString boardID() const; - - const QString toXmlFragment() const; - static Thread fromXml( const QString& xml ); - }; - - class ThreadFactory - { - public: - static void insertThread( Thread& thread ); - static Thread* getThread( QString& datURL ); - private: - ThreadFactory() {}; - ~ThreadFactory() {}; - static ThreadFactory* instance; - QDict m_dict; - }; - - class ThreadXmlParser : public QXmlDefaultHandler - { - QString m_datUrlStr; - QString m_threadName; - int m_resNum; - Thread m_thread; - BoardXmlParser* m_boardParser; - - QString m_characters; - - bool m_inBoard; - bool m_isValid; - bool m_inThread; - public: - ThreadXmlParser() : m_boardParser(0), m_inBoard(false), m_isValid(false), m_inThread(false) {}; - ~ThreadXmlParser() {}; - bool startElement( const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts ); - bool endElement( const QString& namespaceURI, const QString& localName, const QString& qName ); - bool characters( const QString& ch ); - bool isValid() const { return m_isValid; } - Thread getThread() const { return m_thread; } - }; - - class ThreadAccess : public QObject { - Q_OBJECT - - Thread m_thread; - KIO::Job* m_currentJob; - QCString m_threadData; - QString m_header; - public: - ThreadAccess( const Thread& thread ) : m_thread(thread) {}; - ~ThreadAccess() {}; - QString get(); - void killJob(); - int serverTime(); - private: - void enter_loop(); - private slots: - void slotReceiveThreadData( KIO::Job* job, const QByteArray& data ); - void slotRedirection( KIO::Job* job, const KURL& ); - void slotThreadResult( KIO::Job* job ); - signals: - void redirection( const QString& ); - }; +class KURL; + +namespace Kita +{ + /** + @author Hideki Ikemoto + */ + class Board; + class BoardXmlParser; + + class Thread + { + public: + Thread( const QString& datURL, const QString& threadName = QString::null ); + Thread(); + ~Thread(); + + const QString& datURL() const; + const QString url() const; + const QString datID() const; + void setName( const QString& name ) { m_threadName = name; } + const QString& name() const; + void setResNum( int resNum ); + int resNum() const; + const QString& boardName() const; + const QString boardURL() const; + const QString boardID() const; + + const QString toXmlFragment() const; + static Thread fromXml( const QString& xml ); + + private: + QString m_datURL; + QString m_threadName; + }; + + class ThreadFactory + { + public: + static void insertThread( Thread& thread ); + static Thread* getThread( QString& datURL ); + + private: + static ThreadFactory* instance; + QDict m_dict; + + ThreadFactory() {}; + ~ThreadFactory() {}; + }; + + class ThreadXmlParser : public QXmlDefaultHandler + { + public: + ThreadXmlParser(); + ~ThreadXmlParser() {}; + bool startElement( const QString& namespaceURI, + const QString& localName, + const QString& qName, + const QXmlAttributes& atts ); + bool endElement( const QString& namespaceURI, + const QString& localName, + const QString& qName ); + bool characters( const QString& ch ); + bool isValid() const { return m_isValid; } + Thread getThread() const { return m_thread; } + + private: + QString m_datUrlStr; + QString m_threadName; + int m_resNum; + Thread m_thread; + BoardXmlParser* m_boardParser; + + QString m_characters; + + bool m_inBoard; + bool m_isValid; + bool m_inThread; + }; + + class ThreadAccess : public QObject + { + Q_OBJECT + + public: + ThreadAccess( const Thread& thread ) : m_thread( thread ) {}; + ~ThreadAccess() {}; + + QString get(); + void killJob(); + int serverTime(); + + private: + void enter_loop(); + + Thread m_thread; + KIO::Job* m_currentJob; + QCString m_threadData; + QString m_header; + + private slots: + void slotReceiveThreadData( KIO::Job* job, const QByteArray& data ); + void slotRedirection( KIO::Job* job, const KURL& ); + void slotThreadResult( KIO::Job* job ); + + signals: + void redirection( const QString& ); + }; }; #endif