OSDN Git Service

>>309, refactoring, external board writing, create new thread.
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 11 Oct 2004 13:20:22 +0000 (13:20 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 11 Oct 2004 13:20:22 +0000 (13:20 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1437 56b19765-1e22-0410-a548-a0f45d66c51a

17 files changed:
kita/src/kitaboardview.cpp
kita/src/kitasubjectview.cpp
kita/src/kitasubjectview.h
kita/src/kitawritetabwidget.cpp
kita/src/kitawritetabwidget.h
kita/src/libkita/datmanager.cpp
kita/src/libkita/datmanager.h
kita/src/libkita/kita-utf8.h
kita/src/libkita/signalcollection.h
kita/src/part/Makefile.am
kita/src/part/kita2ch.cpp [deleted file]
kita/src/part/kita2ch.h [deleted file]
kita/src/part/kitathreadview.cpp
kita/src/part/kitathreadview.h
kita/src/part/kitawritedialog.cpp [deleted file]
kita/src/part/kitawritedialog.h [deleted file]
kita/src/part/kitawritedialogbase.ui

index db13934..f09ad2b 100644 (file)
@@ -24,7 +24,6 @@
 
 #include "kitaboardview.h"
 #include "kita.h"
-#include "part/kita2ch.h"
 #include "libkita/qcp932codec.h"
 #include "libkita/favoriteboards.h"
 #include "libkita/board.h"
index f79bdca..ce20bbb 100644 (file)
@@ -45,7 +45,6 @@
 #include "libkita/datmanager.h"
 #include "libkita/parsemisc.h"
 #include "libkita/signalcollection.h"
-#include "part/kita2ch.h"
 
 #include "threadproperty.h"
 
index c9f3137..b475503 100644 (file)
@@ -14,7 +14,6 @@
 #include <qwidget.h>
 #include <kurl.h>
 #include "threadlistview.h"
-#include "part/kita2ch.h"
 #include "libkita/board.h"
 
 class KListViewItem;
index 0bc1d45..b1dd618 100644 (file)
@@ -14,7 +14,7 @@
 #include "libkita/datmanager.h"
 #include "libkita/board.h"
 #include "kitawritetabwidget.h"
-#include "kitawritedialog.h"
+#include "kitawriteview.h"
 
 #include <kdebug.h>
 #include <kstdaccel.h>
@@ -42,26 +42,26 @@ KitaWriteTabWidget::~KitaWriteTabWidget() {}
 
 /* public slot */
 void  KitaWriteTabWidget::slotShowWriteView( const KURL& url,
+                                            const QString& resStr )
+{
+    openWriteView( WRITEMODE_NORMAL, url, resStr, QString::null );
+}
+
+
+/* public slot */
+void  KitaWriteTabWidget::slotCreateNewThread( const KURL& url,
                                             const QString& resStr,
-                                            const QString& mailAddr)
+                                            const QString& subject)
 {
-    KURL datURL = Kita::ParseMisc::parseURLonly( url );
+    openWriteView( WRITEMODE_NEWTHREAD, url, resStr, subject );
+}
+
 
-    /* setup post info */
-    int serverTime = Kita::DatManager::getServerTime( datURL );
-    if ( !serverTime ) return;
-
-    KURL bbscgiURL = KURL( Kita::DatManager::boardURL( datURL ), "../test/bbs.cgi" );
-    bbscgiURL.setProtocol( "http" );
-
-    Kita::PostInfo info;
-    info.host = bbscgiURL.host();
-    info.bbs = Kita::DatManager::boardID( datURL );
-    info.key = Kita::DatManager::threadID( datURL );
-    info.time = QString( "%1" ).arg( serverTime );
-    info.body = resStr;
-    info.mail = mailAddr;
-    if ( ! info.check() ) return;
+/* private */
+void KitaWriteTabWidget::openWriteView( int mode, const KURL& url,
+                                            const QString& resStr, const QString& subject )
+{
+    KURL datURL = Kita::ParseMisc::parseURLonly( url );
     
     // TODO: machiBBS kakiko support.
     if ( Kita::Board::isWritingSupported( datURL ) == false )
@@ -72,11 +72,10 @@ void  KitaWriteTabWidget::slotShowWriteView( const KURL& url,
     }
 
     /* view exists */
-    KitaWriteDialog* view = findWriteView( datURL );
+    KitaWriteView* view = findWriteView( datURL );
     if ( view ) {
        
-       info = view->postInfo();
-       if( info.body.length() ){
+       if( view->body().length() ){
            
            if( QMessageBox::warning( this, "Kita",
                                      i18n( "Do you want to clear the text?" ),
@@ -85,17 +84,28 @@ void  KitaWriteTabWidget::slotShowWriteView( const KURL& url,
        }
        
        /* clear */
-       info.body = resStr;
-       view->clear( info );
+       view->setMessage( resStr );
         setCurrentPage( indexOf( view ) );
        return;
     }
 
     /* create new write view & add it to tab */
-    QString threadName = Kita::DatManager::threadName( datURL );
-    KitaWriteDialog* new_dlg = new KitaWriteDialog( this, "write dialog" );
-    new_dlg->setup ( datURL );
-    new_dlg->clear( info );
+    QString threadName;
+    KitaWriteView* new_dlg;
+    if( mode == WRITEMODE_NORMAL ){
+
+       /* write res */
+       threadName = Kita::DatManager::threadName( datURL );
+       new_dlg = new KitaWriteView( this, "write dialog", datURL, WRITEMODE_NORMAL );
+    }
+    else{
+
+       /* create new thread */
+       threadName = "New Thread";
+       new_dlg = new KitaWriteView( this, "write dialog", datURL, WRITEMODE_NEWTHREAD, subject );
+    }
+   
+    new_dlg->setMessage( resStr );
     connect( new_dlg, SIGNAL( closeCurrentTab() ), SLOT( slotCloseCurrentTab() ) );
     addTab( new_dlg, threadName );
     showPage( new_dlg );
@@ -109,7 +119,7 @@ void KitaWriteTabWidget::slotCloseWriteTab( const KURL& url )
     
     KURL datURL = Kita::ParseMisc::parseURLonly( url );
     
-    KitaWriteDialog* view = findWriteView( datURL );
+    KitaWriteView* view = findWriteView( datURL );
     if ( view ) slotCloseTab( indexOf( view ) );
 }
 
@@ -127,7 +137,7 @@ void KitaWriteTabWidget::connectSignals()
 
 
 /* private */
-KitaWriteDialog* KitaWriteTabWidget::findWriteView( const KURL& url )
+KitaWriteView* KitaWriteTabWidget::findWriteView( const KURL& url )
 {
     KURL datURL = Kita::ParseMisc::parseURLonly( url );
 
@@ -136,7 +146,7 @@ KitaWriteDialog* KitaWriteTabWidget::findWriteView( const KURL& url )
     int i = 0;
 
     while( i < max ){
-       KitaWriteDialog* view =  isWriteView( page ( i ) );
+       KitaWriteView* view =  isWriteView( page ( i ) );
        if( view ){
            if ( view->datURL() == datURL ) return view;
        }
@@ -148,11 +158,11 @@ KitaWriteDialog* KitaWriteTabWidget::findWriteView( const KURL& url )
 
 
 /* private */
-KitaWriteDialog* KitaWriteTabWidget::isWriteView( QWidget* w )
+KitaWriteView* KitaWriteTabWidget::isWriteView( QWidget* w )
 {
-    KitaWriteDialog* view = NULL;
+    KitaWriteView* view = NULL;
     if( w ){
-       if( w->isA( "KitaWriteDialog" ) ) view = static_cast< KitaWriteDialog* >( w );
+       if( w->isA( "KitaWriteView" ) ) view = static_cast< KitaWriteView* >( w );
     }
 
     return view;
@@ -164,7 +174,7 @@ KitaWriteDialog* KitaWriteTabWidget::isWriteView( QWidget* w )
 /* See also KitaThreadView::setFocus.                  */ /* private slot */
 void KitaWriteTabWidget::slotChangeWriteTab( const KURL& url )
 {
-    KitaWriteDialog* view;
+    KitaWriteView* view;
     int max = count();
     if( max == 0 ) return;
     
@@ -239,8 +249,10 @@ KitaWriteTabWidget* KitaWriteDock::setup()
     setWidget( m_writeTab );
 
     Kita::SignalCollection* signalCollection = Kita::SignalCollection::getInstance();
-    connect( signalCollection, SIGNAL( showWriteView( const KURL& , const QString&,const QString& ) ),
-            this, SLOT( slotShowWriteView( const KURL& , const QString&,const QString& ) ) );
+    connect( signalCollection, SIGNAL( showWriteView( const KURL& , const QString& ) ),
+            this, SLOT( slotShowWriteView( const KURL& , const QString& ) ) );
+    connect( signalCollection, SIGNAL( createNewThread( const KURL& , const QString&,const QString& ) ),
+            this, SLOT( slotCreateNewThread( const KURL& , const QString&,const QString& ) ) );
     connect( signalCollection, SIGNAL( switchToWritedock() ),
             SLOT( slotShowDock() ) );
     
@@ -248,12 +260,22 @@ KitaWriteTabWidget* KitaWriteDock::setup()
 }
 
 
-void  KitaWriteDock::slotShowWriteView( const KURL& url,
+void  KitaWriteDock::slotShowWriteView( const KURL& url, const QString& resStr )
+{
+    if( !m_writeTab ) return;
+    
+    slotShowDock();
+    m_writeTab->slotShowWriteView( url, resStr );
+}
+
+
+/* public slot */
+void KitaWriteDock::slotCreateNewThread( const KURL& url,
                                             const QString& resStr,
-                                            const QString& mailAddr)
+                                            const QString& subject)
 {
     if( !m_writeTab ) return;
     
     slotShowDock();
-    m_writeTab->slotShowWriteView( url, resStr, mailAddr );
+    m_writeTab->slotCreateNewThread( url, resStr, subject );
 }
index a3cd1e4..b635a13 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "kitatabwidgetbase.h"
 
-class KitaWriteDialog;
+class KitaWriteView;
 
 /*-----------------------------------------------*/    
 
@@ -27,13 +27,15 @@ public:
     ~KitaWriteTabWidget();
 
 public slots:
-    void slotShowWriteView( const KURL& url, const QString& resStr, const QString& mailAddr);
+    void slotShowWriteView( const KURL& url, const QString& resStr );
+    void slotCreateNewThread( const KURL& url, const QString& resStr, const QString& subject);
     void slotCloseWriteTab( const KURL& url ); 
     
 private:
+    void openWriteView( int mode, const KURL& url, const QString& resStr, const QString& subject );
     void connectSignals(); 
-    KitaWriteDialog* findWriteView( const KURL& url );
-    KitaWriteDialog* isWriteView( QWidget* w );
+    KitaWriteView* findWriteView( const KURL& url );
+    KitaWriteView* isWriteView( QWidget* w );
 
 private slots:
     void slotChangeWriteTab( const KURL& url );
@@ -77,7 +79,8 @@ public:
     KitaWriteTabWidget* setup();
 
 public slots:
-    void slotShowWriteView( const KURL& url, const QString& resStr, const QString& mailAddr);
+    void slotShowWriteView( const KURL& url, const QString& resStr );
+    void slotCreateNewThread( const KURL& url, const QString& resStr, const QString& subject);
 };
 
 
index 7c2cc5c..a00ea21 100644 (file)
@@ -11,6 +11,7 @@
 #include <qobject.h>
 #include <qmutex.h>
 #include <qstringlist.h>
+#include <qregexp.h>
 
 #include "thread.h"
 #include "threadinfo.h"
@@ -47,6 +48,11 @@ DatInfo* DatManager::getDatInfo( const KURL& url )
 
     KURL inurl = Kita::ParseMisc::parseURLonly( url );
 
+    /* Is this url registered thread ? */
+    // if( !Board::boardExists( inurl ) ) return NULL;
+    QRegExp threadcheck( "\\d+.dat" );
+    if( inurl.filename().find( threadcheck ) == -1 ) return NULL;
+    
     /* search */
     if ( m_datInfo.count() ) {
         for ( it = m_datInfo.begin(); it != m_datInfo.end(); ++it, i++ ) {
@@ -418,6 +424,19 @@ const QString DatManager::boardURL( const KURL& url )
 }
 
 
+/* get root URL of board from URL of dat file. */
+/* ex.) If datURL = "http://pc5.2ch.net/linux/dat/1089905503/",
+   then "http://pc5.2ch.net/" is returned.                      */ /* public */
+const QString DatManager::boardRoot( const KURL& url )
+{
+    QMutexLocker locker( &m_mutex );
+
+    KURL datURL = Kita::ParseMisc::parseURLonly( url );
+    datURL.cd( "../../../" );
+    return datURL.prettyURL();
+}
+
+
 /* get name of board from URL of dat file. */ /* public */
 const QString& DatManager::boardName( const KURL& url )
 {
@@ -588,6 +607,20 @@ int DatManager::getNumByID( const KURL& url, const QString& strid )
 
 
 /* public */
+bool DatManager::is2chThread( const KURL& url )
+{
+    QMutexLocker locker( &m_mutex );
+
+    KURL datURL = Kita::ParseMisc::parseURLonly( url );
+
+    QRegExp threadcheck( "\\d+.dat" );
+    if( datURL.filename().find( threadcheck ) == -1 ) return FALSE;
+    
+    return Kita::is2ch( datURL );
+}
+
+
+/* public */
 bool DatManager::isResValid( const KURL& url, int num )
 {
     QMutexLocker locker( &m_mutex );
index bfe222f..081cf93 100644 (file)
@@ -68,6 +68,7 @@ namespace Kita
         static const QString threadID( const KURL& url );
 
         static const QString boardURL( const KURL& url );
+        static const QString boardRoot( const KURL& url );     
         static const QString& boardName( const KURL& url );
         static const QString boardID( const KURL& url );
 
@@ -92,6 +93,7 @@ namespace Kita
         static int getNumByID( const KURL& url, const QString& strid );
 
         /* another information */
+        static bool is2chThread( const KURL& url );
         static bool isResValid( const KURL& url , int num );
         static bool isBroken( const KURL& url );
         static bool isResBroken( const KURL& url , int num );
index 3640590..46fbd04 100644 (file)
 #define  KITAUTF8_FRIDAY "(金)"
 #define  KITAUTF8_SATURDAY "(土)"
 #define  KITAUTF8_SUNDAY "(日)"
+
+
+/* for writing */
+
+#define  KITAUTF8_WRITEERROR "ERROR"
+#define  KITAUTF8_WRITETRUE "書きこみました"
+#define  KITAUTF8_WRITECOOKIE "書き込み確認"
+#define  KITAUTF8_WRITECOOKIEMSG  "投稿確認\n・投稿された内容はコピー、保存、引用、転載等される場合があります。\n・投稿に関して発生する責任は全て投稿者に帰します。\n\n全責任を負うことを承諾して書き込みますか\n"
+#define  KITAUTF8_WRITENEWTHREAD  "書き込みに関して様々なログ情報が記録されています。\n公序良俗に反したり、他人に迷惑をかける書き込みは控えて下さい"
index c1c71ea..b0b6d87 100644 (file)
@@ -118,7 +118,8 @@ namespace Kita
         void closeWriteTab( const KURL& url );
 
         /* to : KitaWriteDock */
-        void showWriteView( const KURL& , const QString&, const QString& );
+        void showWriteView( const KURL& , const QString& );
+        void createNewThread( const KURL& , const QString&, const QString& );  
         void switchToWritedock();
     };
 
index a6598d8..ee591bd 100644 (file)
@@ -9,9 +9,9 @@ libkitapart_la_LDFLAGS = -L../libkita $(all_libraries) -module -avoid-version -n
 
 libkitapart_la_LIBADD = $(LIB_KPARTS) $(LIB_KHTML) -lkita
 
-libkitapart_la_SOURCES = kitathreadview.cpp kitathreadviewbase.ui kitathreadpart.cpp kitawritedialogbase.ui kitawritedialog.cpp kita2ch.cpp kitahtmlpart.cpp kitahtmlview.cpp kitadomtree.cpp kitanavi.cpp kitaimgview.cpp
+libkitapart_la_SOURCES = kitathreadview.cpp kitathreadviewbase.ui kitathreadpart.cpp kitawritedialogbase.ui kitawriteview.cpp kitahtmlpart.cpp kitahtmlview.cpp kitadomtree.cpp kitanavi.cpp kitaimgview.cpp
 
-noinst_HEADERS = kitathreadview.h kitathreadpart.h kitawritedialog.h kita2ch.h kitahtmlpart.h kitahtmlview.h kitadomtree.h kitanavi.h kitaimgview.h
+noinst_HEADERS = kitathreadview.h kitathreadpart.h kitawriteview.h kitahtmlpart.h kitahtmlview.h kitadomtree.h kitanavi.h kitaimgview.h
 
 METASOURCES = AUTO
 
diff --git a/kita/src/part/kita2ch.cpp b/kita/src/part/kita2ch.cpp
deleted file mode 100644 (file)
index 1962f23..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/***************************************************************************
-*   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 "kita2ch.h"
-
-#include <kurl.h>
-#include <kfilterdev.h>
-#include <klocale.h>
-#include <kdebug.h>
-
-#include <kio/slaveconfig.h>
-#include <kio/netaccess.h>
-
-#include <qtextcodec.h>
-#include <qregexp.h>
-#include <qdatetime.h>
-
-#include "libkita/qcp932codec.h"
-#include "libkita/thread.h"
-
-using namespace Kita;
-
-WriteResult::WriteResult( QString str ) : m_str( str )
-{}
-
-K2chResultCode WriteResult::code() const
-{
-    QRegExp regexp( "<!-- 2ch_X:(.*) -->" );
-    int pos = regexp.search( m_str );
-
-    QString k2ch_X;
-    if ( pos != -1 ) {
-        k2ch_X = regexp.cap( 1 );
-    } else {
-        return K2ch_Unknown;
-    }
-
-    if ( k2ch_X == "true" ) {
-        return K2ch_True;
-    } else if ( k2ch_X == "false" ) {
-        return K2ch_False;
-    } else if ( k2ch_X == "error" ) {
-        return K2ch_Error;
-    } else if ( k2ch_X == "check" ) {
-        return K2ch_Check;
-    } else if ( k2ch_X == "cookie" ) {
-        return K2ch_Cookie;
-    } else {
-        kdWarning() << "unknown 2ch_X: " << k2ch_X << endl;
-        return K2ch_Unknown;
-    }
-}
-
-QString WriteResult::message() const
-{
-    QRegExp regexp( "<b>([^<]*)</b>" );
-    int pos = regexp.search( m_str );
-    if ( pos != -1 ) {
-        return regexp.cap( 1 );
-    }
-
-    QRegExp body_regexp( "<body>([^<]*)</body>" );
-    if ( body_regexp.search( m_str ) != -1 ) {
-        return body_regexp.cap( 1 );
-    }
-
-    return QString::null;
-}
-
-QString WriteResult::title() const
-{
-    QRegExp regexp( "<title>(.*)</title>" );
-    int pos = regexp.search( m_str );
-    if ( pos != -1 ) {
-        return regexp.cap( 1 );
-    } else {
-        return QString::null;
-    }
-}
-
-bool PostInfo::check() const
-{
-    if ( host.isEmpty() || bbscgi.isEmpty()
-            || bbs.isEmpty() || key.isEmpty() )
-        return false;
-
-    return true;
-}
-
-QString PostInfo::postStr()
-{
-    QCp932Codec codec;
-    int mib = codec.mibEnum();
-    QString ret;
-    ( ret += "submit=" ) += submit;
-    ( ret += "&subject=" );
-    ( ret += "&FROM=" ) += KURL::encode_string( name, mib );
-    ( ret += "&mail=" ) += KURL::encode_string( mail, mib );
-    ( ret += "&MESSAGE=" ) += KURL::encode_string( body, mib );
-    ( ret += "&bbs=" ) += bbs;
-    ( ret += "&key=" ) += key;
-    ( ret += "&time=" ) += time;
-
-    return ret;
-}
diff --git a/kita/src/part/kita2ch.h b/kita/src/part/kita2ch.h
deleted file mode 100644 (file)
index f14fde7..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************
-*   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 _KITA2CH_H_
-#define _KITA2CH_H_
-
-#include <qptrlist.h>
-
-/**
- *
- * Hideki Ikemoto
- **/
-
-#include <kurl.h>
-
-#include <qdatetime.h>
-#include <qptrlist.h>
-
-namespace Kita
-{
-    class Thread;
-    class Board;
-
-    enum K2chResultCode {
-        K2ch_Unknown,
-        K2ch_True,
-        K2ch_False,
-        K2ch_Error,
-        K2ch_Check,
-        K2ch_Cookie
-    };
-
-    class WriteResult
-    {
-
-        QString m_str;
-    public:
-        WriteResult( QString str );
-        QString toString() const { return m_str; }
-        K2chResultCode code() const;
-        QString message() const;
-        QString title() const;
-    };
-
-    struct PostInfo
-    {
-        PostInfo()
-        {
-            bbscgi = "/test/bbs.cgi";
-            submit = "%91%53%90%d3%94%43%82%f0%95%89%82%a4%82%b1%82%c6%82%f0%8f%b3%91%f8%82%b5%82%c4%8f%91%82%ab%8d%9e%82%de";
-        };
-        QString host;
-        QString bbscgi;
-        QString name;
-        QString mail;
-        QString body;
-        QString bbs;
-        QString key;
-        QString time;
-        QString submit;
-        QString cookie;
-        bool check() const;
-        QString postStr();
-    };
-}
-
-#endif
index 35aa838..ca18d20 100644 (file)
@@ -43,8 +43,6 @@
 #include <qpopupmenu.h>
 
 #include "kitahtmlpart.h"
-#include "kitawritedialog.h"
-#include "kita2ch.h"
 
 #include "libkita/kitaconfig.h"
 #include "libkita/kita-utf8.h"
@@ -134,8 +132,12 @@ KitaThreadView::KitaThreadView( QWidget* parent, const char* name )
              signalCollection, SIGNAL( updateSubjectTab( const KURL& ) ) );
     connect( this, SIGNAL( updateThreadTab( const KURL& ) ),
              signalCollection, SIGNAL( updateThreadTab( const KURL& ) ) );
-    connect( this, SIGNAL( openBoardRequested( const QString&, bool ) ),
-             signalCollection, SIGNAL( openBoardRequested( const QString&, bool ) ) );
+    connect( this, SIGNAL( openURLRequestExt(
+                               const KURL&, const KParts::URLArgs&, QString, int, int,
+                               const KURL&, const KURL&, const QString&, const QString& ) ),
+             signalCollection, SIGNAL( openURLRequestExt(
+                                           const KURL& , const KParts::URLArgs&, QString, int, int,
+                                           const KURL&, const KURL&, const QString&, const QString& ) ) );
     connect( this, SIGNAL( setMainCaption( const QString& ) ),
              signalCollection, SIGNAL( setMainCaption( const QString& ) ) );
     connect( this, SIGNAL( closeThreadTab( const KURL& ) ),
@@ -149,8 +151,11 @@ KitaThreadView::KitaThreadView( QWidget* parent, const char* name )
              signalCollection, SIGNAL( showKitaNaviByWord( const KURL& , QString ) ) );
 
     /* write dock */
-    connect( this, SIGNAL( showWriteView( const KURL& , const QString&, const QString& ) ),
-             signalCollection, SIGNAL( showWriteView( const KURL& , const QString&, const QString& ) ) );
+    connect( this, SIGNAL( showWriteView( const KURL& , const QString& ) ),
+             signalCollection, SIGNAL( showWriteView( const KURL& , const QString& ) ) );
+    connect( this, SIGNAL( createNewThread( const KURL& , const QString&, const QString& ) ),
+             signalCollection, SIGNAL( createNewThread( const KURL& , const QString&, const QString& ) ) );
+    
 
     m_viewmode = VIEWMODE_MAINVIEW;
     m_rescode = 200;
@@ -210,13 +215,13 @@ void KitaThreadView::setSubjectLabel( const QString& boardName, const QString& t
 void KitaThreadView::subjectlinkClicked( const QString& URL )
 {
     kdDebug() << QString( "Jump board: \"%1\"" ).arg( URL ) << endl;
-    emit openBoardRequested( URL, KitaConfig::alwaysUseTab() );
+    emit openURLRequestExt( URL, KParts::URLArgs(), "kita_open_2chboard", KitaConfig::alwaysUseTab() );
 }
 
 void KitaThreadView::subjectlinkMClicked( const QString &URL )
 {
     kdDebug() << QString( "Jump board as new tab: \"%1\"" ).arg( URL ) << endl;
-    emit openBoardRequested( URL, TRUE );
+    emit openURLRequestExt( URL, KParts::URLArgs(), "kita_open_2chboard", 1 );
 }
 
 void KitaThreadView::updateButton()
@@ -247,7 +252,7 @@ void KitaThreadView::updateButton()
 /*--------------------*/  /* private slots */
 void KitaThreadView::slotWriteButtonClicked( QString resstr )
 {
-    emit showWriteView( m_datURL, resstr, m_mailaddr );
+    emit showWriteView( m_datURL, resstr );
 }
 
 
@@ -454,9 +459,6 @@ void KitaThreadView::setup( const KURL& datURL, int mode )
 {
     /* config. */
 
-    /* default name */
-    m_mailaddr = "sage";
-
     /*---------------------------------------*/
     /* setup                                 */
 
@@ -653,6 +655,11 @@ void KitaThreadView::slotSearchButton()
             if ( act ) act->activate();
             return ;
         }
+        /* create new thread */
+        else if ( str.mid( 1, 3 ) == "new" ) {
+           emit createNewThread( m_datURL, QString::null, QString::null );
+            return ;
+        }      
 
         /* jump */
         QString anc = str.mid( 1 );
index 0f47e05..8c03435 100644 (file)
 
 #include <ktextbrowser.h>
 
-#include "kita2ch.h"
-
 class KURL;
 class KitaHTMLPart;
-class KitaWriteDialog;
 
 #include <qvaluestack.h> // for gcc-2.9x
 template <class T> class QValueStack;
@@ -95,16 +92,12 @@ private:
     int m_serverTime;
     KURL m_datURL;
     KitaHTMLPart* m_threadPart;
-    Kita::PostInfo m_postInfo;
     Kita::KitaSubjectLabel* subjectLabel;
 
     bool m_revsearch;
     int m_viewmode;
     int m_rescode;
 
-    /* for config */
-    QString m_mailaddr;
-
     void appendRes( int startnum, int endnum );
 
     void insertSearchCombo();
@@ -136,14 +129,21 @@ signals:
     void setMainCaption( const QString& captionStr );
     void setMainStatusbar( const QString& statusStr );
     void bookmarked( const QString& datURL, bool on );
-    void openBoardRequested( const QString& URL, bool useTab );
     void showThreadCompleted(); /* to KitaThreadPart */
     void closeThreadTab( const KURL& url );
     void closeCurrentTab(); /* to KitaThreadTabWidget */
+    void openURLRequestExt( const KURL& url, const KParts::URLArgs& args = KParts::URLArgs(),
+                            QString mimetype = QString::null,
+                            int usr1 = 0, int usr2 = 0,
+                            const KURL& usrUrl1 = KURL(),
+                            const KURL& usrUrl2 = KURL(),
+                            const QString& usrStr1 = QString::null,
+                            const QString& usrStr2 = QString::null );
 
     /* kita navi */
     void showKitaNaviByWord( const KURL& , QString );
-    void showWriteView( const KURL& , const QString&, const QString& );
+    void showWriteView( const KURL& , const QString& );
+    void createNewThread( const KURL& , const QString&, const QString& );    
     void activateThreadView( const KURL& );
 };
 
diff --git a/kita/src/part/kitawritedialog.cpp b/kita/src/part/kitawritedialog.cpp
deleted file mode 100644 (file)
index 99e5712..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/***************************************************************************
-*   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 "kitawritedialog.h"
-#include "libkita/qcp932codec.h"
-#include "libkita/kitaconfig.h"
-#include "kita2ch.h"
-#include "kitahtmlpart.h"
-#include "kitahtmlview.h"
-#include "libkita/datmanager.h"
-#include "libkita/parsemisc.h"
-#include "libkita/signalcollection.h"
-#include "libkita/board.h"
-#include "libkita/account.h"
-#include "libkita/kita_misc.h"
-
-#include <ksqueezedtextlabel.h>
-#include <klocale.h>
-#include <kdebug.h>
-#include <kstandarddirs.h>
-#include <klineedit.h>
-#include <kparts/browserextension.h>
-#include <kmessagebox.h>
-#include <kio/job.h>
-
-#include <qapplication.h>
-#include <qtextedit.h>
-#include <qpushbutton.h>
-#include <qlabel.h>
-#include <qcombobox.h>
-#include <qeucjpcodec.h>
-#include <qfile.h>
-#include <qmessagebox.h>
-#include <qtabwidget.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-static const char* cookie_title = "½ñ¤­¹þ¤ß³Îǧ";
-static const char* cookie_message =
-    "Åê¹Æ³Îǧ\n"
-    "¡¦Åê¹Æ¤µ¤ì¤¿ÆâÍƤϥ³¥Ô¡¼¡¢Êݸ¡¢°úÍÑ¡¢Å¾ºÜÅù¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£\n"
-    "¡¦Åê¹Æ¤Ë´Ø¤·¤ÆȯÀ¸¤¹¤ëÀÕǤ¤ÏÁ´¤ÆÅê¹Æ¼Ô¤Ëµ¢¤·¤Þ¤¹¡£\n"
-    "\n"
-    "Á´ÀÕǤ¤òÉ餦¤³¤È¤ò¾µÂú¤·¤Æ½ñ¤­¹þ¤ß¤Þ¤¹¤«\n";
-
-KitaWriteDialog::KitaWriteDialog( QWidget* parent, const char* name )
-    : KitaWriteDialogBase( parent, name, 0 ){}
-void KitaWriteDialog::setup( const KURL& url )
-{
-    m_datURL = Kita::ParseMisc::parseURLonly( url );
-
-    boardNameLabel->setText( Kita::DatManager::thread_boardName( m_datURL ) );
-    threadNameLabel->setText( Kita::DatManager::thread_name( m_datURL ) );
-    threadURLLabel->setText( Kita::DatManager::thread_url( m_datURL ) );
-    
-    /* connect signals */
-    Kita::SignalCollection* signalCollection = Kita::SignalCollection::getInstance();
-
-    connect( buttonOk, SIGNAL( clicked() ),
-            SLOT( postMessage() ) );
-
-    connect( buttonCancel, SIGNAL( clicked() ),
-            SLOT( reject() ) );
-
-    /* reload */
-    connect( this, SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
-             signalCollection, SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ) );
-
-    connect( faceCombo, SIGNAL( activated( const QString& ) ),
-             bodyText, SLOT( insert( const QString& ) ) );
-
-    /* setup preview  */
-    connect( qtw, SIGNAL( currentChanged ( QWidget * ) ),
-             this, SLOT( slotCurrentChanged ( QWidget * ) ) );
-
-    m_preview = new KitaHTMLPart( NULL );
-    qtw->addTab( m_preview->view(), i18n( "preview" ) );
-
-    m_preview->setup( HTMLPART_MODE_KHTML, m_datURL );
-}
-
-KitaWriteDialog::~KitaWriteDialog()
-{
-    if ( m_preview ) {
-        delete m_preview;
-    }
-}
-
-const QString KitaWriteDialog::name() const
-{
-    return nameLine->text();
-}
-
-const QString KitaWriteDialog::mail() const
-{
-    return mailLine->text();
-}
-
-const QString KitaWriteDialog::body() const
-{
-    return bodyText->text();
-}
-
-const KURL KitaWriteDialog::datURL() const
-{
-    return m_datURL;
-}
-
-const Kita::PostInfo KitaWriteDialog::postInfo() const
-{
-    Kita::PostInfo tmpInfo = m_postInfo;
-    fetchPostInfo( &tmpInfo );    
-    return tmpInfo;
-}
-
-void KitaWriteDialog::fetchPostInfo( Kita::PostInfo* storage ) const
-{
-    storage->name = name();
-    storage->mail = mail();
-    storage->body = body();
-}
-
-
-static void logPostMessage( const Kita::PostInfo& postInfo,
-                            const QString& boardName,
-                            const QString& threadName,
-                            const QString& threadURL )
-{
-    QDateTime now = QDateTime::currentDateTime();
-    QString logPath = locateLocal( "appdata", "log.txt" );
-
-    QFile file( logPath );
-    if ( file.open( IO_WriteOnly | IO_Append ) )
-    {
-        QTextStream stream( &file );
-        stream.setEncoding( QTextStream::UnicodeUTF8 );
-
-        stream << "Date   : " << now.toString( "yyyy/MM/dd hh:mm:ss" ) << endl; // ¸½ºß»þ¹ï
-        stream << "Board  : " << boardName << endl;
-        stream << "Thread : " << threadName << endl;
-        stream << "URL    : " << threadURL << endl;
-        stream << "Name   : " << postInfo.name << endl;
-        stream << "Mail   : " << postInfo.mail << endl << endl;
-        stream << postInfo.body << endl;
-        stream << "----------------------------------------" << endl;
-
-        file.close();
-    }
-}
-
-void KitaWriteDialog::postMessage()
-{
-    fetchPostInfo( &m_postInfo );
-    if ( ! m_postInfo.check() )
-        return ;
-
-
-    KitaConfig::addNameCompletionItem( m_postInfo.name );
-
-    KURL bbscgi;
-    bbscgi.setProtocol( "http" );
-    bbscgi.setHost( m_postInfo.host );
-    bbscgi.setPath( m_postInfo.bbscgi );
-
-    //int mib = QTextCodec::codecForName("CP932")->mibEnum();
-    QString postStr = m_postInfo.postStr();
-    if ( Kita::is2ch( bbscgi ) && Kita::Account::isLogged() ) {
-        postStr += "&sid=";
-        postStr += KURL::encode_string( Kita::Account::getSessionID() );
-    }
-
-
-    kdDebug() << "query: " << postStr << endl;
-    m_array.resize( 0 );
-
-    KIO::TransferJob* job = KIO::http_post( bbscgi, postStr.utf8(), true );
-    job->addMetaData( "content-type", "Content-type: application/x-www-form-urlencoded" );
-    job->addMetaData( "referrer", QString( "http://%1/%2/" ).arg( m_postInfo.host ).arg( m_postInfo.bbs ) );
-
-    if ( ! m_postInfo.cookie.isEmpty() )
-        job->addMetaData( "cookie", m_postInfo.cookie.prepend( "Cookie: " ) );
-
-    // TODO: rewrite!
-    logPostMessage( m_postInfo, boardNameLabel->text(), threadNameLabel->text(), threadURLLabel->text() );
-
-    connect( job, SIGNAL( data( KIO::Job*, const QByteArray& ) ),
-             this, SLOT( slotRecieveData( KIO::Job*, const QByteArray& ) ) );
-    connect( job, SIGNAL( result( KIO::Job* ) ),
-             this, SLOT( slotPostFinished( KIO::Job* ) ) );
-}
-
-void KitaWriteDialog::slotRecieveData( KIO::Job*, const QByteArray& data )
-{
-    m_array.append( data.data() );
-}
-
-void KitaWriteDialog::slotPostFinished( KIO::Job* )
-{
-    QString response = QTextCodec::codecForName( "sjis" ) ->toUnicode( m_array );
-    QCString output = QTextCodec::codecForName( "eucJP" ) ->fromUnicode( response );
-    kdDebug() << "response: '" << output.data() << "'" << endl;
-    KURL bbscgi;
-    bbscgi.setProtocol( "http" );
-    bbscgi.setHost( m_postInfo.host );
-    bbscgi.setPath( m_postInfo.bbscgi );
-    slotShowErrorDialog( response, bbscgi );
-
-    m_array.resize( 0 );
-}
-
-void KitaWriteDialog::reject()
-{
-    if( body().length() == 0 ){
-       emit closeCurrentTab(); /* to KitaWriteTabWidget */
-       return;
-    }
-    
-    switch ( QMessageBox::warning( this, "Kita",
-                                   i18n( "If you close this dialog, you will lose text.\n"
-                                         "Do you want to close?" ),
-                                   QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default ) )
-    {
-    case QMessageBox::Ok:
-       emit closeCurrentTab(); /* to KitaWriteTabWidget */
-        break;
-    case QMessageBox::Cancel:
-        // do nothing
-        break;
-    }
-}
-
-// vim:sw=2:
-
-/* public slot */
-void KitaWriteDialog::slotEnableWriting( bool enable ){ buttonOk->setEnabled( enable ); }
-
-/* update preview screen */
-void KitaWriteDialog::slotCurrentChanged ( QWidget * w )
-{
-    if ( w == bodyText ) return ;
-
-    int resnum = Kita::DatManager::getReadNum( m_datURL ) + 1 ;
-
-    QDateTime now = QDateTime::currentDateTime();
-    QString bodystr = body();
-    bodystr.replace( "<", "&lt;" ).replace( ">", "&gt;" ).replace( "\n", " <br> " );
-    QString namestr = name();
-    if ( namestr == NULL || namestr.length() == 0 ) namestr = "(default name)";
-    QString rawData = namestr + "<>" + mail() + "<>"
-                      + now.toString( "yy/MM/dd hh:mm" )
-                      + "<> " + bodystr + " <>";
-
-    QString htmlstr = Kita::ParseMisc::DatToHtml(rawData,resnum,KitaConfig::showMailAddress());
-    m_preview->setInnerHTML( htmlstr );
-}
-
-
-void KitaWriteDialog::clear( const Kita::PostInfo& info )
-{
-    m_postInfo = info;
-
-    QFont font = KitaConfig::threadFont();
-    bodyText->setFont( font );
-//    nameLine->setFont( font );
-//    nameLabel->setFont( font );
-//    mailLine->setFont( font );
-//    mailLabel->setFont( font );
-    
-    faceCombo->clear();
-    faceCombo->insertItem( "" );
-    QStringList list = KitaConfig::asciiArtList();
-    QStringList::iterator it;
-    for ( it = list.begin(); it != list.end(); ++it )
-    {
-        faceCombo->insertItem( *it );
-    }
-
-    nameLine->setText( info.name );
-    mailLine->setText( info.mail );
-    if ( m_postInfo.mail == "sage" )
-    {
-        sageBox->setChecked( true );
-        m_mailswap = "";
-    }
-
-    bodyText->setText( info.body );
-
-    KCompletion* comp = KitaConfig::nameCompletion();
-    nameLine->setCompletionObject( comp );
-
-    qtw->setCurrentPage( 0 );
-}
-void KitaWriteDialog::slotShowErrorDialog( const QString& input, const KURL& )
-{
-    QTextCodec * eucjpCodec = QTextCodec::codecForName( "euc-jp" );
-    KParts::URLArgs argdummy;
-    
-    kdDebug() << "'" << input << "'" << endl;
-    Kita::WriteResult writeResult( input );
-
-    kdDebug() << "code = " << writeResult.code() << endl;
-    switch ( writeResult.code() )
-    {
-       
-    case Kita::K2ch_Unknown:  // probably OK.
-
-       /* reload */
-        emit openURLRequest( m_datURL, argdummy );     
-       
-       /* clear */
-       m_postInfo.body = QString::null;
-       clear( m_postInfo );
-
-       emit closeCurrentTab(); /* to KitaWriteTabWidget */
-       
-        break;
-       
-    case Kita::K2ch_True:
-    case Kita::K2ch_False:
-    case Kita::K2ch_Check:
-        break;
-       
-    case Kita::K2ch_Error:
-       KMessageBox::error( 0, writeResult.message(), writeResult.title() );
-        break;
-       
-    case Kita::K2ch_Cookie:
-        if ( KMessageBox::questionYesNo( 0, eucjpCodec->toUnicode( cookie_message ),
-                                         eucjpCodec->toUnicode( cookie_title ) )
-                == KMessageBox::Yes )
-        {
-            postMessage();
-        }
-        break;
-
-    default:
-        break;
-    }
-}
diff --git a/kita/src/part/kitawritedialog.h b/kita/src/part/kitawritedialog.h
deleted file mode 100644 (file)
index 56e248c..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/***************************************************************************
-*   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 _KITAWRITEDIALOG_H_
-#define _KITAWRITEDIALOG_H_
-
-#include <qwidget.h>
-#include <kio/job.h>
-#include "kitawritedialogbase.h"
-#include "kita2ch.h"
-
-template <class type> class QPtrList;
-class KitaWriteDialogPrivate;
-class KitaWriteDialog;
-class KitaHTMLPart;
-class QVBoxLayout;
-class QTabWidget;
-
-namespace Kita
-{
-    class Access;
-}
-
-namespace KParts
-{
-    class URLArgs;
-}
-
-/**
- * 
- * Hideki Ikemoto
- **/
-class KitaWriteDialog : public KitaWriteDialogBase
-{
-    Q_OBJECT
-public:
-    KitaWriteDialog( QWidget* parent = 0, const char* name = 0 );
-    virtual ~KitaWriteDialog();
-    const QString name() const;
-    const QString mail() const;
-    const QString body() const;
-
-    virtual bool error() { return false; };
-
-    const KURL datURL() const;
-    void clear( const Kita::PostInfo& info );
-    const Kita::PostInfo postInfo() const;
-    void setup( const KURL& url );
-    
-public slots:
-    void slotEnableWriting( bool enable );
-    void postMessage();
-
-private slots:
-    void slotCurrentChanged ( QWidget * w );
-    void slotShowErrorDialog( const QString& input, const KURL& ); 
-
-signals:
-    void postStarted( KIO::Job*, const Kita::PostInfo& );
-    void postFinished( KIO::Job* );
-    void postResponse( const QString& response, const KURL& bbscgi = KURL() );
-
-protected:
-    Kita::PostInfo m_postInfo;
-
-protected slots:
-    virtual void reject();
-
-private:
-    void fetchPostInfo( Kita::PostInfo* storage ) const;
-
-    QCString m_array;
-    bool m_error;
-    static KitaWriteDialogPrivate* s_private;
-    KitaHTMLPart *m_preview;
-    int m_resnum;
-    KURL m_datURL;
-
-private slots:
-    void slotRecieveData( KIO::Job*, const QByteArray& );
-    void slotPostFinished( KIO::Job* );
-
-signals:
-    void openURLRequest( const KURL&, const KParts::URLArgs& );
-    void closeCurrentTab();
-};
-#endif
index 1479353..ab4f682 100644 (file)
                 <property name="name">
                     <cstring>unnamed</cstring>
                 </property>
-                <widget class="KSqueezedTextLabel" row="1" column="1">
+                <widget class="KLineEdit" row="1" column="1">
                     <property name="name">
-                        <cstring>threadNameLabel</cstring>
-                    </property>
-                    <property name="text">
-                        <string>thread name</string>
+                        <cstring>threadName</cstring>
                     </property>
                 </widget>
                 <widget class="KSqueezedTextLabel" row="0" column="1">