#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 );
}