OSDN Git Service

add default, use stylesheet. thanks to >>75.
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sat, 14 Aug 2004 14:56:58 +0000 (14:56 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sat, 14 Aug 2004 14:56:58 +0000 (14:56 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1287 56b19765-1e22-0410-a548-a0f45d66c51a

13 files changed:
kita/src/Makefile.am
kita/src/kita.cpp
kita/src/kita.h
kita/src/libkita/datinfo.cpp
kita/src/libkita/kitaconfig.cpp
kita/src/libkita/kitaconfig.h
kita/src/libkita/parsemisc.cpp
kita/src/libkita/signalcollection.h
kita/src/part/kitadomtree.cpp
kita/src/part/kitahtmlpart.cpp
kita/src/part/kitahtmlpart.h
kita/src/pref.cpp
kita/src/pref.h

index 4f3dcca..ec5b0a3 100644 (file)
@@ -18,7 +18,7 @@ kita_la_LIBADD = $(LIB_KFILE) $(LIB_KDEPRINT) ./part/libkitapart.la ./libkita/li
 kita_LDADD = kita.la
 
 # which sources should be compiled for kita
-kita_la_SOURCES = main.cpp kita.cpp pref.cpp kitaiface.skel kitasubjectview.h kitasubjectview.cpp kitaboardview.h kitaboardview.cpp threadlistviewbase.ui kitaboardviewbase.ui kitafontprefbase.ui favoritelistview.h favoritelistview.cpp kitathreadtabwidget.h kitathreadtabwidget.cpp kitasubjecttabwidget.h kitasubjecttabwidget.cpp kitacolorprefbase.ui threadlistview.cpp asciiartprefbase.ui debugprefbase.ui uiprefbase.ui aboneprefbase.ui aboneprefpage.cpp aboneprefpage.h loginprefbase.ui loginprefpage.h loginprefpage.cpp kitatabwidgetbase.cpp kitatabwidgetbase.h kitaimgtabwidget.cpp kitaimgtabwidget.h kitawritetabwidget.cpp kitawritetabwidget.h kitaboardtabwidget.cpp kitaboardtabwidget.h
+kita_la_SOURCES = main.cpp kita.cpp pref.cpp kitaiface.skel kitasubjectview.h kitasubjectview.cpp kitaboardview.h kitaboardview.cpp threadlistviewbase.ui kitaboardviewbase.ui kitafontprefbase.ui favoritelistview.h favoritelistview.cpp kitathreadtabwidget.h kitathreadtabwidget.cpp kitasubjecttabwidget.h kitasubjecttabwidget.cpp kitacolorprefbase.ui threadlistview.cpp stylesheetprefbase.ui asciiartprefbase.ui debugprefbase.ui uiprefbase.ui aboneprefbase.ui aboneprefpage.cpp aboneprefpage.h loginprefbase.ui loginprefpage.h loginprefpage.cpp kitatabwidgetbase.cpp kitatabwidgetbase.h kitaimgtabwidget.cpp kitaimgtabwidget.h kitawritetabwidget.cpp kitawritetabwidget.h kitaboardtabwidget.cpp kitaboardtabwidget.h
 
 kita_SOURCES = dummy.cpp
 
index d11c6aa..6c89267 100644 (file)
@@ -83,6 +83,9 @@ KitaMainWindow::KitaMainWindow()
     // load completion
     loadCompletion();
 
+    // load style sheet
+    loadStyleSheet();
+
     // load ascii art
     loadAsciiArt();
 
@@ -181,6 +184,8 @@ KitaMainWindow::~KitaMainWindow()
     saveAboneNameList();
     saveAboneWordList();
 
+    saveStyleSheet();
+
     saveAsciiArt();
 
     saveCompletion();
@@ -747,6 +752,42 @@ void KitaMainWindow::saveCompletion()
     config.sync();
 }
 
+void KitaMainWindow::loadStyleSheet()
+{
+    QString configPath = locateLocal( "appdata", "stylesheet" );
+    QFile file( configPath );
+    if ( file.open( IO_ReadOnly ) )
+    {
+        QTextStream stream( &file );
+        stream.setEncoding( QTextStream::UnicodeUTF8 );
+
+        QStringList list;
+        QString str;
+
+        while ( ( str = stream.readLine() ) != QString::null )
+        {
+            if ( ! str.isEmpty() )
+            {
+                list << str;
+            }
+        }
+        KitaConfig::setStyleSheetText( list.join( "\n" ) );
+    }
+}
+
+void KitaMainWindow::saveStyleSheet()
+{
+    QString configPath = locateLocal( "appdata", "stylesheet" );
+    QFile file( configPath );
+    if ( file.open( IO_WriteOnly ) )
+    {
+        QTextStream stream( &file ) ;
+        stream.setEncoding( QTextStream::UnicodeUTF8 );
+
+       stream << KitaConfig::styleSheetText();
+    }
+}
+
 void KitaMainWindow::loadAsciiArt()
 {
     QString configPath = locateLocal( "appdata", "asciiart" );
index 2d50872..54685a2 100644 (file)
@@ -154,6 +154,8 @@ private:
     void saveFavoriteBoards();
     void loadCompletion();
     void saveCompletion();
+    void loadStyleSheet();
+    void saveStyleSheet();
     void loadAsciiArt();
     void saveAsciiArt();
     void loadAboneIDList();
index 64b168d..6f44ef8 100644 (file)
@@ -13,6 +13,7 @@
 #include <klocale.h>
 #include <dom/html_document.h>
 #include <dom/html_element.h>
+#include <dom/html_table.h>
 #include <dom/dom_text.h>
 
 #include "datinfo.h"
@@ -848,6 +849,7 @@ bool DatInfo::getDomElement(
     QString tmpstr;
     QString status = "normal";
     DOM::Element bodynode, titlenode, tmpelm;
+    DOM::HTMLTableElement table;
     bool showAddr = KitaConfig::showMailAddress();
     bool showAA = KitaConfig::showAA();
     bool abone = checkAbonePrivate( num );
@@ -858,11 +860,13 @@ bool DatInfo::getDomElement(
     {
 
         /* title node */
-        titlenode = hdoc.createElement( "DT" );
-        ParseMisc::parseTITLEdat(PARSEMODE_DOM,hdoc,num,showAddr,resdat,titlenode,tmpstr);
+        table = hdoc.createElement( "TABLE" );
+        titlenode = table;
+        tmpelm = table.insertRow( 0 );
+        ParseMisc::parseTITLEdat(PARSEMODE_DOM,hdoc,num,showAddr,resdat,tmpelm,tmpstr);
 
         /* body node */
-        bodynode = hdoc.createElement( "DD" );
+        bodynode = hdoc.createElement( "DIV" );
         {
             /* put the span node at the head of each line */
             if ( showAA )
@@ -899,12 +903,15 @@ bool DatInfo::getDomElement(
         }
 
         /* title node */
-        titlenode = hdoc.createElement( "DT" );
-        titlenode.appendChild( hdoc.createTextNode(
+        table = hdoc.createElement( "TABLE" );
+        titlenode = table;
+        tmpelm = table.insertRow( 0 );
+        tmpelm = tmpelm.appendChild( hdoc.createElement( "TD" ) );
+        tmpelm.appendChild( hdoc.createTextNode(
                                    QString().setNum( num ) + " " + namestr ) );
 
         /* body node */
-        bodynode = hdoc.createElement( "DD" );
+        bodynode = hdoc.createElement( "DIV" );
         tmpelm = bodynode.appendChild( hdoc.createElement( "SPAN" ) );
         {
             tmpelm.setAttribute( "style", "color: red" );
@@ -913,8 +920,6 @@ bool DatInfo::getDomElement(
 
     }
 
-    bodynode.appendChild( hdoc.createElement( "BR" ) );
-    bodynode.appendChild( hdoc.createElement( "BR" ) );
 
     /*-----------------------------*/
 
@@ -926,11 +931,10 @@ bool DatInfo::getDomElement(
         retelm.setAttribute( "kita_rname", resdat.name );
         retelm.setAttribute( "kita_rid", resdat.id );
 
-        tmpelm = retelm.appendChild( hdoc.createElement( "DL" ) );
-        {
-            tmpelm.appendChild( titlenode );
-            tmpelm.appendChild( bodynode );
-        }
+        titlenode.setAttribute( "class", "res_title" );
+       bodynode.setAttribute( "class", "res_body" );
+       retelm.appendChild( titlenode );
+       retelm.appendChild( bodynode );
     }
 
     return TRUE;
index 36db173..80f8a9a 100644 (file)
@@ -23,10 +23,25 @@ KitaConfig* KitaConfig::getInstance()
 }
 
 KitaConfig::KitaConfig()
-        : m_threadColor( "black" ), m_threadBackgroundColor( "white" ),
-        m_popupColor( "black" ), m_popupBackgroundColor( "yellow" ),
-        m_showMailAddress( false ), m_MarkTime( 24 ), m_alwaysUseTab( true ),
-        m_sortOrder( Order_Mark ), m_showAA( false ), m_showNum( 100 )
+        : m_threadColor( KitaConfig::defaultThreadColor() ),
+        m_threadBackgroundColor( KitaConfig::defaultThreadBackgroundColor() ),
+        m_popupColor( KitaConfig::defaultPopupColor() ),
+        m_popupBackgroundColor( KitaConfig::defaultPopupBackgroundColor() ),
+        m_font( KitaConfig::defaultFont() ),
+        m_threadFont( KitaConfig::defaultThreadFont() ),
+        m_styleSheetText( KitaConfig::defaultStyleSheetText() ),
+        m_asciiArtList( KitaConfig::defaultAsciiArtList() ),
+        m_showMailAddress( KitaConfig::defaultShowMailAddress() ),
+        m_aboneNameList( KitaConfig::defaultAboneNameList() ),
+        m_aboneIDList( KitaConfig::defaultAboneIDList() ),
+        m_aboneWordList( KitaConfig::defaultAboneWordList() ),
+        m_MarkTime( KitaConfig::defaultMarkTime() ),
+        m_alwaysUseTab( KitaConfig::defaultAlwaysUseTab() ),
+        m_sortOrder( static_cast<SortOrder>( KitaConfig::defaultSortOrder() ) ),
+        m_showAA( KitaConfig::defaultShowAA() ),
+        m_showNum( KitaConfig::defaultShowNum() ),
+        m_usePart( KitaConfig::defaultUsePart() ),
+        m_partMimeList( KitaConfig::defaultPartMimeList() )
 {}
 
 KitaConfig::~KitaConfig()
@@ -58,25 +73,30 @@ void KitaConfig::writeConfig( KConfig* config )
 void KitaConfig::readConfig( KConfig* config )
 {
     config->setGroup( "Global" );
-    KitaConfig::setFont( config->readFontEntry( "Font" ) );
-    KitaConfig::setThreadFont( config->readFontEntry( "ThreadFont" ) );
-    KitaConfig::setShowMailAddresss( config->readBoolEntry( "ShowMailAddress" ) );
-    KitaConfig::setMarkTime( config->readUnsignedNumEntry( "MarkTime" , 24 ) );
-    KitaConfig::setSortOrder( config->readNumEntry( "SortOrder", KitaConfig::Order_Mark ) );
-    KitaConfig::setAlwaysUseTab( config->readBoolEntry( "AlwaysUseTab", false ) );
-    KitaConfig::setShowAA( config->readBoolEntry( "ShowAA", false ) );
-    KitaConfig::setShowNum( config->readNumEntry( "ShowNum", 100 ) );
-    KitaConfig::setUsePart( config->readBoolEntry( "UsePart", true ) );
-    if ( config->hasKey( "PartMimeList" ) )
-        KitaConfig::setPartMimeList( config->readListEntry( "PartMimeList" ) );
+
+    if ( config->hasKey( "Font" ) )
+    {
+        KitaConfig::setFont( config->readFontEntry( "Font" ) );
+    }
+    else {
+        KitaConfig::setFont( KitaConfig::defaultFont() );
+    }
+
+    if ( config->hasKey( "ThreadFont" ) )
+    {
+        KitaConfig::setThreadFont( config->readFontEntry( "ThreadFont" ) );
+    }
     else {
-        // set partMimeList default
-        QStringList list;
-        list << "image/gif" << "image/jpeg" << "image/png" << "image/x-bmp";
-        KitaConfig::setPartMimeList( list );
+        KitaConfig::setThreadFont( KitaConfig::defaultThreadFont() );
     }
 
-    setFont( KitaConfig::font() );
+    KitaConfig::setShowMailAddress( config->readBoolEntry( "ShowMailAddress", KitaConfig::defaultShowMailAddress() ) );
+    KitaConfig::setMarkTime( config->readUnsignedNumEntry( "MarkTime", KitaConfig::defaultMarkTime() ) );
+    KitaConfig::setSortOrder( config->readNumEntry( "SortOrder", KitaConfig::defaultSortOrder() ) );
+    KitaConfig::setAlwaysUseTab( config->readBoolEntry( "AlwaysUseTab", KitaConfig::defaultAlwaysUseTab() ) );
+    KitaConfig::setShowAA( config->readBoolEntry( "ShowAA", KitaConfig::defaultShowAA() ) );
+    KitaConfig::setShowNum( config->readNumEntry( "ShowNum", KitaConfig::defaultShowNum() ) );
+    KitaConfig::setUsePart( config->readBoolEntry( "UsePart", KitaConfig::defaultUsePart() ) );
 
     config->setGroup( "Color" );
 
@@ -85,13 +105,21 @@ void KitaConfig::readConfig( KConfig* config )
     {
         KitaConfig::setPopupColor( popupColor );
     }
+    else
+    {
+        KitaConfig::setPopupColor( KitaConfig::defaultPopupColor() );
+    }
 
     QColor popupBackgroundColor = config->readColorEntry( "PopupBackground" );
     if ( popupColor.isValid() )
     {
         KitaConfig::setPopupBackgroundColor( popupBackgroundColor );
     }
-    
+    else
+    {
+        KitaConfig::setPopupBackgroundColor( KitaConfig::defaultPopupBackgroundColor() );
+    }
+
     config->setGroup( "Account" );
     KitaConfig::setUserID( config->readEntry( "UserID" ) );
     KitaConfig::setPassword( decryptStr( config->readEntry( "Password" ) ) );
@@ -113,3 +141,48 @@ QString KitaConfig::decryptStr( const QString& aStr )
 {
     return encryptStr( aStr );
 }
+
+QString KitaConfig::defaultStyleSheetText()
+{
+    return QString(
+        "body,\n"
+        "body.pop {\n"
+        "  color: black;\n"
+        "  background-color: white;\n"
+        "}\n"
+        "\n"
+        "table.res_title,\n"
+        "table.pop_res_title {\n"
+        "  white-space: nowrap;\n"
+        "}\n"
+        "td.res_title_number,\n"
+        "td.pop_res_title_number {\n"
+        "}\n"
+        "td.res_title_name,\n"
+        "td.pop_res_title_name {\n"
+        "}\n"
+        "td.res_title_date,\n"
+        "td.pop_res_title_date {\n"
+        "}\n"
+        "td.res_title_id,\n"
+        "td.pop_res_title_id {\n"
+        "}\n"
+        "div.res_body,\n"
+        "div.pop_res_body {\n"
+        "  margin-left: 3.5em;\n"
+        "  margin-bottom: 1.8em;\n"
+        "}\n"
+        "div.kokoyon {\n"
+        "  background-color: #CCCCCC;\n"
+        "  text-align: center;\n"
+        "}\n"
+        "\n"
+        );
+}
+
+QStringList KitaConfig::defaultPartMimeList()
+{
+    QStringList list;
+    list << "image/gif" << "image/jpeg" << "image/png" << "image/x-bmp";
+    return list;
+}
index ca84815..9ff33bb 100644 (file)
@@ -38,6 +38,7 @@ private:
     QFont m_threadFont;
     QString m_boardListURL;
     KCompletion m_nameCompletion;
+    QString m_styleSheetText;
     QStringList m_asciiArtList;
     bool m_showMailAddress;
     QStringList m_aboneNameList;
@@ -65,51 +66,93 @@ public:
     static KitaConfig* getInstance();
     static QFont& font() { return getInstance() ->m_font; }
     static void setFont( QFont font ) { getInstance() ->m_font = font; }
+    static QFont defaultFont() { return QFont(); }
+
     static QFont& threadFont() { return getInstance() ->m_threadFont; }
     static void setThreadFont( QFont font ) { getInstance() ->m_threadFont = font; }
+    static QFont defaultThreadFont() { return QFont(); }
+
     static void setBoardListURL( QString url ) { getInstance() ->m_boardListURL = url; }
     static QString& boardListURL() { return getInstance() ->m_boardListURL; }
     static KCompletion* nameCompletion() { return & ( getInstance() ->m_nameCompletion ); }
     static void addNameCompletionItem( QString& item ) { getInstance() ->m_nameCompletion.addItem( item ); }
     static void setNameCompletionItems( QStringList list ) { getInstance() ->m_nameCompletion.setItems( list ); }
+
     static QColor& threadColor() { return getInstance() ->m_threadColor; }
     static void setThreadColor( QColor color ) { getInstance() ->m_threadColor = color; }
+    static QColor defaultThreadColor() { return QColor( "black" ); }
+
     static QColor& threadBackgroundColor() { return getInstance() ->m_threadBackgroundColor; }
     static void setThreadBackgroundColor( QColor color ) { getInstance() ->m_threadBackgroundColor = color; }
+    static QColor defaultThreadBackgroundColor() { return QColor( "white" ); }
+
     static QColor& popupColor() { return getInstance() ->m_popupColor; }
     static void setPopupColor( QColor color ) { getInstance() ->m_popupColor = color; }
+    static QColor defaultPopupColor() { return QColor( "black" ); }
+
     static QColor& popupBackgroundColor() { return getInstance() ->m_popupBackgroundColor; }
     static void setPopupBackgroundColor( QColor color ) { getInstance() ->m_popupBackgroundColor = color; }
+    static QColor defaultPopupBackgroundColor() { return QColor( "yellow" ); }
+
+    static QString& styleSheetText() { return getInstance() ->m_styleSheetText; }
+    static void setStyleSheetText( QString text ) { getInstance() ->m_styleSheetText = text; }
+    static QString defaultStyleSheetText();
+
     static QStringList& asciiArtList() { return getInstance() ->m_asciiArtList; }
     static void setAsciiArtList( QStringList list ) { getInstance() ->m_asciiArtList = list; }
+    static QStringList defaultAsciiArtList() { return QStringList(); }
+
     static bool showMailAddress() { return getInstance() ->m_showMailAddress; }
-    static void setShowMailAddresss( bool flag ) { getInstance() ->m_showMailAddress = flag; }
+    static void setShowMailAddress( bool flag ) { getInstance() ->m_showMailAddress = flag; }
+    static bool defaultShowMailAddress() { return false; }
+
     static QStringList& aboneNameList() { return getInstance() ->m_aboneNameList; }
     static void setAboneNameList( QStringList list ) { getInstance() ->m_aboneNameList = list; }
+    static QStringList defaultAboneNameList() { return QStringList(); }
+
     static void addAboneName( QString name ) { getInstance() ->m_aboneNameList.append( name ); }    
     static QStringList& aboneIDList() { return getInstance() ->m_aboneIDList; }
+    static QStringList defaultAboneIDList() { return QStringList(); }
+
     static void setAboneIDList( QStringList list ) { getInstance() ->m_aboneIDList = list; }
     static void addAboneID( QString id ) { getInstance() ->m_aboneIDList.append( id ); }
+
     static QStringList& aboneWordList() { return getInstance() ->m_aboneWordList; }
     static void setAboneWordList( QStringList list ) { getInstance() ->m_aboneWordList = list; }
     static void addAboneWord( QString word ) { getInstance() ->m_aboneWordList.append( word ); }
+    static QStringList defaultAboneWordList() { return QStringList(); }
+
     static bool alwaysUseTab() { return getInstance() ->m_alwaysUseTab; }
     static void setAlwaysUseTab( bool on ) { getInstance() ->m_alwaysUseTab = on; }
+    static bool defaultAlwaysUseTab() { return true; }
+
     // MarkTime(0) == special value (after last access)
     static int MarkTime() { return getInstance() ->m_MarkTime; }
     static void setMarkTime( int value ) { getInstance() ->m_MarkTime = value; }
+    static int defaultMarkTime() { return 24; }
+
     static int sortOrder() { return getInstance() ->m_sortOrder; }
     static void setSortOrder( int order ) { getInstance() ->m_sortOrder = static_cast<SortOrder>( order ); }
+    static int defaultSortOrder() { return Order_Mark; }
+
     static bool showAA() { return getInstance() ->m_showAA; }
     static void setShowAA( bool on ) { getInstance() ->m_showAA = on; }
+    static bool defaultShowAA() { return false; }
+
     static int showNum() { return getInstance() ->m_showNum; }
     static void setShowNum( int num ) { getInstance() ->m_showNum = num; }
+    static int defaultShowNum() { return 100; }
+
     static bool usePart() { return getInstance()->m_usePart; }
     static void setUsePart( bool value ) { getInstance()->m_usePart = value; }
+    static bool defaultUsePart() { return true; }
+
     static QStringList& partMimeList() { return getInstance()->m_partMimeList; }
     static void setPartMimeList( const QStringList value ) { getInstance()->m_partMimeList = value; }
     static void setPartMimeList( const QString& value )
         { getInstance()->m_partMimeList = QStringList::split( ',', value ); }
+    static QStringList defaultPartMimeList();
+
     static QString userID() { return getInstance()->m_userID; }
     static void setUserID( const QString id ) { getInstance()->m_userID = id; }
     static QString password() { return getInstance()->m_password; }
index e0a0cc2..549e696 100644 (file)
@@ -139,7 +139,9 @@ void ParseMisc::parseTITLEdat(
        
     case PARSEMODE_DOM:
        
-       tmpelm = titlenode.appendChild( hdoc.createElement( "A" ) );
+       tmpelm = titlenode.appendChild( hdoc.createElement( "TD" ) );
+       tmpelm.setAttribute( "class", "res_title_number" );
+       tmpelm = tmpelm.appendChild( hdoc.createElement( "A" ) );
        {
            /* set anchor id = number */
            tmpelm.setAttribute( "href", linkurl );
@@ -148,7 +150,7 @@ void ParseMisc::parseTITLEdat(
        break;
 
     case PARSEMODE_HTML:
-       titletext += "<a href=\"" + linkurl +"\">";
+       titletext += "<td class=\"pop_res_title_number\"><a href=\"" + linkurl +"\">";
        titletext += linkstr;
        titletext +="</a>";
        break;
@@ -174,11 +176,15 @@ void ParseMisc::parseTITLEdat(
     switch( mode ){
        
     case PARSEMODE_DOM:
-       titlenode.appendChild( hdoc.createTextNode( tmpstr ) );
-       namenode = titlenode.appendChild( hdoc.createElement( "B" ) );
+       tmpelm = titlenode.appendChild( hdoc.createElement( "TD" ) );
+       tmpelm.setAttribute( "class", "res_title_name" );
+       tmpelm.appendChild( hdoc.createTextNode( tmpstr ) );
+       namenode = tmpelm.appendChild( hdoc.createElement( "B" ) );
        break;
 
     case PARSEMODE_HTML:
+        titletext += "<td class=\"pop_res_title_name\">" + tmpstr;
+        break;
     case PARSEMODE_TEXT:
        titletext += tmpstr;
        break;  
@@ -281,7 +287,7 @@ void ParseMisc::parseTITLEdat(
 
            if ( showMailAddress && str_address != QString::null ) {
                tmpstr = QString( " [" ) + str_address + "]";
-               titlenode.appendChild( hdoc.createTextNode( tmpstr ) );
+               namenode.appendChild( hdoc.createTextNode( tmpstr ) );
            }
 
            break;
@@ -362,10 +368,15 @@ void ParseMisc::parseTITLEdat(
     switch(mode){
 
     case PARSEMODE_DOM:
-       titlenode.appendChild( hdoc.createTextNode( tmpstr ) );
+       tmpelm = titlenode.appendChild( hdoc.createElement( "TD" ) );
+       tmpelm.setAttribute( "class", "res_title_date" );
+       tmpelm.appendChild( hdoc.createTextNode( tmpstr ) );
        break;
 
     case PARSEMODE_HTML:
+        titletext += "<td class=\"pop_res_title_date\">" + tmpstr;
+        break;
+
     case PARSEMODE_TEXT:
        titletext += tmpstr;
        break;
@@ -382,19 +393,21 @@ void ParseMisc::parseTITLEdat(
 
        case PARSEMODE_DOM:
 
+            tmpelm = titlenode.appendChild( hdoc.createElement( "TD" ) );
+            tmpelm.setAttribute( "class", "res_title_id" );
            if(tmpstr.left(3) != "ID:"){
-               tmpelm = titlenode.appendChild( hdoc.createElement( "A" ) );
+               DOM::Element aelm = tmpelm.appendChild( hdoc.createElement( "A" ) );
                {
-                   tmpelm.setAttribute( "href", "#idpop" + str_id );
-                   tmpelm.appendChild( hdoc.createTextNode( "ID" ) );
+                   aelm.setAttribute( "href", "#idpop" + str_id );
+                   aelm.appendChild( hdoc.createTextNode( "ID" ) );
                }
            }
            
-           titlenode.appendChild( hdoc.createTextNode( tmpstr ) );
+           tmpelm.appendChild( hdoc.createTextNode( tmpstr ) );
            break;
 
        case PARSEMODE_HTML:
-
+            titletext += "<td class=\"pop_res_title_id\">";
            if(tmpstr.left(3) != "ID:")
                titletext += "<a href=\"#idpop" + str_id + "\">ID</a>";
            titletext += tmpstr;
@@ -698,12 +711,12 @@ QString ParseMisc::ResDatToHtml(const RESDAT& resdat, int num, bool showAddr )
     ParseMisc::parseTITLEdatText(PARSEMODE_HTML,num,showAddr,resdat,titletext);
     ParseMisc::parseBODYdatText(PARSEMODE_HTML,resdat.body,bodytext);
  
-    result = QString( "<dl><dt>" );
+    result = QString( "<table class=\"pop_res_title\"><tr>" );
     result += titletext;
-    result += "</dt><dd>";
+    result += "</tr></table><div class=\"pop_res_body\">";
     result += bodytext;
-    result += "<br/><br/></dd></dl>";
-    
+    result += "</div>";
+
     return result;
 }
 
index 72315b4..522b7fb 100644 (file)
@@ -59,6 +59,7 @@ namespace Kita
        void redrawHTMLPart( const KURL& url, bool force );
        void redrawAllHTMLPart( bool force );
        void setFontOfHTMLPart();
+       void setStyleSheetOfHTMLPart();
 
        /*--------------------------------*/    
 
index c5382fd..2d55ef7 100644 (file)
@@ -638,13 +638,12 @@ void KitaDomTree::createKokoyon()
     DOM::Element rootnode;
 
     str = Kita::ParseMisc::utf8ToUnicode( KITAUTF8_KOKOYON2 );
-    style = "background-color: #CCCCCC; text-align: center";
 
     rootnode = m_hdoc.createElement( "DIV" );
     {
+        rootnode.setAttribute( "class", "kokoyon" );
         rootnode.setAttribute( "kita_type", "kokoyon" );
         rootnode.setAttribute( "id", "kokomade_yonda" );
-        rootnode.setAttribute( "style", style );
         rootnode.appendChild( m_hdoc.createTextNode( str ) );
     }
 
index c569776..6f1cf44 100644 (file)
@@ -15,6 +15,7 @@
 #include <krun.h>
 
 #include <dom/html_element.h>
+#include <dom/html_misc.h>
 
 #include <qcursor.h>
 #include <qapplication.h>
@@ -137,6 +138,7 @@ void KitaHTMLPart::connectSignals()
     connect( signalCollection, SIGNAL( redrawHTMLPart( const KURL&, bool ) ), SLOT( slotRedrawHTMLPart( const KURL& , bool) ));
     connect( signalCollection, SIGNAL( redrawAllHTMLPart( bool ) ), SLOT( slotRedrawAllHTMLPart( bool ) ));
     connect( signalCollection, SIGNAL( setFontOfHTMLPart() ), SLOT( slotSetFontOfHTMLPart() ));
+    connect( signalCollection, SIGNAL( setStyleSheetOfHTMLPart() ), SLOT( slotSetStyleSheetOfHTMLPart() ));
 
     /* popup */
     connect( this, SIGNAL( onURL( const QString& ) ), SLOT( slotOnURL( const QString& ) ));
@@ -186,6 +188,7 @@ void KitaHTMLPart::connectSignals()
 void KitaHTMLPart::createHTMLDocument()
 {
     /* style */
+#if 0
     QString style = QString( "style=\"font-size: %1pt; "
                              "font-family: %2; "
                              "color: %3; "
@@ -197,6 +200,15 @@ void KitaHTMLPart::createHTMLDocument()
 
     QString text = "<html><head></head>";
     text += "<body " + style + "></body></html>";
+#else
+    QString style = QString( "style=\"font-size: %1pt; "
+                             "font-family: %2; \"" )
+                   .arg( KitaConfig::threadFont().pointSize() )
+                   .arg( KitaConfig::threadFont().family() );
+    QString text = "<html><head><style>";
+    text += KitaConfig::styleSheetText();
+    text += "</style></head><body " + style + "></body></html>";
+#endif
 
     setJScriptEnabled( false );
     setJavaEnabled( false );
@@ -383,6 +395,24 @@ void KitaHTMLPart::slotSetFontOfHTMLPart()
     htmlDocument().applyChanges();
 }
 
+/* public slot */
+void KitaHTMLPart::slotSetStyleSheetOfHTMLPart()
+{
+    /* [0]<html> -> [1]<head> -> [2]<style> */
+    DOM::HTMLCollection  collection = htmlDocument().all();
+    DOM::HTMLElement     elm;
+    unsigned int         i;
+    for(i = 0 ; i < collection.length() ; i++)
+    {
+        elm = collection.item(i);
+       if(elm.tagName().upper() == "STYLE")
+        {
+            elm.setInnerText( KitaConfig::styleSheetText() );
+            htmlDocument().applyChanges();
+           break;
+       }
+    }
+}
 
 /*---------------------------------------------------------------*/
 /*---------------------------------------------------------------*/
@@ -1968,8 +1998,9 @@ namespace Kita
                         .arg( KitaConfig::popupColor().name() )
                         .arg( KitaConfig::popupBackgroundColor().name() );
 
-        QString text = "<html><head>";
-        text += "</head><body " + style + ">";
+        QString text = "<html><head><style>";
+        text += KitaConfig::styleSheetText();
+        text += "</style></head><body class=\"pop\" " + style + ">";
         text += str + "</body></html>";
 
         if( m_textBrowser ) m_textBrowser->setText( text );
index 2c604bf..8a8a92c 100644 (file)
@@ -112,6 +112,7 @@ public slots:
     void slotRedrawHTMLPart( const KURL& datURL, bool force );
     void slotRedrawAllHTMLPart( bool force );
     void slotSetFontOfHTMLPart();
+    void slotSetStyleSheetOfHTMLPart();
 
     /* cache */
     void slotReceiveData();
index 6942f39..b6549e2 100644 (file)
@@ -54,6 +54,9 @@ KitaPreferences::KitaPreferences()
     QVBox * colorFrame = addVBoxPage( i18n( "Color" ), i18n( "Color" ) );
     m_colorPage = new KitaColorPrefPage( colorFrame );
 
+    QVBox * styleSheetFrame = addVBoxPage( i18n( "StyleSheet" ), i18n( "StyleSheet" ) );
+    m_styleSheetPage = new Kita::StyleSheetPrefPage( styleSheetFrame );
+
     QVBox * asciiArtFrame = addVBoxPage( i18n( "AsciiArt" ), i18n( "AsciiArt" ) );
     m_asciiArtPage = new Kita::AsciiArtPrefPage( asciiArtFrame );
 
@@ -71,6 +74,7 @@ KitaPreferences::KitaPreferences()
 
     connect( m_fontPage, SIGNAL( changed() ), SLOT( slotChanged() ) );
     connect( m_colorPage, SIGNAL( changed() ), SLOT( slotChanged() ) );
+    connect( m_styleSheetPage, SIGNAL( changed() ), SLOT( slotChanged() ) );
     connect( m_asciiArtPage, SIGNAL( changed() ), SLOT( slotChanged() ) );
     connect( m_uiPage, SIGNAL( changed() ), SLOT( slotChanged() ) );
     connect( m_abonePage, SIGNAL( changed() ), SLOT( slotChanged() ) );
@@ -92,28 +96,69 @@ void KitaPreferences::slotApply()
         m_colorPage->apply();
         break;
     case 2:
+        // style sheet
+        m_styleSheetPage->apply();
+        break;
+    case 3:
         // asciiart
         m_asciiArtPage->commit();
         break;
-    case 3:
+    case 4:
         // user interface
         m_uiPage->apply();
         break;
-    case 4:
+    case 5:
         // abone
         m_abonePage->apply();
         break;
-    case 5:
+    case 6:
         // login
         m_loginPage->apply();
         break;
-    case 6:
+    case 7:
         // debug
         break;
     }
     enableButtonApply( false );
 }
 
+void KitaPreferences::slotDefault()
+{
+    switch( activePageIndex() )
+    {
+    case 0:
+        // font
+        m_fontPage->reset();
+       break;
+    case 1:
+        // color
+        m_colorPage->reset();
+        break;
+    case 2:
+        // style sheet
+        m_styleSheetPage->reset();
+       break;
+    case 3:
+        // asciiart
+        m_asciiArtPage->reset();
+        break;
+    case 4:
+        // user
+        m_uiPage->reset();
+        break;
+    case 5:
+        // abone
+        break;
+    case 6:
+        // login
+        break;
+    case 7:
+        // debug
+        break;
+    }
+    enableButtonApply( true );
+}
+
 void KitaPreferences::slotChanged()
 {
     enableButtonApply( true );
@@ -140,6 +185,7 @@ void KitaPreferences::slotOk()
 {
     m_fontPage->apply();
     m_colorPage->apply();
+    m_styleSheetPage->apply();
     m_asciiArtPage->commit();
     m_uiPage->apply();
     m_abonePage->apply();
@@ -164,6 +210,19 @@ void KitaFontPrefPage::apply()
     m_threadFontchanged = FALSE;
 }
 
+void KitaFontPrefPage::reset()
+{
+    QFont font;
+    font  = KitaConfig::defaultFont();
+    fontButton->setText( font.family() + " " + QString::number( font.pointSize() ) );
+    fontButton->setFont( font );
+
+    font  = KitaConfig::defaultThreadFont();
+    threadFontButton->setText( font.family() + " " + QString::number( font.pointSize() ) );
+    threadFontButton->setFont( font );
+    m_threadFontchanged = TRUE;
+}
+
 void KitaFontPrefPage::slotFontButtonClicked()
 {
     QFont font = fontButton->font();
@@ -216,6 +275,12 @@ void KitaColorPrefPage::apply()
     KitaConfig::setPopupBackgroundColor( popupBackgroundColorButton->color() );
 }
 
+void KitaColorPrefPage::reset()
+{
+    popupColorButton->setColor( KitaConfig::defaultPopupColor() );
+    popupBackgroundColorButton->setColor( KitaConfig::defaultPopupBackgroundColor() );
+}
+
 DebugPrefPage::DebugPrefPage( QWidget* parent )
         : DebugPrefBase( parent )
 {
@@ -250,6 +315,34 @@ void DebugPrefPage::replace()
     }
 }
 
+StyleSheetPrefPage::StyleSheetPrefPage( QWidget* parent )
+        : StyleSheetPrefBase( parent )
+{
+    styleSheetText->setText( KitaConfig::styleSheetText() );
+
+    connect( styleSheetText, SIGNAL( textChanged() ), SIGNAL( changed() ) );
+
+    Kita::SignalCollection* signalCollection = Kita::SignalCollection::getInstance();
+    connect( this, SIGNAL( setStyleSheetOfHTMLPart() ),
+             signalCollection, SIGNAL( setStyleSheetOfHTMLPart() ) );
+}
+
+void StyleSheetPrefPage::apply()
+{
+    QString text = styleSheetText->text();
+
+    if( text != KitaConfig::styleSheetText() )
+    {
+        KitaConfig::setStyleSheetText( text );
+       emit setStyleSheetOfHTMLPart();
+    }
+}
+
+void StyleSheetPrefPage::reset()
+{
+    styleSheetText->setText( KitaConfig::defaultStyleSheetText() );
+}
+
 AsciiArtPrefPage::AsciiArtPrefPage( QWidget* parent )
         : AsciiArtPrefBase( parent )
 {
@@ -269,6 +362,12 @@ void AsciiArtPrefPage::commit()
     KitaConfig::setShowAA( showAACheckBox->isChecked() );
 }
 
+void AsciiArtPrefPage::reset()
+{
+    asciiArtText->setText( KitaConfig::defaultAsciiArtList().join( "\n" ) );
+    showAACheckBox->setChecked( KitaConfig::defaultShowAA() );
+}
+
 UIPrefPage::UIPrefPage( QWidget* parent )
         : UIPrefBase( parent )
 {
@@ -296,11 +395,22 @@ void UIPrefPage::apply()
 {
     KitaConfig::setAlwaysUseTab( useTabCheckBox->isChecked() );
     KitaConfig::setMarkTime( MarkTimespinBox->value() );
-    KitaConfig::setShowMailAddresss( showMailCheckBox->isChecked() );
+    KitaConfig::setShowMailAddress( showMailCheckBox->isChecked() );
     KitaConfig::setSortOrder( orderGroup->id( orderGroup->selected() ) );
     KitaConfig::setShowNum( showNumSpin->value() );
     KitaConfig::setUsePart( useExtPartCheck->isChecked() );
     KitaConfig::setPartMimeList( partMimeList->text() );
 }
 
+void UIPrefPage::reset()
+{
+    useTabCheckBox->setChecked( KitaConfig::defaultAlwaysUseTab() );
+    MarkTimespinBox->setValue( KitaConfig::defaultMarkTime() );
+    showMailCheckBox->setChecked( KitaConfig::defaultShowMailAddress() );
+    orderGroup->setButton( KitaConfig::defaultSortOrder() );
+    showNumSpin->setValue( KitaConfig::defaultShowNum() );
+    useExtPartCheck->setChecked( KitaConfig::defaultUsePart() );
+    partMimeList->setText( KitaConfig::defaultPartMimeList().join( "," ) );
+}
+
 #include "pref.moc"
index 59a3d6a..77ab540 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "kitafontprefbase.h"
 #include "kitacolorprefbase.h"
+#include "stylesheetprefbase.h"
 #include "asciiartprefbase.h"
 #include "uiprefbase.h"
 #include "debugprefbase.h"
@@ -30,6 +31,7 @@ class DebugPrefPage;
 
 namespace Kita
 {
+    class StyleSheetPrefPage;
     class AsciiArtPrefPage;
     class UIPrefPage;
     class AbonePrefPage;
@@ -49,6 +51,7 @@ protected:
 private:
     KitaFontPrefPage* m_fontPage;
     KitaColorPrefPage* m_colorPage;
+    Kita::StyleSheetPrefPage* m_styleSheetPage;
     Kita::AsciiArtPrefPage* m_asciiArtPage;
     Kita::UIPrefPage* m_uiPage;
     Kita::AbonePrefPage* m_abonePage;
@@ -58,6 +61,7 @@ private:
 private slots:
     void slotChanged();
     virtual void slotOk();
+    virtual void slotDefault();
 
 signals:
     void fontChanged( const QFont& );
@@ -72,6 +76,7 @@ class KitaFontPrefPage : public KitaFontPrefBase
 public:
     KitaFontPrefPage( QWidget* parent = 0 );
     void apply();
+    void reset();
 
 public slots:
     void slotFontButtonClicked();
@@ -93,6 +98,7 @@ class KitaColorPrefPage : public KitaColorPrefBase
 public:
     KitaColorPrefPage( QWidget* parent = 0 );
     void apply();
+    void reset();
 
 signals:
     void changed();
@@ -111,6 +117,20 @@ public slots:
 
 namespace Kita
 {
+    class StyleSheetPrefPage : public StyleSheetPrefBase
+    {
+        Q_OBJECT
+    public:
+        StyleSheetPrefPage( QWidget* parent = 0 );
+    public:
+        void apply();
+       void reset();
+
+    signals:
+       void setStyleSheetOfHTMLPart();
+        void changed();
+    };
+
     class AsciiArtPrefPage : public AsciiArtPrefBase
     {
         Q_OBJECT
@@ -118,6 +138,7 @@ namespace Kita
         AsciiArtPrefPage( QWidget* parent = 0 );
     public slots:
         void commit();
+        void reset();
 
     signals:
         void changed();
@@ -129,6 +150,7 @@ namespace Kita
     public:
         UIPrefPage( QWidget* parent = 0 );
         void apply();
+       void reset();
 
     signals:
         void changed();