From: ikemo Date: Fri, 11 Apr 2003 16:24:28 +0000 (+0000) Subject: refactoring... X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=48a81f4be3d18b9864e10e19784da642bc285489;p=kita%2Fkita.git refactoring... git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@151 56b19765-1e22-0410-a548-a0f45d66c51a --- diff --git a/kita/src/part/kita2ch.cpp b/kita/src/part/kita2ch.cpp index 8217941..1ddc208 100644 --- a/kita/src/part/kita2ch.cpp +++ b/kita/src/part/kita2ch.cpp @@ -135,3 +135,49 @@ const QString Thread::name() { return m_threadName; } + +Comment::Comment(QString line) : m_isValid(false) +{ + QStringList list = QStringList::split("<>", line, true); + + if(list.size() != 5) { + return; + } + m_name = list[0]; + m_address = list[1]; + m_dateId = list[2]; + m_body = list[3]; + m_subject = list[4]; + m_isValid = true; +} + +QString Comment::linkedAddress() +{ + if(m_address != "") { + return QString("%3").arg(m_address).arg(m_address).arg(m_name); + } else { + return m_name; + } +} + +QString Comment::linkedBody() +{ + QString ret; + QString str = m_body; + // see RFC 1738. + QRegExp url_rx("(h?ttp://([-.0-9a-zA-Z]+(/[;:@&=$-_.+!*'(),%~/?#0-9a-zA-Z]*)?))"); + + int i; + while ((i = str.find(url_rx)) != -1) { + if (i == 0) { + // starts with URL. + ret += QString("%2").arg(url_rx.cap(2)).arg(url_rx.cap(1)); + str.remove(0, url_rx.cap(1).length()); + } else { + ret += str.left(i); + str.remove(0, i); + } + } + ret += str; + return ret; +} diff --git a/kita/src/part/kita2ch.h b/kita/src/part/kita2ch.h index 075193a..22a513c 100644 --- a/kita/src/part/kita2ch.h +++ b/kita/src/part/kita2ch.h @@ -51,6 +51,27 @@ namespace Kita2ch int resNum(); const QString name(); }; + + class Comment + { + QString m_name; + QString m_address; + QString m_dateId; + QString m_body; + QString m_subject; + bool m_isValid; + public: + Comment(QString line); + ~Comment() {} + QString getName() { return m_name; } + QString getAddress() { return m_address; } + QString getDateId() { return m_dateId; } + QString getBody() { return m_body; } + QString getSubject() { return m_subject; } + bool isValid() { return m_isValid; } + QString linkedAddress(); + QString linkedBody(); + }; }; #endif diff --git a/kita/src/part/kitathreadview.cpp b/kita/src/part/kitathreadview.cpp index ea4d432..c3e8560 100644 --- a/kita/src/part/kitathreadview.cpp +++ b/kita/src/part/kitathreadview.cpp @@ -48,8 +48,6 @@ #include -static QString linkURL(QString); - KitaThreadView::KitaThreadView(QWidget *parent, const char *name) : KitaThreadViewBase(parent, name) , m_parent( parent ) @@ -220,20 +218,10 @@ void KitaThreadView::slotThreadResult(KIO::Job* job) progress->show(); while(!stream.atEnd()) { line = stream.readLine(); - QStringList list = QStringList::split("<>", line, true); - - if(list.size() != 5) { - // probably eof - break; - } - QString name = list[0]; - QString address = list[1]; - QString dateId = list[2]; - QString body = list[3]; - QString subject = list[4]; + Kita2ch::Comment comment(line); if(num == 1) { - m_subject = subject; + m_subject = comment.getSubject(); { QString disp( m_subject ); if ( ! m_board.name().isEmpty() ) { disp.prepend( QString("[%1]").arg(m_board.name()) ); } @@ -244,12 +232,8 @@ void KitaThreadView::slotThreadResult(KIO::Job* job) text += ""; } text += QString("
%2 ").arg(num).arg(num); - if(address != "") { - text += QString("%3").arg(address).arg(address).arg(name); - } else { - text += name; - } - text += QString(" %1
%2

").arg(dateId).arg(linkURL(body)); + text += comment.linkedAddress(); + text += QString(" %1
%2

").arg(comment.getDateId()).arg(comment.linkedBody()); num++; if( (step+=line.length()) > next ) { @@ -512,27 +496,6 @@ void KitaThreadView::slotOnURL(const QString& url) emit signalChangeStatusbar(url); } -static QString linkURL(QString str) -{ - QString ret; - // see RFC 1738. - QRegExp url_rx("(h?ttp://([-.0-9a-zA-Z]+(/[;:@&=$-_.+!*'(),%~/?#0-9a-zA-Z]*)?))"); - - int i; - while ((i = str.find(url_rx)) != -1) { - if (i == 0) { - // starts with URL. - ret += QString("%2").arg(url_rx.cap(2)).arg(url_rx.cap(1)); - str.remove(0, url_rx.cap(1).length()); - } else { - ret += str.left(i); - str.remove(0, i); - } - } - ret += str; - return ret; -} - bool KitaThreadView::gotoAnchor( const QString &name ) { KHTMLView * view = m_threadPart->view();