#include "kitaboardview.h"
#include "kita.h"
-#include "part/kita2ch.h"
#include "libkita/qcp932codec.h"
#include "libkita/favoriteboards.h"
#include "libkita/board.h"
#include "libkita/datmanager.h"
#include "libkita/parsemisc.h"
#include "libkita/signalcollection.h"
-#include "part/kita2ch.h"
#include "threadproperty.h"
#include <qwidget.h>
#include <kurl.h>
#include "threadlistview.h"
-#include "part/kita2ch.h"
#include "libkita/board.h"
class KListViewItem;
#include "libkita/datmanager.h"
#include "libkita/board.h"
#include "kitawritetabwidget.h"
-#include "kitawritedialog.h"
+#include "kitawriteview.h"
#include <kdebug.h>
#include <kstdaccel.h>
/* 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 )
}
/* 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?" ),
}
/* 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 );
KURL datURL = Kita::ParseMisc::parseURLonly( url );
- KitaWriteDialog* view = findWriteView( datURL );
+ KitaWriteView* view = findWriteView( datURL );
if ( view ) slotCloseTab( indexOf( view ) );
}
/* private */
-KitaWriteDialog* KitaWriteTabWidget::findWriteView( const KURL& url )
+KitaWriteView* KitaWriteTabWidget::findWriteView( const KURL& url )
{
KURL datURL = Kita::ParseMisc::parseURLonly( 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;
}
/* 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;
/* See also KitaThreadView::setFocus. */ /* private slot */
void KitaWriteTabWidget::slotChangeWriteTab( const KURL& url )
{
- KitaWriteDialog* view;
+ KitaWriteView* view;
int max = count();
if( max == 0 ) return;
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() ) );
}
-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 );
}
#include "kitatabwidgetbase.h"
-class KitaWriteDialog;
+class KitaWriteView;
/*-----------------------------------------------*/
~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 );
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);
};
#include <qobject.h>
#include <qmutex.h>
#include <qstringlist.h>
+#include <qregexp.h>
#include "thread.h"
#include "threadinfo.h"
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++ ) {
}
+/* 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 )
{
/* 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 );
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 );
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 );
#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公序良俗に反したり、他人に迷惑をかける書き込みは控えて下さい"
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();
};
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
+++ /dev/null
-/***************************************************************************
-* 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;
-}
+++ /dev/null
-/***************************************************************************
-* 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
#include <qpopupmenu.h>
#include "kitahtmlpart.h"
-#include "kitawritedialog.h"
-#include "kita2ch.h"
#include "libkita/kitaconfig.h"
#include "libkita/kita-utf8.h"
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& ) ),
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;
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()
/*--------------------*/ /* private slots */
void KitaThreadView::slotWriteButtonClicked( QString resstr )
{
- emit showWriteView( m_datURL, resstr, m_mailaddr );
+ emit showWriteView( m_datURL, resstr );
}
{
/* config. */
- /* default name */
- m_mailaddr = "sage";
-
/*---------------------------------------*/
/* setup */
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 );
#include <ktextbrowser.h>
-#include "kita2ch.h"
-
class KURL;
class KitaHTMLPart;
-class KitaWriteDialog;
#include <qvaluestack.h> // for gcc-2.9x
template <class T> class QValueStack;
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();
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& );
};
+++ /dev/null
-/***************************************************************************
-* 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( "<", "<" ).replace( ">", ">" ).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;
- }
-}
+++ /dev/null
-/***************************************************************************
-* 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
<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">