OSDN Git Service

>>460, Kita::ListViewItem
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Fri, 5 Nov 2004 15:17:55 +0000 (15:17 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Fri, 5 Nov 2004 15:17:55 +0000 (15:17 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1498 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/Makefile.am
kita/src/kitaboardview.cpp
kita/src/kitaboardview.h
kita/src/listviewitem.cpp [new file with mode: 0644]
kita/src/listviewitem.h [new file with mode: 0644]

index be8cc19..dae8efe 100644 (file)
@@ -18,12 +18,12 @@ 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 kitaiface.skel kitasubjectview.cpp kitaboardview.cpp threadlistview.cpp favoritelistview.cpp kitaboardtabwidget.cpp kitawritetabwidget.cpp kitaimgtabwidget.cpp kitathreadtabwidget.cpp kitasubjecttabwidget.cpp kitatabwidgetbase.cpp threadlistviewbase.ui kitaboardviewbase.ui threadproperty.ui favoriteswindowbase.ui
+kita_la_SOURCES = main.cpp kita.cpp kitaiface.skel kitasubjectview.cpp kitaboardview.cpp threadlistview.cpp favoritelistview.cpp kitaboardtabwidget.cpp kitawritetabwidget.cpp kitaimgtabwidget.cpp kitathreadtabwidget.cpp kitasubjecttabwidget.cpp kitatabwidgetbase.cpp threadlistviewbase.ui kitaboardviewbase.ui threadproperty.ui favoriteswindowbase.ui listviewitem.cpp
 
 kita_SOURCES = dummy.cpp
 
 # these are the headers for your project
-noinst_HEADERS = kita.h kitasubjectview.h kitaboardview.h threadlistview.h favoritelistview.h kitaboardtabwidget.h kitawritetabwidget.h kitaimgtabwidget.h kitathreadtabwidget.h kitasubjecttabwidget.h kitatabwidgetbase.h
+noinst_HEADERS = kita.h kitasubjectview.h kitaboardview.h threadlistview.h favoritelistview.h kitaboardtabwidget.h kitawritetabwidget.h kitaimgtabwidget.h kitathreadtabwidget.h kitasubjecttabwidget.h kitatabwidgetbase.h listviewitem.h
 
 # client stuff
 kita_client_LDFLAGS = $(KDE_RPATH) $(all_libraries)
index b88f48d..a8ab4e3 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
-*   Copyright (C) 2003 by Hideki Ikemoto                                  *
+*   Copyright (C) 2004 by Kita Developers                                 *
 *   ikemo@users.sourceforge.jp                                            *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
@@ -26,9 +26,9 @@
 
 #include "kitaboardview.h"
 #include "kita.h"
+#include "listviewitem.h"
 #include "libkita/qcp932codec.h"
 #include "libkita/favoriteboards.h"
-#include "libkita/board.h"
 #include "libkita/category.h"
 #include "libkita/kitaconfig.h"
 #include "libkita/signalcollection.h"
@@ -44,6 +44,13 @@ KitaBoardView::KitaBoardView( QWidget *parent, const char *name )
     m_boardList->addColumn( i18n( "board name" ) );
     m_boardList->header() ->setClickEnabled( FALSE );
 
+    /* default colors */
+    QColorGroup colors = m_boardList->viewport()->colorGroup();
+    m_textColor = colors.text();
+    m_baseColor = colors.base();
+    m_backColor = m_boardList->viewport()->paletteBackgroundColor();
+    m_altColor = m_boardList->alternateBackground();
+
     Kita::SignalCollection* signalCollection = Kita::SignalCollection::getInstance();
     connect( m_boardList, SIGNAL( mouseButtonClicked( int, QListViewItem*, const QPoint&, int ) ),
              SLOT( slotMouseButtonClicked( int, QListViewItem* ) ) );
@@ -80,7 +87,6 @@ QString KitaBoardView::getBoardURL( const QString& line ) const
     if ( regexp.search( line ) != -1 ) {
         QString board_url = regexp.cap( 1 );
         QString board_title = regexp.cap( 2 );
-        Kita::Board::setName( board_url, board_title );
         return board_url;
     } else {
         return QString::null;
@@ -145,7 +151,7 @@ void KitaBoardView::downloadBoardList()
         for ( it2 = board_url_list.begin(); it2 != board_url_list.end(); ++it2 ) {
             QString key = QString( "item%1").arg( count );
             QString boardURL = *it2;
-            QString boardName = Kita::Board::getName( *it2 );
+            QString boardName = Kita::BoardManager::boardName( *it2 );
             QStringList tmpList;
             tmpList << boardURL;
             tmpList << boardName;
@@ -165,6 +171,19 @@ void KitaBoardView::updateBoardList()
 
 void KitaBoardView::showBoardList()
 {
+    /* color setting */
+/*
+    m_textColor = QColor( "white" );
+    m_baseColor = QColor( "red" );
+    m_backColor = QColor( "yellow" );
+    m_altColor = QColor( "blue" );    
+*/
+    /*-------------------------------------------------*/
+
+    /* set background color */
+    m_boardList->viewport()->setPaletteBackgroundColor( m_backColor );
+    m_boardList->setAlternateBackground( m_altColor );
+    
     // clear list
     m_boardList->clear();
     m_favorites = NULL;
@@ -174,14 +193,15 @@ void KitaBoardView::showBoardList()
     QStringList category_list = config.readListEntry( "Categories" );
     Kita::BoardManager::clearBoardData();
 
-    KListViewItem* previous = 0;
+    Kita::ListViewItem* previous = 0;
     QStringList::iterator it;
     for ( it = category_list.begin(); it != category_list.end(); ++it ) {
         QString category = ( *it );
 
         config.setGroup( category );
-        KListViewItem* categoryItem = new KListViewItem( m_boardList, previous, category );
-        KListViewItem* previousBoard = 0;
+        Kita::ListViewItem* categoryItem = new Kita::ListViewItem( m_boardList, previous, category );
+        categoryItem->setColor( m_textColor, m_baseColor );
+        Kita::ListViewItem* previousBoard = 0;
 
         for ( int count = 0; ; count++ ) {
             QString key = QString( "item%1" ).arg( count );
@@ -192,7 +212,8 @@ void KitaBoardView::showBoardList()
             QString boardURL = value[0];
             QString boardName = value[1];
             Kita::BoardManager::enrollBoard( boardURL, boardName );        
-            previousBoard = new KListViewItem( categoryItem, previousBoard, boardName, boardURL );
+            previousBoard = new Kita::ListViewItem( categoryItem, previousBoard, boardName, boardURL );
+            previousBoard->setColor( m_textColor, m_baseColor );
         }
         previous = categoryItem;
     }
@@ -215,7 +236,8 @@ void KitaBoardView::loadExtBoard()
         QStringList list;
         QString str;
 
-        KListViewItem* categoryItem = new KListViewItem( m_boardList, "extboard" );
+        Kita::ListViewItem* categoryItem = new Kita::ListViewItem( m_boardList, "extboard" );
+        categoryItem->setColor( m_textColor, m_baseColor );
 
         while ( ( str = stream.readLine() ) != QString::null ) {
             if ( ! str.isEmpty() ) {
@@ -225,7 +247,8 @@ void KitaBoardView::loadExtBoard()
                     QString board_title = list[ 0 ];
                     QString board_url = list[ 1 ];
 
-                    new KListViewItem( categoryItem, board_title, board_url );
+                    Kita::ListViewItem* tmpitem = new Kita::ListViewItem( categoryItem, board_title, board_url );
+                       tmpitem->setColor( m_textColor, m_baseColor );
                    Kita::BoardManager::enrollBoard( board_url, board_title );      
                 }
             }
@@ -267,8 +290,9 @@ QValueList<Kita::Category> KitaBoardView::getCategoryList( const QString& html )
 void KitaBoardView::refreshFavoriteBoards()
 {
     if ( ! m_favorites ) {
-        m_favorites = new KListViewItem( m_boardList, 0, i18n( "Favorites" ) );
+        m_favorites = new Kita::ListViewItem( m_boardList, 0, i18n( "Favorites" ) );
     }
+    m_favorites->setColor( m_textColor, m_baseColor );     
 
     do {
         QListViewItem* child = m_favorites->firstChild();
@@ -280,8 +304,9 @@ void KitaBoardView::refreshFavoriteBoards()
 
     for ( it = boards.begin(); it != boards.end(); ++it ) {
         QString boardURL = ( *it ).url();
-        QString boardName = Kita::Board::getName( boardURL );
-        new KListViewItem( m_favorites, 0, boardName, boardURL );
+        QString boardName = Kita::BoardManager::boardName( boardURL );
+        Kita::ListViewItem* tmpitem = new Kita::ListViewItem( m_favorites, 0, boardName, boardURL );
+        tmpitem->setColor( m_textColor, m_baseColor );
     }
 }
 
index 798b758..060e609 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
-*   Copyright (C) 2003 by Hideki Ikemoto                                  *
+*   Copyright (C) 2004 by Kita Developers                                 *
 *   ikemo@users.sourceforge.jp                                            *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 #include "kitaboardviewbase.h"
 
 class KURL;
-class KListViewItem;
 class QCp932Codec;
 
 namespace Kita
 {
     class Board;
     class Category;
+    class ListViewItem;
 }
 
 /**
@@ -34,9 +34,15 @@ namespace Kita
 class KitaBoardView : public KitaBoardViewBase
 {
     Q_OBJECT
-    KListViewItem* m_favorites;
+    Kita::ListViewItem* m_favorites;
     static QCp932Codec* m_cp932Codec;
 
+    /* list color */
+    QColor m_textColor;
+    QColor m_baseColor;
+    QColor m_backColor;
+    QColor m_altColor;
+    
     QString getCategory( const QString& line ) const;
     QString getBoardURL( const QString& line ) const;
     bool isBoardURL( const QString& url ) const;
diff --git a/kita/src/listviewitem.cpp b/kita/src/listviewitem.cpp
new file mode 100644 (file)
index 0000000..82edd8c
--- /dev/null
@@ -0,0 +1,103 @@
+/***************************************************************************
+*   Copyright (C) 2004 by Kita Developers                                 *
+*   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 "listviewitem.h"
+
+
+namespace Kita
+{
+    ListViewItem::ListViewItem( QListView *parent, QListViewItem *after,
+                                QString label1, QString label2, QString label3, QString label4,
+                                QString label5, QString label6, QString label7, QString label8)
+       : KListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
+    {
+       init();
+    }
+
+    ListViewItem::ListViewItem( QListViewItem *parent, QListViewItem *after,
+                                QString label1, QString label2, QString label3, QString label4,
+                                QString label5, QString label6, QString label7, QString label8)
+       : KListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
+    {
+       init();
+    }
+
+    ListViewItem::ListViewItem( QListView* parent, QString label1, QString label2  )
+       : KListViewItem( parent, label1, label2 )
+    {
+       init(); 
+    }
+
+    ListViewItem::ListViewItem( QListViewItem* parent, QString label1, QString label2  )
+       : KListViewItem( parent, label1, label2 )
+    {
+       init();
+    }
+    
+    ListViewItem::~ListViewItem()
+    {}
+
+    /* private */
+    void ListViewItem::init()
+    {
+       QColorGroup colors = listView()->viewport()->colorGroup();
+       m_textColor = colors.text();
+       m_baseColor = colors.base();
+    }
+
+    /* public */
+    void ListViewItem::setColor( QColor textColor, QColor baseColor )
+    {
+       m_textColor = textColor;
+       m_baseColor = baseColor;
+    }
+
+    /* public */ /* virtual */
+    void ListViewItem::paintCell( QPainter *p, const QColorGroup &cg,
+                                     int column, int width, int align )
+    {
+       QColorGroup color( cg.foreground(), cg.background(), cg.light(), cg.dark(),
+                          cg.mid(), m_textColor, m_baseColor );
+       
+       KListViewItem::paintCell( p, color, column, width, align );
+    }
+
+
+    /*----------------------------------------*/
+
+
+    SubjectListViewItem::SubjectListViewItem( QListView* parent )
+       : Kita::ListViewItem( parent )
+    {}
+
+    SubjectListViewItem::~SubjectListViewItem()
+    {}
+    
+    /* public */ /* virtual */    
+    int SubjectListViewItem::compare( QListViewItem* i, int col, bool ascending ) const
+    {
+       switch ( col ) {
+       case Col_ResNum:
+       case Col_Read:
+       case Col_Unread:
+           return i->key( col, ascending ).toInt() - key( col, ascending ).toInt();
+       case Col_ID:
+           return key( Col_IDOrder, ascending ).toInt() - i->key( Col_IDOrder, ascending ).toInt();
+       case Col_Mark:
+           return QString::localeAwareCompare( i->key( Col_MarkOrder, ascending ), key( Col_MarkOrder, ascending ) );
+       case Col_Since:
+           return QString::localeAwareCompare( i->key( col, ascending ), key( col, ascending ) );
+       case Col_Speed:
+           return static_cast<int>( i->key( col, ascending ).toDouble() * 1000 - key( col, ascending ).toDouble() * 1000 );
+       default:
+           return QString::localeAwareCompare( key( col, ascending ), i->key( col, ascending ) );
+       }
+    }
+} 
diff --git a/kita/src/listviewitem.h b/kita/src/listviewitem.h
new file mode 100644 (file)
index 0000000..058656f
--- /dev/null
@@ -0,0 +1,84 @@
+/***************************************************************************
+*   Copyright (C) 2004 by Kita Developers                                 *
+*   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 _KITALISTVIEWITEM_H_
+#define _KITALISTVIEWITEM_H_
+
+#include <klistview.h>
+
+enum SubjectRows {
+    Col_Mark,
+    Col_ID,
+    Col_Icon,
+    Col_Subject,
+    Col_ResNum,
+    Col_Read,
+    Col_Unread,
+    Col_Since,
+    Col_Speed,
+    Col_Board,
+    Col_DatURL,
+    Col_MarkOrder,
+    Col_IDOrder    
+};
+
+
+namespace Kita
+{
+    class ListViewItem : public KListViewItem
+    {
+       QColor m_textColor;  /* text color */
+       QColor m_baseColor;  /* background color */
+           
+      public:
+
+       ListViewItem( QListView *parent, QListViewItem *after,
+                     QString, QString = QString::null,
+                     QString = QString::null, QString = QString::null,
+                     QString = QString::null, QString = QString::null,
+                     QString = QString::null, QString = QString::null);    
+
+       ListViewItem( QListViewItem *parent, QListViewItem *after,
+                     QString, QString = QString::null,
+                     QString = QString::null, QString = QString::null,
+                     QString = QString::null, QString = QString::null,
+                     QString = QString::null, QString = QString::null);    
+
+       ListViewItem( QListView* parent, QString = QString::null, QString = QString::null );
+
+       ListViewItem( QListViewItem* parent, QString = QString::null, QString = QString::null );
+       
+       ~ListViewItem();
+
+       void setColor( QColor textColor, QColor baseColor );
+       virtual void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align );
+
+      private:
+       void init();
+    };
+
+    /*----------------------------------------*/
+    
+    /* for KitaSubjectView */
+    class SubjectListViewItem : public Kita::ListViewItem
+    {
+       SubjectListViewItem( QListView* parent );
+       ~SubjectListViewItem();
+       
+    public:
+        virtual int compare( QListViewItem* i, int col, bool ascending ) const;
+    };
+    
+} 
+
+
+
+
+#endif