OSDN Git Service

refactoring.
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Wed, 13 Jun 2007 15:23:47 +0000 (15:23 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Wed, 13 Jun 2007 15:23:47 +0000 (15:23 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1951 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/thread/domtree.cpp
kita/src/thread/domtree.h

index 31713fa..36c6655 100644 (file)
 #include "libkita/kita-utf8.h"
 #include "libkita/kita_misc.h"
 
-
-/*---------------------------------------------------------------*/
-/*---------------------------------------------------------------*/
-
-
 KitaDomTree::KitaDomTree( const DOM::HTMLDocument& hdoc, const KURL& datURL )
 {
     m_hdoc = hdoc;
@@ -48,9 +43,9 @@ KitaDomTree::~KitaDomTree() {}
 
 
 /*
-  This function creates DOM elements of both title and body.
-  To show the res, call appendRes().    .                     */ /* public */
-
* This function creates DOM elements of both title and body.
+ * To show the res, call appendRes()
+ */
 bool KitaDomTree::createResElement( int num )
 {
     const int mrg = 100;
@@ -59,7 +54,6 @@ bool KitaDomTree::createResElement( int num )
     /*---------------------------------*/
 
     if ( ! m_datInfo ) return FALSE;
-    if ( m_hdoc == NULL ) return FALSE;
     if ( num <= 0 ) return FALSE;
 
     if ( num < m_bufSize ) {
@@ -117,7 +111,6 @@ bool KitaDomTree::appendRes( int num )
 void KitaDomTree::redraw( bool force )
 {
     if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
     int readNum = m_datInfo->getReadNum();
 
     /* don't forget to reset abone here... */
@@ -144,15 +137,10 @@ void KitaDomTree::redraw( bool force )
 void KitaDomTree::changeColorOfAllResponsedNumber()
 {
     for ( int i = 1; i <= m_bottomNum; ++i ) {
-
         if ( m_datInfo->isResponsed( i ) ) changeColorOfNumber( i );
     }
 }
 
-
-
-/*-----------------------------------------------------------------*/
-
 /* public information */
 
 /* public */
@@ -161,14 +149,12 @@ const int KitaDomTree::getBottomResNumber() const
     return m_bottomNum;
 }
 
-/*---------------------------------------------------------------------------*/
-/* public functions for header Node, footer Node, kokomadeyonda Node, etc... */
-
-/* append footer & header  */ /* public */
+/* 
+ * append footer & header
+ */
 void KitaDomTree::appendFooterAndHeader()
 {
     if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
 
     int readNum = m_datInfo->getReadNum();
     if ( !readNum ) return ;
@@ -180,13 +166,12 @@ void KitaDomTree::appendFooterAndHeader()
     m_hdoc.body().appendChild( m_footer );
 }
 
-
-
-/* append kokomadeyonda & tugi 100 & mae 100*/ /* public */
+/*
+ * append kokomadeyonda
+ */
 void KitaDomTree::appendKokoyon()
 {
     if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
 
     int readNum = m_datInfo->getReadNum();
     if ( !readNum ) return ;
@@ -200,47 +185,56 @@ void KitaDomTree::appendKokoyon()
     else m_hdoc.body().appendChild( m_kokoyon );
 }
 
-/* private functions */
-
+/*
+ * private functions
+ */
 
-/* append "A" Node to rootnode */ /* private */
-void KitaDomTree::appendANode( DOM::Element rootnode, const QString& linkstr, const QString& comment )
+/*
+ * append "A" Node to rootnode
+ */
+void KitaDomTree::appendAnchorNode( DOM::Element rootnode, const QString& href, const QString& linkstr )
 {
-    if ( m_hdoc == NULL ) return ;
+    DOM::Element element;
 
-    DOM::Element tmpelm;
-    tmpelm = rootnode.appendChild( m_hdoc.createElement( "A" ) );
+    element = rootnode.appendChild( m_hdoc.createElement( "A" ) );
     {
-        tmpelm.setAttribute( "href", linkstr );
-        tmpelm.appendChild( m_hdoc.createTextNode( comment ) );
+        element.setAttribute( "href", href );
+        element.appendChild( m_hdoc.createTextNode( linkstr ) );
     }
 }
 
 
-/* update footer or header No  */ /* private */
-void KitaDomTree::updateHeader( DOM::Element& targetelm )
+/* 
+ * update header
+ *
+ * example
+ * before: #KokomadeYonda 1- 101- 201- #ToSaigo<br><br>
+ * after : #KokomadeYonda 1- 101- 201- 301- 401- #ToSaigo<br><br>
+ */
+void KitaDomTree::updateHeader( DOM::Element& headerElement )
 {
     if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
 
     DOM::Element backupElement1, backupElement2, backupElement3;
     int readNum = m_datInfo->getReadNum();
 
-    /* remove < a href="#tosaigo"> and <BR> */
-    backupElement1 = targetelm.removeChild( targetelm.lastChild() ); /* BR */
-    backupElement2 = targetelm.removeChild( targetelm.lastChild() ); /* BR */
-    backupElement3 = targetelm.removeChild( targetelm.lastChild() ); /* "#tosaigo" */
+    /* remove <a href="#tosaigo"> and <BR> */
+    backupElement1 = headerElement.removeChild( headerElement.lastChild() ); /* BR */
+    backupElement2 = headerElement.removeChild( headerElement.lastChild() ); /* BR */
+    backupElement3 = headerElement.removeChild( headerElement.lastChild() ); /* "#tosaigo" */
 
-    DOM::Node node = targetelm.firstChild(); /* node is now "#kokomade_yonda" */
+    DOM::Node node = headerElement.firstChild(); /* node is now "#kokomade_yonda" */
     node = node.nextSibling(); /* " " */
     node = node.nextSibling();
 
     /* '1-', '101-' などのリンクを作成 */
     for ( int num = 1; num < readNum ; num += 100 ) {
         if ( node == NULL ) {
-            QString linkstr = QString( "#%1" ).arg( num );
-            appendANode( targetelm, linkstr, QString().setNum( num ) + "-" );
-            node = targetelm.appendChild( m_hdoc.createTextNode( " " ) );
+            QString href = QString( "#%1" ).arg( num );
+            QString linkStr = QString( "%1-" ).arg( num );
+
+            appendAnchorNode( headerElement, href, linkStr );
+            node = headerElement.appendChild( m_hdoc.createTextNode( " " ) );
             node = node.nextSibling();
         } else {
             // 既にリンクが作られている場合は飛ばす
@@ -249,33 +243,40 @@ void KitaDomTree::updateHeader( DOM::Element& targetelm )
         }
     }
 
-    /* append < a href="#tosaigo"> and <BR> */
-    targetelm.appendChild( backupElement3 ); /* "#tosaigo" */
-    targetelm.appendChild( backupElement2 ); /* BR */
-    targetelm.appendChild( backupElement1 ); /* BR */
+    /* restore <a href="#tosaigo"> and <BR> */
+    headerElement.appendChild( backupElement3 ); /* "#tosaigo" */
+    headerElement.appendChild( backupElement2 ); /* BR */
+    headerElement.appendChild( backupElement1 ); /* BR */
 }
 
-/* update footer or header No  */ /* private */
-void KitaDomTree::updateFooter( DOM::Element& targetelm )
+/* 
+ * update footer
+ *
+ * example
+ * before: #KokomadeYonda 1- 101- 201- #ToSaigo
+ * after : #KokomadeYonda 1- 101- 201- 301- 401- #ToSaigo
+ */
+void KitaDomTree::updateFooter( DOM::Element& footerElement )
 {
     if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
 
-    DOM::Element bkupElm;
+    DOM::Element backupElement;
     int readNum = m_datInfo->getReadNum();
 
-    bkupElm = targetelm.removeChild( targetelm.lastChild() ); /* "#tosaigo" */
+    backupElement = footerElement.removeChild( footerElement.lastChild() ); /* "#tosaigo" */
 
-    DOM::Node node = targetelm.firstChild(); /* node is now "#kokomade_yonda" */
+    DOM::Node node = footerElement.firstChild(); /* node is now "#kokomade_yonda" */
     node = node.nextSibling(); /* " " */
     node = node.nextSibling();
 
     /* '1-', '101-' などのリンクを作成 */
     for ( int num = 1; num < readNum ; num += 100 ) {
         if ( node == NULL ) {
-            QString linkstr = QString( "#%1" ).arg( num );
-            appendANode( targetelm, linkstr, QString().setNum( num ) + "-" );
-            node = targetelm.appendChild( m_hdoc.createTextNode( " " ) );
+            QString href = QString( "#%1" ).arg( num );
+            QString linkStr = QString( "%1-" ).arg( num );
+
+            appendAnchorNode( footerElement, href, linkStr );
+            node = footerElement.appendChild( m_hdoc.createTextNode( " " ) );
             node = node.nextSibling();
         } else {
             // 既にリンクが作られている場合は飛ばす
@@ -284,17 +285,16 @@ void KitaDomTree::updateFooter( DOM::Element& targetelm )
         }
     }
 
-    targetelm.appendChild( bkupElm ); /* "#tosaigo" */
+    footerElement.appendChild( backupElement ); /* "#tosaigo" */
 }
 
-
-/* create footer or header node   */ /* private */
+/*
+ * create header node
+ */
 void KitaDomTree::createHeader()
 {
-    if ( m_hdoc == NULL ) return ;
-
     QString str;
-    DOM::Element rootnode, tmpelm;
+    DOM::Element rootnode;
 
     rootnode = m_hdoc.createElement( "DIV" );
     {
@@ -302,11 +302,11 @@ void KitaDomTree::createHeader()
         rootnode.setAttribute( "id", "header" );
 
         str = Kita::utf8ToUnicode( KITAUTF8_KOKOYON );
-        appendANode( rootnode, "#kokomade_yonda", str );
+        appendAnchorNode( rootnode, "#kokomade_yonda", str );
         rootnode.appendChild( m_hdoc.createTextNode( " " ) );
 
         str = Kita::utf8ToUnicode( KITAUTF8_SAIGO );
-        appendANode( rootnode, "#tosaigo", str );
+        appendAnchorNode( rootnode, "#tosaigo", str );
 
         rootnode.appendChild( m_hdoc.createElement( "BR" ) );
         rootnode.appendChild( m_hdoc.createElement( "BR" ) );
@@ -316,13 +316,13 @@ void KitaDomTree::createHeader()
 }
 
 
-/* create footer or header node   */ /* private */
+/*
+ * create footer node
+ */
 void KitaDomTree::createFooter()
 {
-    if ( m_hdoc == NULL ) return ;
-
     QString str;
-    DOM::Element rootnode, tmpelm;
+    DOM::Element rootnode;
 
     rootnode = m_hdoc.createElement( "DIV" );
     {
@@ -330,18 +330,19 @@ void KitaDomTree::createFooter()
         rootnode.setAttribute( "id", "footer" );
 
         str = Kita::utf8ToUnicode( KITAUTF8_KOKOYON );
-        appendANode( rootnode, "#kokomade_yonda", str );
+        appendAnchorNode( rootnode, "#kokomade_yonda", str );
         rootnode.appendChild( m_hdoc.createTextNode( " " ) );
 
         str = Kita::utf8ToUnicode( KITAUTF8_SAIGO );
-        appendANode( rootnode, "#tosaigo", str );
+        appendAnchorNode( rootnode, "#tosaigo", str );
     }
 
     m_footer = rootnode;
 }
 
-
-/* create kokomadeyonda node */ /* private */
+/*
+ * create kokomadeyonda node
+ */
 void KitaDomTree::createKokoyon()
 {
     QString str, style;
@@ -361,23 +362,18 @@ void KitaDomTree::createKokoyon()
 }
 
 
-/* change color of number */
 /*
-   specify color like this:  "a.coloredLink:link{ color: red; }"   */ /* private */
-
+ * change color of number
+ * specify color like this:  "a.coloredLink:link{ color: red; }"
+ */
 void KitaDomTree::changeColorOfNumber( int num )
 {
-    if ( ! m_datInfo ) return ;
-    if ( m_hdoc == NULL ) return ;
     if ( m_coloredNum[ num ] ) return ;
 
     m_coloredNum[ num ] = TRUE;
+
     DOM::Node node = m_titleElm[ num ];
     node = node.firstChild();
-    while ( ! node.isNull() && node.nodeName().string() != "a" ) {
-        node = node.firstChild();  /* table tag is used. */
-    }
-    if ( node.isNull() ) return;
 
-    static_cast< DOM::HTMLElement> ( node ).setAttribute( "class", "coloredLink" );
+    static_cast<DOM::HTMLElement>( node ).setAttribute( "class", "coloredLink" );
 }
index fd8951b..5b33d84 100644 (file)
@@ -71,12 +71,11 @@ public:
     /* header Node, footer Node, kokomadeyonda Node, etc... */
 
     void appendFooterAndHeader();
-
     void appendKokoyon();
 
 private:
 
-    void appendANode( DOM::Element rootnode, const QString& linkstr, const QString& comment );
+    void appendAnchorNode( DOM::Element rootnode, const QString& linkstr, const QString& comment );
     void updateHeader( DOM::Element& targetelm );
     void updateFooter( DOM::Element& targetelm );
     void createHeader();