{
m_mode = HTMLPART_MODE_KHTML;
m_popup = NULL;
- m_domtree = NULL;
+ m_domtree = NULL;
m_datURL = QString::null;
m_updatedKokoyon = FALSE;
/* private */
-void KitaHTMLPart::clearPart(){
+void KitaHTMLPart::clearPart()
+{
- deletePopup();
+ deletePopup();
/* delete KitaDomTree */
if ( m_domtree ) delete m_domtree;
- m_domtree = NULL;
-
+ m_domtree = NULL;
+
/* update Kokomade Yonda */
- if( m_mode == HTMLPART_MODE_MAINPART && !m_updatedKokoyon && !m_datURL.isEmpty()) {
- int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if( maxNum ) Kita::DatManager::setKokoyonNum( m_datURL, maxNum );
+ if( m_mode == HTMLPART_MODE_MAINPART && !m_updatedKokoyon && !m_datURL.isEmpty())
+ {
+ int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
+ if( maxNum ) Kita::DatManager::setKokoyonNum( m_datURL, maxNum );
}
m_updatedKokoyon = FALSE;
-
+
/* don't forget to unlock previous datURL here. */
if( !m_datURL.isEmpty() ) Kita::DatManager::unlock( m_datURL );
bool KitaHTMLPart::setup( int mode, const KURL& url )
{
if( url.isEmpty() ) return FALSE;
-
+
clearPart();
/* Lock datURL. Don't forget to unlock it later ! */
m_datURL = Kita::ParseMisc::parseURLonly( url );
- Kita::DatManager::lock( m_datURL );
+ Kita::DatManager::lock( m_datURL );
/* reset abone */
Kita::DatManager::resetAbone( m_datURL );
-
- /* create HTML Document */
+
+ /* create HTML Document */
createHTMLDocument();
/* create DOM manager */
m_mode = mode;
- if( m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI ){
- m_domtree = new KitaDomTree( htmlDocument(), m_datURL );
+ if( m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI )
+ {
+ m_domtree = new KitaDomTree( htmlDocument(), m_datURL );
}
-
+
return TRUE;
}
/* private */
-void KitaHTMLPart::connectSignals(){
+void KitaHTMLPart::connectSignals()
+{
Kita::SignalCollection* signalCollection = Kita::SignalCollection::getInstance();
connect( signalCollection, SIGNAL( redrawHTMLPart( const KURL&, bool ) ), SLOT( slotRedrawHTMLPart( const KURL& , bool) ));
connect( signalCollection, SIGNAL( redrawAllHTMLPart( bool ) ), SLOT( slotRedrawAllHTMLPart( bool ) ));
connect( signalCollection, SIGNAL( setFontOfHTMLPart() ), SLOT( slotSetFontOfHTMLPart() ));
-
+
/* popup */
connect( this, SIGNAL( onURL( const QString& ) ), SLOT( slotOnURL( const QString& ) ));
connect( this, SIGNAL( isKitaActive() ), signalCollection, SIGNAL( isKitaActive() ));
connect( signalCollection, SIGNAL( kitaIsActive() ), SLOT( slotKitaIsActive() ));
connect( signalCollection, SIGNAL( windowDeactivated() ), SLOT( slotHideChildPopup() ));
-
+
/* click */
connect( this, SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
signalCollection, SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ) );
-
+
/* goto anchor */
connect( view(), SIGNAL( pushDown() ), SLOT( slotClickTugi100() ));
}
{
/* style */
QString style = QString( "style=\"font-size: %1pt; "
- "font-family: %2; "
- "color: %3; "
- "background-color: %4; border-width: 0; \"" )
- .arg( KitaConfig::threadFont().pointSize() )
- .arg( KitaConfig::threadFont().family() )
- .arg( KitaConfig::threadColor().name() )
- .arg( KitaConfig::threadBackgroundColor().name() );
-
+ "font-family: %2; "
+ "color: %3; "
+ "background-color: %4; border-width: 0; \"" )
+ .arg( KitaConfig::threadFont().pointSize() )
+ .arg( KitaConfig::threadFont().family() )
+ .arg( KitaConfig::threadColor().name() )
+ .arg( KitaConfig::threadBackgroundColor().name() );
+
QString text = "<html><head></head>";
text += "<body " + style + "></body></html>";
/* direct rendering functions */
-/*-----------------*/
+/*-----------------*/
/* show responses */
/* !!! don't forget to call updateScreen() later !!! */ /* public */
void KitaHTMLPart::showResponses( int startnum, int endnum )
{
if( !m_domtree ) return;
-
+
for ( int i = startnum ; i <= endnum; i++ ) m_domtree->appendRes( i, FALSE );
}
void KitaHTMLPart::parseResponses( int startnum, int endnum )
{
if( !m_domtree ) return;
-
+
for ( int i = startnum ; i <= endnum; i++ ) m_domtree->parseRes( i, i );
}
-/*------------------------------------------------*/
+/*------------------------------------------------*/
/* Show all responses ,header, footer, and etc,
- if these are not shown. */
+ if these are not shown. */
/* note that updateScreen() is called internally. */
/* So, you need not call it later. */ /* public slot */
int top = m_domtree->getTopResNumber();
int bottom = m_domtree->getBottomResNumber();
int totalNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if ( top != 1 || bottom != totalNum ) {
- showResponses( 1, totalNum );
- updateScreen( TRUE, TRUE );
+ if ( top != 1 || bottom != totalNum )
+ {
+ showResponses( 1, totalNum );
+ updateScreen( TRUE, TRUE );
}
}
-/*------------------------*/
+/*------------------------*/
/* insert belt node */
/* !!! don't forget to call updateScreen() later !!! */ /* public */
void KitaHTMLPart::insertBeltNode( const QString& idstr )
{
- if( !m_domtree ) return;
+ if( !m_domtree ) return;
m_domtree->createBeltNode( idstr );
}
-/*--------------------------*/
+/*--------------------------*/
/* insert header node */
/* !!! don't forget to call updateScreen() later !!! */ /* public */
void KitaHTMLPart::insertHeaderNode( const QString& str )
{
- if( !m_domtree ) return;
+ if( !m_domtree ) return;
m_domtree->createCommentNode( str, "header", 0, 2, TRUE );
}
-/*--------------------------*/
+/*--------------------------*/
/* insert footer node */
/* !!! don't forget to call updateScreen() later !!! */ /* public */
void KitaHTMLPart::insertFooterNode( const QString& str )
{
- if( !m_domtree ) return;
+ if( !m_domtree ) return;
m_domtree->createCommentNode( str, "footer", 0, 0, FALSE );
}
/* update screen */ /* public */
void KitaHTMLPart::updateScreen( bool showHeaderEtc, bool clock )
{
- if( !m_domtree ){
- view()->setFocus();
- return;
+ if( !m_domtree )
+ {
+ view()->setFocus();
+ return;
}
-
+
/* show clock cursor */
- if( clock ){
- QCursor qc; qc.setShape( Qt::WaitCursor );
- QApplication::setOverrideCursor( qc );
+ if( clock )
+ {
+ QCursor qc; qc.setShape( Qt::WaitCursor );
+ QApplication::setOverrideCursor( qc );
}
/* show header, footer, and kokomadeyonda, etc. */
- if( showHeaderEtc ){
+ if( showHeaderEtc )
+ {
- int maxNum = Kita::DatManager::getMaxResNumber( m_datURL);
+ int maxNum = Kita::DatManager::getMaxResNumber( m_datURL);
- m_domtree->appendMae100();
- m_domtree->appendTugi100();
- m_domtree->appendKokoyon();
- m_domtree->appendFooter( maxNum );
+ m_domtree->appendMae100();
+ m_domtree->appendTugi100();
+ m_domtree->appendKokoyon();
+ m_domtree->appendFooter( maxNum );
}
/*----------------------------*/
-
+
/* update display */
htmlDocument().applyChanges();
view()->layout();
/* public */
void KitaHTMLPart::setInnerHTML( const QString& innerHTML )
{
- createHTMLDocument();
+ createHTMLDocument();
htmlDocument().body().setInnerHTML( innerHTML );
}
/* redraw screen */
/* These slots are connected to signalCollection. */ /* public slot */
-void KitaHTMLPart::slotRedrawHTMLPart( const KURL& datURL, bool force ){
+void KitaHTMLPart::slotRedrawHTMLPart( const KURL& datURL, bool force )
+{
if( m_domtree == NULL ) return;
if( m_datURL != datURL ) return;
}
/* public slot */
-void KitaHTMLPart::slotRedrawAllHTMLPart( bool force ){
+void KitaHTMLPart::slotRedrawAllHTMLPart( bool force )
+{
if( m_domtree == NULL ) return;
m_domtree->redraw( force );
}
/* public slot */
-void KitaHTMLPart::slotSetFontOfHTMLPart(){
+void KitaHTMLPart::slotSetFontOfHTMLPart()
+{
QFont font = KitaConfig::threadFont();
-
+
DOM::CSSStyleDeclaration style = htmlDocument().body().style();
style.setProperty( "font-family", font.family(), "" );
- style.setProperty( "font-size", QString( "%1pt" ).arg( font.pointSize() ), "" );
+ style.setProperty( "font-size", QString( "%1pt" ).arg( font.pointSize() ), "" );
htmlDocument().applyChanges();
}
/* top = centerNum - preShowNum
bottom = centerNum + afterShowNum
maxNum = ita::DatManager::getMaxResNumber
-
+
No.1 <- show -> No.20 <- not show -> No.(top) <- show -> No.(bottom) <- not show -> No.(maxNum) */
-bool KitaHTMLPart::load( int centerNum ){
-
+bool KitaHTMLPart::load( int centerNum )
+{
+
/* config */
-
+
int preShowNum = KitaConfig::preShowNum();
if( preShowNum == 0 ) preShowNum = 5000;
int afterShowNum = KitaConfig::afterShowNum();
/*--------------------------------*/
m_centerNum = centerNum;
-
+
if( m_mode != HTMLPART_MODE_MAINPART ) return FALSE;
if( !m_domtree ) return FALSE;
if( Kita::DatManager::getMaxResNumber( m_datURL ) == 0 ) return FALSE;
updateScreen( TRUE , FALSE );
gotoAnchor( QString().setNum( m_centerNum ), FALSE );
view()->setFocus();
-
+
return TRUE;
}
const bool online = TRUE;
/*--------------------------------*/
-
+
if( !online ) return FALSE;
if( !m_domtree ) return FALSE;
- if( m_mode != HTMLPART_MODE_MAINPART ){
- /* If this is not MainPart, then open MainPart. */
- KParts::URLArgs argdummy;
- emit openURLRequest( m_datURL, argdummy );
- return FALSE;
+ if( m_mode != HTMLPART_MODE_MAINPART )
+ {
+ /* If this is not MainPart, then open MainPart. */
+ KParts::URLArgs argdummy;
+ emit openURLRequest( m_datURL, argdummy );
+ return FALSE;
}
-
+
m_domtree->StopParseThread();
m_firstReceive = TRUE;
if( m_centerNum == 0 ) m_centerNum = m_domtree->getBottomResNumber();
if( m_mode != HTMLPART_MODE_MAINPART ) return;
if( !m_domtree ) return;
- int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
+ int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
int bottom = m_domtree->getBottomResNumber();
int showNum = m_centerNum + afterShowNum;
/* parsing */
if( oneAfterAnother ) parseResponses( bottom+1, maxNum );
-
+
/* rendering */
if( m_firstReceive
- || ( bottom + delta < maxNum && maxNum <= showNum + delta -1 ) ){
+ || ( bottom + delta < maxNum && maxNum <= showNum + delta -1 ) )
+ {
- if( oneAfterAnother ){
- showResponses( bottom+1, QMIN( maxNum, showNum ) );
- updateScreen( TRUE, FALSE );
- }
- else parseResponses( bottom+1, QMIN( maxNum, showNum ) );
+ if( oneAfterAnother )
+ {
+ showResponses( bottom+1, QMIN( maxNum, showNum ) );
+ updateScreen( TRUE, FALSE );
+ }
+ else parseResponses( bottom+1, QMIN( maxNum, showNum ) );
}
- if( m_firstReceive && m_centerNum < maxNum ){
- gotoAnchor( QString().setNum( m_centerNum ), FALSE );
- m_firstReceive = FALSE;
+ if( m_firstReceive && m_centerNum < maxNum )
+ {
+ gotoAnchor( QString().setNum( m_centerNum ), FALSE );
+ m_firstReceive = FALSE;
}
emit receiveData();
/* config */
int afterShowNum = KitaConfig::afterShowNum();
if( afterShowNum == 0 ) afterShowNum = 5000; /* TODO: fix it. */
-
+
/*--------------------------------*/
-
+
if( m_mode != HTMLPART_MODE_MAINPART ) return;
if( !m_domtree ) return;
{
if( anc == QString::null ) return FALSE;
if( !m_domtree || m_mode == HTMLPART_MODE_KHTML || m_mode == HTMLPART_MODE_POPUP )
- return KHTMLPart::gotoAnchor( anc );
+ return KHTMLPart::gotoAnchor( anc );
hidePopup();
- QString ancstr = anc;
+ QString ancstr = anc;
int res = ancstr.toInt();
-
- if ( res > 1 ) {
+
+ if ( res > 1 )
+ {
/* is target valid ? */
if ( !Kita::DatManager::isResValid( m_datURL, res ) ) return FALSE;
/* show res if it is not shown */
- if ( !m_domtree->isResShown( res ) ) {
-
- if( m_mode != HTMLPART_MODE_MAINPART ) return FALSE;
-
- int top = m_domtree->getTopResNumber();
- int bottom = m_domtree->getBottomResNumber();
-
- if ( res > bottom ){
- showResponses( bottom + 1, res );
- updateScreen( TRUE, TRUE );
- }
- else if ( res < top ) {
- m_domtree->appendTemplate();
- showResponses( res, bottom );
- updateScreen( TRUE , TRUE );
+ if ( !m_domtree->isResShown( res ) )
+ {
+
+ if( m_mode != HTMLPART_MODE_MAINPART ) return FALSE;
+
+ int top = m_domtree->getTopResNumber();
+ int bottom = m_domtree->getBottomResNumber();
+
+ if ( res > bottom )
+ {
+ showResponses( bottom + 1, res );
+ updateScreen( TRUE, TRUE );
+ }
+ else if ( res < top )
+ {
+ m_domtree->appendTemplate();
+ showResponses( res, bottom );
+ updateScreen( TRUE , TRUE );
}
}
/* Target is not shown. Maybe it is aboned. */
- while ( res > 1 && !m_domtree->isResShown( res ) ) res--;
+ while ( res > 1 && !m_domtree->isResShown( res ) ) res--;
ancstr = QString().setNum( res );
}
- if ( res == 1 ) ancstr = "header";
+ if ( res == 1 ) ancstr = "header";
if ( pushPosition ) pushCurrentPosition();
return KHTMLPart::gotoAnchor( ancstr );
}
void KitaHTMLPart::slotGobackAnchor()
{
if ( m_anchorStack.empty() ) return;
-
+
QString anc = m_anchorStack.last();
m_anchorStack.pop_back();
gotoAnchor( anc , FALSE );
/* public slot */
-void KitaHTMLPart::slotClickTugi100()
+void KitaHTMLPart::slotClickTugi100()
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int bottom = m_domtree->getBottomResNumber();
int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if ( maxNum != bottom ) {
- showResponses( bottom + 1, bottom + 100 );
- updateScreen( TRUE, TRUE );
+ if ( maxNum != bottom )
+ {
+ showResponses( bottom + 1, bottom + 100 );
+ updateScreen( TRUE, TRUE );
}
}
/* public slot */
-void KitaHTMLPart::slotClickNokori()
+void KitaHTMLPart::slotClickNokori()
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int bottom = m_domtree->getBottomResNumber();
int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if ( maxNum != bottom ) {
- showResponses( bottom + 1, maxNum );
- updateScreen( TRUE, TRUE );
+ if ( maxNum != bottom )
+ {
+ showResponses( bottom + 1, maxNum );
+ updateScreen( TRUE, TRUE );
}
}
void KitaHTMLPart::slotClickGotoFooter()
{
if( !m_domtree
- || m_mode != HTMLPART_MODE_MAINPART
- ){
- gotoAnchor( "footer", FALSE );
- return;
+ || m_mode != HTMLPART_MODE_MAINPART
+ )
+ {
+ gotoAnchor( "footer", FALSE );
+ return;
}
-
+
int bottom = m_domtree->getBottomResNumber();
int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if ( maxNum != bottom ) {
- showResponses( bottom + 1, maxNum );
- updateScreen( TRUE, TRUE );
+ if ( maxNum != bottom )
+ {
+ showResponses( bottom + 1, maxNum );
+ updateScreen( TRUE, TRUE );
}
gotoAnchor( "footer", FALSE );
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int top = m_domtree->getTopResNumber();
int bottom = m_domtree->getBottomResNumber();
-
- if ( top != 1 ) {
- m_domtree->appendTemplate();
- showResponses( top - 100, bottom );
- updateScreen( TRUE, TRUE );
- gotoAnchor( QString().setNum( top ), FALSE );
+ if ( top != 1 )
+ {
+ m_domtree->appendTemplate();
+ showResponses( top - 100, bottom );
+ updateScreen( TRUE, TRUE );
+
+ gotoAnchor( QString().setNum( top ), FALSE );
}
}
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int top = m_domtree->getTopResNumber();
int bottom = m_domtree->getBottomResNumber();
-
- if ( top != 1 ) {
- showResponses( 1, bottom );
- updateScreen( TRUE, TRUE);
- gotoAnchor( QString().setNum( top ), FALSE );
+ if ( top != 1 )
+ {
+ showResponses( 1, bottom );
+ updateScreen( TRUE, TRUE);
+
+ gotoAnchor( QString().setNum( top ), FALSE );
}
}
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int top = m_domtree->getTopResNumber();
int bottom = m_domtree->getBottomResNumber();
int tmpnum = m_domtree->getTemplateNumber();
- if ( tmpnum < top ) {
- m_domtree->setTemplateNumber( tmpnum + 100 );
- m_domtree->appendTemplate();
- showResponses( top, bottom );
- updateScreen( TRUE, TRUE );
+ if ( tmpnum < top )
+ {
+ m_domtree->setTemplateNumber( tmpnum + 100 );
+ m_domtree->appendTemplate();
+ showResponses( top, bottom );
+ updateScreen( TRUE, TRUE );
- gotoAnchor( QString().setNum( tmpnum ), FALSE );
+ gotoAnchor( QString().setNum( tmpnum ), FALSE );
}
}
-
+
/* public slot */
void KitaHTMLPart::slotClickShowAll()
{
if( !m_domtree ) return;
if( m_mode != HTMLPART_MODE_MAINPART ) return;
-
+
int top = m_domtree->getTopResNumber();
int bottom = m_domtree->getBottomResNumber();
int maxNum = Kita::DatManager::getMaxResNumber( m_datURL );
- if ( top != 1 || bottom != maxNum ) {
- showResponses( 1, maxNum );
- updateScreen( TRUE, TRUE );
+ if ( top != 1 || bottom != maxNum )
+ {
+ showResponses( 1, maxNum );
+ updateScreen( TRUE, TRUE );
- gotoAnchor( "header", FALSE );
+ gotoAnchor( "header", FALSE );
}
}
QRegExp regexp( query );
regexp.setCaseSensitive( FALSE );
-
+
/* init */
- if ( m_findNode.isNull() ) {
+ if ( m_findNode.isNull() )
+ {
m_findNode = htmlDocument().body();
- m_find_y = 0;
+ m_find_y = 0;
/* move to the last child node */
- if ( reverse ) {
+ if ( reverse )
+ {
while ( !m_findNode.lastChild().isNull() ) m_findNode = m_findNode.lastChild();
- m_find_y = view()->contentsHeight();
+ m_find_y = view()->contentsHeight();
}
}
- while ( 1 ) {
+ while ( 1 )
+ {
if ( m_findNode.nodeType() == DOM::Node::TEXT_NODE
- || m_findNode.nodeType() == DOM::Node::CDATA_SECTION_NODE ){
+ || m_findNode.nodeType() == DOM::Node::CDATA_SECTION_NODE )
+ {
- /* find the word in the current node */
- DOM::DOMString nodeText = m_findNode.nodeValue();
- QString nodestr = nodeText.string();
- if ( reverse && m_findPos != -1 ) nodestr.setLength( m_findPos );
+ /* find the word in the current node */
+ DOM::DOMString nodeText = m_findNode.nodeValue();
+ QString nodestr = nodeText.string();
+ if ( reverse && m_findPos != -1 ) nodestr.setLength( m_findPos );
- if ( reverse ) m_findPos = nodestr.findRev( regexp, m_findPos );
- else m_findPos = nodestr.find( regexp, m_findPos + 1 );
+ if ( reverse ) m_findPos = nodestr.findRev( regexp, m_findPos );
+ else m_findPos = nodestr.find( regexp, m_findPos + 1 );
- /* scroll & select & return */
- if ( m_findPos != -1 ) {
+ /* scroll & select & return */
+ if ( m_findPos != -1 )
+ {
- int matchLen = regexp.matchedLength();
+ int matchLen = regexp.matchedLength();
- QRect qr = m_findNode.getRect();
- view()->setContentsPos( qr.left() - 50, m_find_y - 100 );
- DOM::Range rg( m_findNode, m_findPos, m_findNode, m_findPos + matchLen );
- setSelection( rg );
+ QRect qr = m_findNode.getRect();
+ view()->setContentsPos( qr.left() - 50, m_find_y - 100 );
+ DOM::Range rg( m_findNode, m_findPos, m_findNode, m_findPos + matchLen );
+ setSelection( rg );
- return TRUE;
- }
+ return TRUE;
+ }
}
- /*------------------------*/
- else if ( m_findNode.nodeName().string() == "dt"
- || m_findNode.nodeName().string() == "dd" ){
+ /*------------------------*/
+ else if ( m_findNode.nodeName().string() == "dt"
+ || m_findNode.nodeName().string() == "dd" )
+ {
QRect qr = m_findNode.getRect();
-
+
if ( reverse ) m_find_y = qr.bottom();
- else m_find_y = qr.top();
- }
+ else m_find_y = qr.top();
+ }
+
+ /*------------------------*/
+ else if ( m_findNode.nodeName().string() == "br" )
+ {
- /*------------------------*/
- else if ( m_findNode.nodeName().string() == "br" ) {
-
DOM::Node tmpnode = m_findNode.previousSibling();
- if ( tmpnode != NULL ) {
+ if ( tmpnode != NULL )
+ {
QRect qr = tmpnode.getRect();
if ( reverse ) m_find_y -= qr.bottom() - qr.top();
- else m_find_y += qr.bottom() - qr.top();
+ else m_find_y += qr.bottom() - qr.top();
}
}
- /*------------------------*/
-
+ /*------------------------*/
+
m_findPos = -1;
DOM::Node next;
/* move to the next node */
- if ( !reverse ) {
+ if ( !reverse )
+ {
next = m_findNode.firstChild();
if ( next.isNull() ) next = m_findNode.nextSibling();
- while ( !m_findNode.isNull() && next.isNull() ) {
+ while ( !m_findNode.isNull() && next.isNull() )
+ {
m_findNode = m_findNode.parentNode();
if ( !m_findNode.isNull() ) next = m_findNode.nextSibling();
}
- }
- /* revearse */
- else {
+ }
+ /* revearse */
+ else
+ {
next = m_findNode.lastChild();
if ( next.isNull() ) next = m_findNode.previousSibling();
-
- while ( !m_findNode.isNull() && next.isNull() ) {
+
+ while ( !m_findNode.isNull() && next.isNull() )
+ {
m_findNode = m_findNode.parentNode();
if ( !m_findNode.isNull() ) next = m_findNode.previousSibling();
}
}
m_findNode = next;
- if ( m_findNode.isNull() ) {
+ if ( m_findNode.isNull() )
+ {
m_findNode = NULL;
return FALSE;
}
return FALSE;
}
-
+
void KitaHTMLPart::showPopupMenu( const KURL& kurl )
{
enum {
- ID_Home_Link,
- ID_Temp_Link,
- ID_Koko_Link,
- ID_End_Link,
-
- ID_COPY_Link,
- ID_Copy_Str,
- ID_Abone_Word,
- ID_Extract,
- ID_Open_Browser,
-
- /*-----------------*/
- ID_Back_Link /* stay bottom */
+ ID_Home_Link,
+ ID_Temp_Link,
+ ID_Koko_Link,
+ ID_End_Link,
+
+ ID_COPY_Link,
+ ID_Copy_Str,
+ ID_Abone_Word,
+ ID_Extract,
+ ID_Open_Browser,
+
+ /*-----------------*/
+ ID_Back_Link /* stay bottom */
};
-
+
QPoint point = QCursor::pos();
QString url = kurl.prettyURL();
bool showppm = FALSE;
const int ID_Goto_Mark = ID_Back_Link + m_anchorStack.size();
-
+
QString str;
/* If selected Text is composed of only digits, then show res popup. */
KPopupMenu* popupMenu = new KPopupMenu( view() );
KPopupMenu* backSubMenu = NULL;
- KPopupMenu* markSubMenu = NULL;
+ KPopupMenu* markSubMenu = NULL;
popupMenu->clear();
-
+
/*------*/
/* jump */
if( m_domtree &&
- (m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI ) ){
-
- showppm = TRUE;
-
- /* back */
- if ( !m_anchorStack.empty() ) {
- backSubMenu = new KPopupMenu( view() );
- backSubMenu->clear();
-
- int i = m_anchorStack.size();
- QStringList::iterator it;
- for ( it = m_anchorStack.begin(); it != m_anchorStack.end(); it++,i-- ){
- str = (*it) + " " + Kita::DatManager::getPlainBody( m_datURL, (*it).toInt() ).left( 10 );
- backSubMenu->insertItem( str, ID_Back_Link +(i-1), 0 );
- }
-
- popupMenu->insertItem( i18n( "Back" ), backSubMenu );
- popupMenu->insertSeparator();
- }
-
- /* mark */
- /* !! very dangerous to call DatManager::getDatInfoPointer without locking !! */
- Kita::DatManager::lock( m_datURL );
- Kita::DatInfo* datInfo = Kita::DatManager::getDatInfoPointer( m_datURL );
- for( int i = 1; i <= datInfo->getMaxResNumber() ; i++ ){
- if( datInfo->isMarked( i ) ){
- if( !markSubMenu ){
- markSubMenu = new KPopupMenu( view() );
- markSubMenu->clear();
- popupMenu->insertItem( i18n( "Mark" ), markSubMenu );
- popupMenu->insertSeparator();
- }
-
- str = QString().setNum( i ) + " " + datInfo->getPlainBody( i ).left( 10 );
- markSubMenu->insertItem( str, ID_Goto_Mark + i );
- }
- }
- Kita::DatManager::unlock( m_datURL );
-
- /* home */
- popupMenu->insertItem( i18n( "Start" ), ID_Home_Link );
-
-
- /* template */
- if ( m_mode == HTMLPART_MODE_MAINPART ){
-
- if( m_domtree->isMae100Shown() ) popupMenu->insertItem( i18n( "template" ), ID_Temp_Link );
-
- int kokoyon = Kita::DatManager::getKokoyonNum( m_datURL );
- if( kokoyon ){
- str = i18n( "Kokomade Yonda (%1)" ).arg( kokoyon );
- popupMenu->insertItem( str, ID_Koko_Link );
- }
- }
-
-
- /* end */
- popupMenu->insertItem( i18n("End"), ID_End_Link );
+ (m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI ) )
+ {
+
+ showppm = TRUE;
+
+ /* back */
+ if ( !m_anchorStack.empty() )
+ {
+ backSubMenu = new KPopupMenu( view() );
+ backSubMenu->clear();
+
+ int i = m_anchorStack.size();
+ QStringList::iterator it;
+ for ( it = m_anchorStack.begin(); it != m_anchorStack.end(); it++,i-- )
+ {
+ str = (*it) + " " + Kita::DatManager::getPlainBody( m_datURL, (*it).toInt() ).left( 10 );
+ backSubMenu->insertItem( str, ID_Back_Link +(i-1), 0 );
+ }
+
+ popupMenu->insertItem( i18n( "Back" ), backSubMenu );
+ popupMenu->insertSeparator();
+ }
+
+ /* mark */
+ /* !! very dangerous to call DatManager::getDatInfoPointer without locking !! */
+ Kita::DatManager::lock( m_datURL );
+ Kita::DatInfo* datInfo = Kita::DatManager::getDatInfoPointer( m_datURL );
+ for( int i = 1; i <= datInfo->getMaxResNumber() ; i++ )
+ {
+ if( datInfo->isMarked( i ) )
+ {
+ if( !markSubMenu )
+ {
+ markSubMenu = new KPopupMenu( view() );
+ markSubMenu->clear();
+ popupMenu->insertItem( i18n( "Mark" ), markSubMenu );
+ popupMenu->insertSeparator();
+ }
+
+ str = QString().setNum( i ) + " " + datInfo->getPlainBody( i ).left( 10 );
+ markSubMenu->insertItem( str, ID_Goto_Mark + i );
+ }
+ }
+ Kita::DatManager::unlock( m_datURL );
+
+ /* home */
+ popupMenu->insertItem( i18n( "Start" ), ID_Home_Link );
+
+
+ /* template */
+ if ( m_mode == HTMLPART_MODE_MAINPART )
+ {
+
+ if( m_domtree->isMae100Shown() ) popupMenu->insertItem( i18n( "template" ), ID_Temp_Link );
+
+ int kokoyon = Kita::DatManager::getKokoyonNum( m_datURL );
+ if( kokoyon )
+ {
+ str = i18n( "Kokomade Yonda (%1)" ).arg( kokoyon );
+ popupMenu->insertItem( str, ID_Koko_Link );
+ }
+ }
+
+
+ /* end */
+ popupMenu->insertItem( i18n("End"), ID_End_Link );
}
-
+
/*--------------*/
/* copy & abone */
- if ( hasSelection() ) {
- if( showppm ) popupMenu->insertSeparator();
- showppm = TRUE;
-
+ if ( hasSelection() )
+ {
+ if( showppm ) popupMenu->insertSeparator();
+ showppm = TRUE;
+
popupMenu->insertItem( "Copy", ID_Copy_Str );
popupMenu->insertItem( i18n( "Extract by '%1'" ).arg( selectedText() ), ID_Extract );
popupMenu->insertItem( i18n( "Add '%1' to abone list" ).arg( selectedText() ), ID_Abone_Word );
}
-
+
/*-----------*/
/* copy link */
- if ( url != QString::null ) {
- if( showppm ) popupMenu->insertSeparator();
- showppm = TRUE;
+ if ( url != QString::null )
+ {
+ if( showppm ) popupMenu->insertSeparator();
+ showppm = TRUE;
- popupMenu->insertItem( i18n( "Open with Web Browser" ), ID_Open_Browser );
- popupMenu->insertSeparator();
+ popupMenu->insertItem( i18n( "Open with Web Browser" ), ID_Open_Browser );
+ popupMenu->insertSeparator();
popupMenu->insertItem( i18n( "Copy Link Location" ), ID_COPY_Link );
}
-
+
/*-----------------------------------*/
/* show menu */
- if( showppm ){
-
- QClipboard* clipboard = QApplication::clipboard();
- KParts::URLArgs argdummy;
-
- int ret = popupMenu->exec( point );
- switch ( ret ) {
-
- case ID_COPY_Link:
- clipboard->setText( url , QClipboard::Clipboard );
- clipboard->setText( url , QClipboard::Selection );
- break;
-
- case ID_Open_Browser:
- emit openURLRequest( url, argdummy );
- break;
-
- case ID_Home_Link: gotoAnchor( "header", FALSE ); break;
-
- case ID_Temp_Link: gotoAnchor( "mae100", FALSE ); break;
-
- case ID_Koko_Link: slotGotoKokoyon(); break;
-
- case ID_End_Link: slotClickGotoFooter(); break;
-
- case ID_Copy_Str:
- clipboard->setText( selectedText(), QClipboard::Clipboard );
- break;
-
- case ID_Abone_Word:
-
- if ( QMessageBox::information( view(),"Kita",
- i18n( "Do you want to add '%1' to abone list ?" ).arg( selectedText() ),
- QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
- == QMessageBox::Ok ){
-
- KitaConfig::addAboneWord( selectedText() );
- emit redrawHTMLPart( m_datURL, FALSE );
- }
-
- break;
-
- case ID_Extract:
- KitaNavi::showKitaNaviByWord( m_datURL, selectedText() );
- break;
-
- default:
-
- /* mark */
- if( ret >= ID_Goto_Mark ){
- gotoAnchor( QString().setNum( ret - ID_Goto_Mark ), FALSE );
- }
-
- /* back */
- else if( ret >= ID_Back_Link ){
- for(int i = 0; i < ret - ID_Back_Link; i++ ) m_anchorStack.pop_back();
- slotGobackAnchor();
- }
-
- break;
- }
+ if( showppm )
+ {
+
+ QClipboard* clipboard = QApplication::clipboard();
+ KParts::URLArgs argdummy;
+
+ int ret = popupMenu->exec( point );
+ switch ( ret )
+ {
+
+ case ID_COPY_Link:
+ clipboard->setText( url , QClipboard::Clipboard );
+ clipboard->setText( url , QClipboard::Selection );
+ break;
+
+ case ID_Open_Browser:
+ emit openURLRequest( url, argdummy );
+ break;
+
+ case ID_Home_Link: gotoAnchor( "header", FALSE ); break;
+
+ case ID_Temp_Link: gotoAnchor( "mae100", FALSE ); break;
+
+ case ID_Koko_Link: slotGotoKokoyon(); break;
+
+ case ID_End_Link: slotClickGotoFooter(); break;
+
+ case ID_Copy_Str:
+ clipboard->setText( selectedText(), QClipboard::Clipboard );
+ break;
+
+ case ID_Abone_Word:
+
+ if ( QMessageBox::information( view(),"Kita",
+ i18n( "Do you want to add '%1' to abone list ?" ).arg( selectedText() ),
+ QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
+ == QMessageBox::Ok )
+ {
+
+ KitaConfig::addAboneWord( selectedText() );
+ emit redrawHTMLPart( m_datURL, FALSE );
+ }
+
+ break;
+
+ case ID_Extract:
+ KitaNavi::showKitaNaviByWord( m_datURL, selectedText() );
+ break;
+
+ default:
+
+ /* mark */
+ if( ret >= ID_Goto_Mark )
+ {
+ gotoAnchor( QString().setNum( ret - ID_Goto_Mark ), FALSE );
+ }
+
+ /* back */
+ else if( ret >= ID_Back_Link )
+ {
+ for(int i = 0; i < ret - ID_Back_Link; i++ ) m_anchorStack.pop_back();
+ slotGobackAnchor();
+ }
+
+ break;
+ }
}
if( popupMenu ) delete popupMenu;
if( backSubMenu ) delete backSubMenu;
- if( markSubMenu ) delete markSubMenu;
+ if( markSubMenu ) delete markSubMenu;
}
{
KURL kurl;
if( e->url().string() != QString::null )
- kurl = KURL( Kita::DatManager::boardURL( m_datURL ), e->url().string() );
+ kurl = KURL( Kita::DatManager::boardURL( m_datURL ), e->url().string() );
m_pushctrl = m_pushmidbt = m_pushrightbt = FALSE;
if(e->qmouseEvent()->button() & Qt::RightButton) m_pushrightbt = TRUE;
if ( e->qmouseEvent() ->state() & Qt::ControlButton ) m_pushctrl = TRUE;
if ( e->qmouseEvent() ->button() & Qt::MidButton ) m_pushmidbt = TRUE;
-
- if ( e->url() != NULL ){
- if ( e->url().string().at( 0 ) == '#' ) { /* anchor */
- kurl = m_datURL;
- kurl.setRef( e->url().string().mid(1) ) ;
- }
+ if ( e->url() != NULL )
+ {
+
+ if ( e->url().string().at( 0 ) == '#' )
+ { /* anchor */
+ kurl = m_datURL;
+ kurl.setRef( e->url().string().mid(1) ) ;
+ }
- clickAnchor( kurl );
- m_pushctrl = m_pushmidbt = m_pushrightbt = FALSE;
- return;
+ clickAnchor( kurl );
+ m_pushctrl = m_pushmidbt = m_pushrightbt = FALSE;
+ return;
}
/* popup menu */
- if( m_pushrightbt ) {
- showPopupMenu( kurl );
- m_pushctrl = m_pushmidbt = m_pushrightbt = FALSE;
- return;
+ if( m_pushrightbt )
+ {
+ showPopupMenu( kurl );
+ m_pushctrl = m_pushmidbt = m_pushrightbt = FALSE;
+ return;
}
-
+
KHTMLPart::khtmlMousePressEvent( e );
}
/* private slot */
-void KitaHTMLPart::slotOpenURLRequest( const KURL& urlin, const KParts::URLArgs& ){
+void KitaHTMLPart::slotOpenURLRequest( const KURL& urlin, const KParts::URLArgs& )
+{
clickAnchor(urlin);
}
/*------------------------------------------------------*/
-/* This function is called when user clicked res anchor */ /* private */
+/* This function is called when user clicked res anchor */ /* private */
void KitaHTMLPart::clickAnchor( const KURL& urlin )
{
QString refstr;
- KURL datURL = Kita::ParseMisc::parseURL( urlin ,refstr );
+ KURL datURL = Kita::ParseMisc::parseURL( urlin ,refstr );
/*--------------------*/
/* Ctrl + right click */
- if( m_pushctrl && m_pushrightbt ){
- showPopupMenu( urlin );
- return;
+ if( m_pushctrl && m_pushrightbt )
+ {
+ showPopupMenu( urlin );
+ return;
}
-
+
/*--------------------------------*/
/* If this is not anchor, then */
/* emit openURLRequest and return */
- if ( datURL.host() != m_datURL.host() || datURL.path() != m_datURL.path() ) {
+ if ( datURL.host() != m_datURL.host() || datURL.path() != m_datURL.path() )
+ {
+
+ if( m_pushrightbt )
+ { /* right click */
- if( m_pushrightbt ){ /* right click */
+ /* start multi-popup mode or show popup menu */
+ if( !startMultiPopup() ) showPopupMenu( urlin );
- /* start multi-popup mode or show popup menu */
- if( !startMultiPopup() ) showPopupMenu( urlin );
+ return;
+ }
- return;
- }
-
- KParts::URLArgs argdummy;
- emit openURLRequest( urlin, argdummy );
- return ;
+ KParts::URLArgs argdummy;
+ emit openURLRequest( urlin, argdummy );
+ return ;
}
-
+
if ( refstr == QString::null ) return ;
/*---------------------------*/
/* show popupmenu for #write */
- if ( refstr.left( 5 ) == "write" ) {
- showWritePopupMenu( refstr );
- return;
+ if ( refstr.left( 5 ) == "write" )
+ {
+ showWritePopupMenu( refstr );
+ return;
}
/*----------------------------*/
/* extract responses by ID */
- if( refstr.left(5) == "idpop"){
- showIDPopup( refstr );
- return;
+ if( refstr.left(5) == "idpop")
+ {
+ showIDPopup( refstr );
+ return;
}
/*-------------------------*/
/* start multi-popup mdde */
if( m_pushrightbt && startMultiPopup() ) return;
-
+
/*----------------------------*/
/* next 100 ,before 100 ,etc. */
if( showNext100Etc( refstr ) ) return;
-
+
/*-------------------------------*/
/* open Kita Navi or goto anchor */
-
+
int refNum,refNum2;
int i = refstr.find( "-" );
- if ( i != -1 ) {
- refNum = refstr.left( i ).toInt();
- refNum2 = refstr.mid(i+1).toInt();
- if( refNum2 < refNum ) refNum2 = refNum;
- } else refNum = refNum2 = refstr.toInt();
+ if ( i != -1 )
+ {
+ refNum = refstr.left( i ).toInt();
+ refNum2 = refstr.mid(i+1).toInt();
+ if( refNum2 < refNum ) refNum2 = refNum;
+ }
+ else refNum = refNum2 = refstr.toInt();
if ( !refNum ) return ;
if( m_pushctrl || m_pushmidbt ) KitaNavi::showKitaNavi( m_datURL, refNum, refNum2 );
else if( ( m_mode == HTMLPART_MODE_KHTML || m_mode == HTMLPART_MODE_POPUP )
- || ( m_mode == HTMLPART_MODE_NAVI && !m_domtree->isResShown( refNum ) ) ){
- KParts::URLArgs argdummy;
- emit openURLRequest( urlin, argdummy );
+ || ( m_mode == HTMLPART_MODE_NAVI && !m_domtree->isResShown( refNum ) ) )
+ {
+ KParts::URLArgs argdummy;
+ emit openURLRequest( urlin, argdummy );
}
else gotoAnchor( QString().setNum( refNum ), TRUE );
}
/*---------------------------------------------------------*/
/* popup menu that is opened when user clicked res number. */
-/* This funtcion is called in only clickAnchor(). */ /* private */
+/* This funtcion is called in only clickAnchor(). */ /* private */
void KitaHTMLPart::showWritePopupMenu( const QString& refstr)
{
enum{
- WRITEMENU_RES,
- WRITEMENU_QUOTE,
- WRITEMENU_SHOWBROWSER,
- WRITEMENU_SHOWNAVI,
- WRITEMENU_RESTREE,
- WRITEMENU_REVERSERESTREE,
- WRITEMENU_EXTRACTNAME,
- WRITEMENU_COPY,
- WRITEMENU_COPYURL,
- WRITEMENU_COPYTHREADNAME,
- WRITEMENU_SETKOKOYON,
- WRITEMENU_MARK,
- WRITEMENU_ABONENAME
+ WRITEMENU_RES,
+ WRITEMENU_QUOTE,
+ WRITEMENU_SHOWBROWSER,
+ WRITEMENU_SHOWNAVI,
+ WRITEMENU_RESTREE,
+ WRITEMENU_REVERSERESTREE,
+ WRITEMENU_EXTRACTNAME,
+ WRITEMENU_COPY,
+ WRITEMENU_COPYURL,
+ WRITEMENU_COPYTHREADNAME,
+ WRITEMENU_SETKOKOYON,
+ WRITEMENU_MARK,
+ WRITEMENU_ABONENAME
};
-
+
QClipboard * clipboard = QApplication::clipboard();
QString str, resstr;
int resNum = refstr.mid( 5 ).toInt();
QString namestr = Kita::DatManager::getPlainName( m_datURL, resNum );
-
+
/* show res tree */
- if( m_pushrightbt ){
- int num;
- QString htmlstr = Kita::DatManager::getTreeByRes( m_datURL, resNum, num );
- if ( !num ) return ;
- QString tmpstr = QString("<DIV>No.%1 : [%2]<BR>").arg( resNum ).arg( num );
- tmpstr += htmlstr + "<BR><BR></DIV>";
- showPopup( m_datURL, tmpstr );
- startMultiPopup();
- return;
+ if( m_pushrightbt )
+ {
+ int num;
+ QString htmlstr = Kita::DatManager::getTreeByRes( m_datURL, resNum, num );
+ if ( !num ) return ;
+ QString tmpstr = QString("<DIV>No.%1 : [%2]<BR>").arg( resNum ).arg( num );
+ tmpstr += htmlstr + "<BR><BR></DIV>";
+ showPopup( m_datURL, tmpstr );
+ startMultiPopup();
+ return;
}
-
- /* open kitanavi */
- else if( m_pushctrl | m_pushmidbt ){
- KitaNavi::showKitaNaviResTree(m_datURL,resNum);
- return;
+
+ /* open kitanavi */
+ else if( m_pushctrl | m_pushmidbt )
+ {
+ KitaNavi::showKitaNaviResTree(m_datURL,resNum);
+ return;
}
/*---------------------*/
/* create popup menu */
QString plainStr;
-
+
KPopupMenu *popupMenu = new KPopupMenu( view() );
popupMenu->clear();
/* write */
- if( m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI ){
-
- popupMenu->insertItem( i18n( "write response" ), WRITEMENU_RES );
- popupMenu->insertItem( i18n( "quote this" ), WRITEMENU_QUOTE );
- popupMenu->insertSeparator();
+ if( m_mode == HTMLPART_MODE_MAINPART || m_mode == HTMLPART_MODE_NAVI )
+ {
+
+ popupMenu->insertItem( i18n( "write response" ), WRITEMENU_RES );
+ popupMenu->insertItem( i18n( "quote this" ), WRITEMENU_QUOTE );
+ popupMenu->insertSeparator();
}
/* util */
popupMenu->insertItem( i18n( "res tree" ), WRITEMENU_RESTREE );
- popupMenu->insertItem( i18n( "reverse res tree" ), WRITEMENU_REVERSERESTREE );
+ popupMenu->insertItem( i18n( "reverse res tree" ), WRITEMENU_REVERSERESTREE );
popupMenu->insertItem( i18n( "extract by name" ), WRITEMENU_EXTRACTNAME );
popupMenu->insertSeparator();
/* copy */
- popupMenu->insertItem( i18n( "copy URL" ), WRITEMENU_COPYURL );
- popupMenu->insertItem( i18n( "Copy title and URL" ), WRITEMENU_COPYTHREADNAME );
+ popupMenu->insertItem( i18n( "copy URL" ), WRITEMENU_COPYURL );
+ popupMenu->insertItem( i18n( "Copy title and URL" ), WRITEMENU_COPYTHREADNAME );
popupMenu->insertItem( i18n( "copy" ), WRITEMENU_COPY );
/* kokkoma de yonda */
- if( m_domtree && m_mode == HTMLPART_MODE_MAINPART ){
- popupMenu->insertSeparator();
- popupMenu->insertItem( i18n( "set Kokomade Yonda" ), WRITEMENU_SETKOKOYON );
+ if( m_domtree && m_mode == HTMLPART_MODE_MAINPART )
+ {
+ popupMenu->insertSeparator();
+ popupMenu->insertItem( i18n( "set Kokomade Yonda" ), WRITEMENU_SETKOKOYON );
}
/* abone */
/*--------------------------------------*/
/* show popup menu */
-
+
int ret = popupMenu->exec( QCursor::pos() );
delete popupMenu;
- switch ( ret ) {
+ switch ( ret )
+ {
case WRITEMENU_RES:
- resstr = ">>" + QString().setNum( resNum ) + "\n";
- emit openWriteDialog( resstr );
- break;
+ resstr = ">>" + QString().setNum( resNum ) + "\n";
+ emit openWriteDialog( resstr );
+ break;
case WRITEMENU_QUOTE:
- resstr = ">>" + QString().setNum( resNum ) + "\n"
- + "> " + Kita::DatManager::getPlainTitle( m_datURL, resNum ) + "\n"
- + "> " + Kita::DatManager::getPlainBody( m_datURL, resNum ).replace("\n","\n> ") + "\n";
- emit openWriteDialog( resstr );
- break;
+ resstr = ">>" + QString().setNum( resNum ) + "\n"
+ + "> " + Kita::DatManager::getPlainTitle( m_datURL, resNum ) + "\n"
+ + "> " + Kita::DatManager::getPlainBody( m_datURL, resNum ).replace("\n","\n> ") + "\n";
+ emit openWriteDialog( resstr );
+ break;
case WRITEMENU_MARK:
- Kita::DatManager::setMark( m_datURL, resNum, ! Kita::DatManager::isMarked( m_datURL, resNum ) );
- break;
-
+ Kita::DatManager::setMark( m_datURL, resNum, ! Kita::DatManager::isMarked( m_datURL, resNum ) );
+ break;
+
case WRITEMENU_COPY:
case WRITEMENU_COPYURL:
case WRITEMENU_COPYTHREADNAME:
- str = QString::null;
-
- /* title */
- if( ret == WRITEMENU_COPYTHREADNAME || ret == WRITEMENU_COPY ){
- str = Kita::DatManager::threadName( m_datURL );
- }
-
- /* url */
- if( str != QString::null ) str += "\n";
- str += Kita::DatManager::threadURL( m_datURL ) + QString().setNum( resNum ) + "\n";
-
- /* body */
- if( ret == WRITEMENU_COPY ){
- str += "\n"
- + Kita::DatManager::getPlainTitle( m_datURL, resNum ) + "\n"
- + Kita::DatManager::getPlainBody( m_datURL, resNum ) + "\n";
- }
-
- /* copy */
- clipboard->setText( str , QClipboard::Clipboard );
- clipboard->setText( str , QClipboard::Selection );
- break;
-
-
+ str = QString::null;
+
+ /* title */
+ if( ret == WRITEMENU_COPYTHREADNAME || ret == WRITEMENU_COPY )
+ {
+ str = Kita::DatManager::threadName( m_datURL );
+ }
+
+ /* url */
+ if( str != QString::null ) str += "\n";
+ str += Kita::DatManager::threadURL( m_datURL ) + QString().setNum( resNum ) + "\n";
+
+ /* body */
+ if( ret == WRITEMENU_COPY )
+ {
+ str += "\n"
+ + Kita::DatManager::getPlainTitle( m_datURL, resNum ) + "\n"
+ + Kita::DatManager::getPlainBody( m_datURL, resNum ) + "\n";
+ }
+
+ /* copy */
+ clipboard->setText( str , QClipboard::Clipboard );
+ clipboard->setText( str , QClipboard::Selection );
+ break;
+
+
case WRITEMENU_SETKOKOYON:
- Kita::DatManager::setKokoyonNum( m_datURL, resNum );
- m_updatedKokoyon = TRUE;
- updateScreen( TRUE, TRUE );
- gotoAnchor( QString().setNum( resNum ), FALSE );
- break;
+ Kita::DatManager::setKokoyonNum( m_datURL, resNum );
+ m_updatedKokoyon = TRUE;
+ updateScreen( TRUE, TRUE );
+ gotoAnchor( QString().setNum( resNum ), FALSE );
+ break;
case WRITEMENU_SHOWBROWSER:
- str = Kita::DatManager::threadURL( m_datURL )
- + QString().setNum( resNum );
+ str = Kita::DatManager::threadURL( m_datURL )
+ + QString().setNum( resNum );
+
+ KRun::runURL( str, "text/html" );
+ break;
- KRun::runURL( str, "text/html" );
- break;
-
case WRITEMENU_SHOWNAVI:
- KitaNavi::showKitaNavi( m_datURL, resNum, resNum);
- break;
+ KitaNavi::showKitaNavi( m_datURL, resNum, resNum);
+ break;
case WRITEMENU_RESTREE:
- KitaNavi::showKitaNaviResTree( m_datURL, resNum);
- break;
+ KitaNavi::showKitaNaviResTree( m_datURL, resNum);
+ break;
case WRITEMENU_REVERSERESTREE:
- KitaNavi::showKitaNaviRevResTree( m_datURL, resNum );
- break;
+ KitaNavi::showKitaNaviRevResTree( m_datURL, resNum );
+ break;
case WRITEMENU_EXTRACTNAME:
- KitaNavi::showKitaNaviByName( m_datURL, namestr );
- break;
-
+ KitaNavi::showKitaNaviByName( m_datURL, namestr );
+ break;
+
case WRITEMENU_ABONENAME:
- if ( QMessageBox::information( view(),"Kita",
- i18n( "Do you want to add '%1' to abone list ?" ).arg( namestr ),
- QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
- == QMessageBox::Ok ){
-
- KitaConfig::addAboneName( namestr );
- emit redrawHTMLPart( m_datURL, FALSE );
- }
- break;
-
+ if ( QMessageBox::information( view(),"Kita",
+ i18n( "Do you want to add '%1' to abone list ?" ).arg( namestr ),
+ QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
+ == QMessageBox::Ok )
+ {
+
+ KitaConfig::addAboneName( namestr );
+ emit redrawHTMLPart( m_datURL, FALSE );
+ }
+ break;
+
default:
- break;
+ break;
}
}
/*--------------------------------------------------*/
/* popup that is opened when user clicked ID */
-/* This funtcion is called in only clickAnchor(). */ /* private */
+/* This funtcion is called in only clickAnchor(). */ /* private */
void KitaHTMLPart::showIDPopup( const QString& refstr )
{
QString strid = refstr.mid(5)
- .replace("%2B","+") /* decode %2B -> + */
- .replace("%2F", "/"); /* decode %2F -> / */
+ .replace("%2B","+") /* decode %2B -> + */
+ .replace("%2F", "/"); /* decode %2F -> / */
/* popup */
- if( m_pushrightbt ){
- int num;
- QString htmlstr
- = Kita::DatManager::getHtmlByID( m_datURL, strid, num );
- if ( num <= 1 ) return ;
- QString tmpstr = QString("<DIV>ID:%1:[%2]<BR>").arg( strid ).arg( num );
- tmpstr += htmlstr + "<BR><BR></DIV>";
- showPopup( m_datURL, tmpstr );
- startMultiPopup();
+ if( m_pushrightbt )
+ {
+ int num;
+ QString htmlstr
+ = Kita::DatManager::getHtmlByID( m_datURL, strid, num );
+ if ( num <= 1 ) return ;
+ QString tmpstr = QString("<DIV>ID:%1:[%2]<BR>").arg( strid ).arg( num );
+ tmpstr += htmlstr + "<BR><BR></DIV>";
+ showPopup( m_datURL, tmpstr );
+ startMultiPopup();
}
/* open kitanavi when user pushed Ctrl+Left or Mid button. */
- else if( m_pushctrl | m_pushmidbt ) KitaNavi::showKitaNaviByID( m_datURL, strid );
+ else if( m_pushctrl | m_pushmidbt ) KitaNavi::showKitaNaviByID( m_datURL, strid );
- else {
+ else
+ {
- enum{
- IDMENU_EXTRACT,
+ enum{
+ IDMENU_EXTRACT,
IDMENU_ABONE
- };
-
- KPopupMenu *popupMenu = new KPopupMenu( view() );
- popupMenu->clear();
- if( Kita::DatManager::getNumByID( m_datURL, strid ) > 1 )
- popupMenu->insertItem( i18n( "extract by ID" ), IDMENU_EXTRACT );
- popupMenu->insertItem( i18n( "add id to abone list" ), IDMENU_ABONE );
- int ret = popupMenu->exec( QCursor::pos() );
- delete popupMenu;
- switch ( ret ) {
-
- case IDMENU_EXTRACT:
- KitaNavi::showKitaNaviByID( m_datURL, strid );
- break;
-
- case IDMENU_ABONE:
- /* add ID to abone list */
- if ( QMessageBox::information( view(),"Kita",
- i18n( "Do you want to add '%1' to abone list ?" ).arg( strid ),
- QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
- == QMessageBox::Ok ){
-
- KitaConfig::addAboneID( strid );
- emit redrawHTMLPart( m_datURL, FALSE );
- }
- break;
-
- default:
- break;
- }
+ };
+
+ KPopupMenu *popupMenu = new KPopupMenu( view() );
+ popupMenu->clear();
+ if( Kita::DatManager::getNumByID( m_datURL, strid ) > 1 )
+ popupMenu->insertItem( i18n( "extract by ID" ), IDMENU_EXTRACT );
+ popupMenu->insertItem( i18n( "add id to abone list" ), IDMENU_ABONE );
+ int ret = popupMenu->exec( QCursor::pos() );
+ delete popupMenu;
+ switch ( ret )
+ {
+
+ case IDMENU_EXTRACT:
+ KitaNavi::showKitaNaviByID( m_datURL, strid );
+ break;
+
+ case IDMENU_ABONE:
+ /* add ID to abone list */
+ if ( QMessageBox::information( view(),"Kita",
+ i18n( "Do you want to add '%1' to abone list ?" ).arg( strid ),
+ QMessageBox::Ok, QMessageBox::Cancel | QMessageBox::Default )
+ == QMessageBox::Ok )
+ {
+
+ KitaConfig::addAboneID( strid );
+ emit redrawHTMLPart( m_datURL, FALSE );
+ }
+ break;
+
+ default:
+ break;
+ }
}
}
/*-------------------------------------------------------*/
/* funtcion when user clicked next 100 ,before 100 ,etc. */
-/* This funtcion is called in only clickAnchor(). */ /* private */
+/* This funtcion is called in only clickAnchor(). */ /* private */
bool KitaHTMLPart::showNext100Etc( const QString& refstr )
{
if( m_mode != HTMLPART_MODE_MAINPART ) return FALSE;
-
- if ( refstr.left( 7 ) == "tugi100" ) {
- slotClickTugi100();
- return TRUE;
-
- } else if ( refstr.left( 6 ) == "nokori" ) {
- slotClickNokori();
- return TRUE;
-
- } else if ( refstr.left( 7 ) == "tosaigo" ) {
- slotClickGotoFooter();
- return TRUE;
-
- } else if ( refstr.left( 6 ) == "mae100" ) {
- slotClickMae100();
- return TRUE;
-
- } else if ( refstr.left( 8 ) == "maezenbu" ) {
- slotClickMaeZenbu();
- return TRUE;
-
- } else if ( refstr.left( 6 ) == "tmp100" ) {
- slotClickTmpNext100();
- return TRUE;
-
- } else if ( refstr.left( 5 ) == "zenbu" ) {
- slotClickShowAll();
- return TRUE;
+
+ if ( refstr.left( 7 ) == "tugi100" )
+ {
+ slotClickTugi100();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 6 ) == "nokori" )
+ {
+ slotClickNokori();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 7 ) == "tosaigo" )
+ {
+ slotClickGotoFooter();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 6 ) == "mae100" )
+ {
+ slotClickMae100();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 8 ) == "maezenbu" )
+ {
+ slotClickMaeZenbu();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 6 ) == "tmp100" )
+ {
+ slotClickTmpNext100();
+ return TRUE;
+
+ }
+ else if ( refstr.left( 5 ) == "zenbu" )
+ {
+ slotClickShowAll();
+ return TRUE;
}
return FALSE;
/* show popup window */ /* private */
void KitaHTMLPart::showPopup( const KURL& url, const QString& innerHTML )
{
- deletePopup();
+ deletePopup();
m_multiPopup = FALSE;
-
+
m_popup = new Kita::ResPopup( view() , url );
- connect( m_popup, SIGNAL( hideChildPopup() ),SLOT( slotHideChildPopup() ) );
+ connect( m_popup, SIGNAL( hideChildPopup() ),SLOT( slotHideChildPopup() ) );
m_popup->setText( innerHTML );
m_popup->adjustSize();
/*------------------------*/
/* start multi-popup mode */ /* private */
-bool KitaHTMLPart::startMultiPopup(){
-
- if( m_popup && m_popup->isVisible() ){
- m_multiPopup = TRUE;
- m_popup->moveMouseAbove();
+bool KitaHTMLPart::startMultiPopup()
+{
+
+ if( m_popup && m_popup->isVisible() )
+ {
+ m_multiPopup = TRUE;
+ m_popup->moveMouseAbove();
}
else m_multiPopup = FALSE;
{
if( !m_popup ) m_multiPopup = FALSE;
else if( m_popup->isHidden() ) m_multiPopup = FALSE;
-
+
return m_multiPopup;
}
QPoint viewpos = view()->mapToGlobal( QPoint(0,0) );
int px = viewpos.x(), py = viewpos.y();
int wd = view()->visibleWidth(), ht = view()->visibleHeight();
-
+
if( ( px < cx && cx < px + wd + mrgwd )
- && ( py < cy && cy < py + ht + mrght ) ){
- return TRUE;
+ && ( py < cy && cy < py + ht + mrght ) )
+ {
+ return TRUE;
}
return FALSE;
if( view()->isVerticalSliderPressed () ) return;
hidePopup();
-
- /* emit signal to have parent hide this if this is popup . */
- if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, 0 ) ) emit hideChildPopup();
+
+ /* emit signal to have parent hide this if this is popup . */
+ if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, 0 ) ) emit hideChildPopup();
}
/* private slot */
-void KitaHTMLPart::slotVSliderReleased(){
+void KitaHTMLPart::slotVSliderReleased()
+{
QScrollBar* bar = view()->verticalScrollBar();
QRect rt = bar->sliderRect();
hidePopup();
- /* emit signal to have parent hide this if this is popup . */
- if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( mrg, 0 ) ) emit hideChildPopup();
+ /* emit signal to have parent hide this if this is popup . */
+ if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( mrg, 0 ) ) emit hideChildPopup();
}
/* private slot */
-void KitaHTMLPart::slotHSliderReleased(){
+void KitaHTMLPart::slotHSliderReleased()
+{
QScrollBar* bar = view()->horizontalScrollBar();
QRect rt = bar->sliderRect();
hidePopup();
- /* emit signal to have parent hide this if this is popup . */
- if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, mrg ) ) emit hideChildPopup();
+ /* emit signal to have parent hide this if this is popup . */
+ if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, mrg ) ) emit hideChildPopup();
}
void KitaHTMLPart::slotHideChildPopup()
{
hidePopup();
-
- /* emit signal to have parent hide this if this is popup . */
- if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, 0 ) ) emit hideChildPopup();
+
+ /* emit signal to have parent hide this if this is popup . */
+ if( m_mode == HTMLPART_MODE_POPUP && !isUnderMouse( 0, 0 ) ) emit hideChildPopup();
}
/*------------------------------------------*/
/* called back when kita is active .
see also an explanation in slotOnURL. */ /* private slot */
-void KitaHTMLPart::slotKitaIsActive(){
+void KitaHTMLPart::slotKitaIsActive()
+{
m_kitaIsActive = TRUE;
}
if( isMultiPopupMode() ) return;
deletePopup();
-
+
if ( url.isEmpty() ) return ;
if ( url.left( 7 ) == "mailto:" ) return;
-
+
/* Is Kita active now ?
emit SIGNAL( isKitaActive() ) to KitaMainWindow, KitaNavi, etc. ,
/*------------------------*/
/* id popup */
- if ( url.left( 6 ) == "#idpop" ) {
+ if ( url.left( 6 ) == "#idpop" )
+ {
int num = Kita::DatManager::getNumByID( m_datURL, url.mid( 6 ) );
if ( num <= 1 ) return ;
QString tmpstr = QString( "<DIV>ID:%1:[%2]</DIV>" ).arg( url.mid( 6 ) ).arg( num );
return ;
}
-
+
/*-------------------------*/
/* popup for anchor */
else datURL = Kita::ParseMisc::parseURL( KURL( m_datURL, url ) ,refstr);
int i = refstr.find( "-" );
- if ( i != -1 ) { /* >>refNum-refNum2 */
+ if ( i != -1 )
+ { /* >>refNum-refNum2 */
refNum = refstr.left( i ).toInt();
refNum2 = refstr.mid( i + 1 ).toInt();
- if ( refNum ) {
+ if ( refNum )
+ {
if ( refNum2 < refNum ) refNum2 = refNum;
if ( refNum2 - refNum > maxpopup - 1 ) refNum2 = refNum + maxpopup - 1;
}
- } else { /* >>refNum */
+ }
+ else
+ { /* >>refNum */
refNum = refstr.toInt();
refNum2 = refNum;
}
/* another thread ? */
- if ( datURL.host() != m_datURL.host() || datURL.path() != m_datURL.path() ) {
+ if ( datURL.host() != m_datURL.host() || datURL.path() != m_datURL.path() )
+ {
/* show them with boadname & subject */
- QString boardName = Kita::DatManager::boardName( datURL );
+ QString boardName = Kita::DatManager::boardName( datURL );
if ( boardName != QString::null ) innerHTML += "[" +boardName +"] ";
- QString subName = Kita::DatManager::threadName( datURL );
+ QString subName = Kita::DatManager::threadName( datURL );
if ( subName != QString::null ) innerHTML += subName +"<br><br>";
if ( !refNum ) refNum = refNum2 = 1;
/* If selected Text is composed of only digits,
then show res popup. */ /* private */
-bool KitaHTMLPart::showSelectedDigitPopup(){
+bool KitaHTMLPart::showSelectedDigitPopup()
+{
if( !hasSelection() ) return FALSE;
-
+
QString linkstr;
int refNum[2];
unsigned int pos;
const QChar *chpt = selectText.unicode();
unsigned int length = selectText.length();
- if( Kita::ParseMisc::parseResAnchor( chpt, length, linkstr, refNum, pos ) ){
- if( refNum[1] < refNum[0] ) refNum[1] = refNum[0];
- QString innerHTML = Kita::DatManager::getHtml( m_datURL, refNum[0], refNum[1] );
- if ( innerHTML != QString::null ) {
- showPopup( m_datURL, innerHTML );
- startMultiPopup();
- return TRUE;
- }
+ if( Kita::ParseMisc::parseResAnchor( chpt, length, linkstr, refNum, pos ) )
+ {
+ if( refNum[1] < refNum[0] ) refNum[1] = refNum[0];
+ QString innerHTML = Kita::DatManager::getHtml( m_datURL, refNum[0], refNum[1] );
+ if ( innerHTML != QString::null )
+ {
+ showPopup( m_datURL, innerHTML );
+ startMultiPopup();
+ return TRUE;
+ }
}
return FALSE;
namespace Kita
{
ResPopup::ResPopup( KHTMLView* view, const KURL& datURL )
- : QFrame( view, "res_popup",
- WStyle_Customize
- | WStyle_NoBorder
- | WStyle_Tool
- | WType_TopLevel
- | WX11BypassWM
- )
+ : QFrame( view, "res_popup",
+ WStyle_Customize
+ | WStyle_NoBorder
+ | WStyle_Tool
+ | WType_TopLevel
+ | WX11BypassWM
+ )
{
- m_textBrowser = new QTextBrowser( this );
- m_textBrowser->setWordWrap( QTextEdit::NoWrap );
- m_textBrowser->setResizePolicy( QScrollView::AutoOne );
- m_textBrowser->setFont( KitaConfig::threadFont() );
-
- m_htmlPart = new KitaHTMLPart(this);
- m_htmlPart->setup( HTMLPART_MODE_POPUP , datURL );
- connect( m_htmlPart, SIGNAL( hideChildPopup() ), SIGNAL( hideChildPopup() ) );
+ m_textBrowser = new QTextBrowser( this );
+ m_textBrowser->setWordWrap( QTextEdit::NoWrap );
+ m_textBrowser->setResizePolicy( QScrollView::AutoOne );
+ m_textBrowser->setFont( KitaConfig::threadFont() );
+
+ m_htmlPart = new KitaHTMLPart(this);
+ m_htmlPart->setup( HTMLPART_MODE_POPUP , datURL );
+ connect( m_htmlPart, SIGNAL( hideChildPopup() ), SIGNAL( hideChildPopup() ) );
}
-
+
ResPopup::~ResPopup()
{
- if(m_textBrowser) delete m_textBrowser;
- m_textBrowser = NULL;
- if(m_htmlPart) delete m_htmlPart;
- m_htmlPart = NULL;
+ if(m_textBrowser) delete m_textBrowser;
+ m_textBrowser = NULL;
+ if(m_htmlPart) delete m_htmlPart;
+ m_htmlPart = NULL;
}
void ResPopup::setText( const QString& str )
{
- QString style = QString( "style=\"font-size: %1pt; "
- "font-family: %2; "
- "color: %3; "
- "background-color: %4; border-width: 0; \"" )
- .arg( KitaConfig::threadFont().pointSize() )
- .arg( KitaConfig::threadFont().family() )
- .arg( KitaConfig::popupColor().name() )
- .arg( KitaConfig::popupBackgroundColor().name() );
-
- QString text = "<html><head>";
- text += "</head><body " + style + ">";
- text += str + "</body></html>";
-
- if( m_textBrowser ) m_textBrowser->setText( text );
-
- if( m_htmlPart ){
- m_htmlPart->setJScriptEnabled(false);
- m_htmlPart->setJavaEnabled(false);
- m_htmlPart->begin("file:/dummy.htm");
- m_htmlPart->write(text);
- m_htmlPart->end();
- m_htmlPart->view()->setVScrollBarMode(QScrollView::AlwaysOff);
- }
+ QString style = QString( "style=\"font-size: %1pt; "
+ "font-family: %2; "
+ "color: %3; "
+ "background-color: %4; border-width: 0; \"" )
+ .arg( KitaConfig::threadFont().pointSize() )
+ .arg( KitaConfig::threadFont().family() )
+ .arg( KitaConfig::popupColor().name() )
+ .arg( KitaConfig::popupBackgroundColor().name() );
+
+ QString text = "<html><head>";
+ text += "</head><body " + style + ">";
+ text += str + "</body></html>";
+
+ if( m_textBrowser ) m_textBrowser->setText( text );
+
+ if( m_htmlPart )
+ {
+ m_htmlPart->setJScriptEnabled(false);
+ m_htmlPart->setJavaEnabled(false);
+ m_htmlPart->begin("file:/dummy.htm");
+ m_htmlPart->write(text);
+ m_htmlPart->end();
+ m_htmlPart->view()->setVScrollBarMode(QScrollView::AlwaysOff);
+ }
}
-
+
/* public */
void ResPopup::adjustSize()
{
- /* config */
-
- const int mrg = 50;
- const int mrg2 = 10;
-
- /*---------------------------*/
-
- if( !m_textBrowser || !m_htmlPart ) return;
-
- /* get frame size from qtextbrowser because I could not
- get size by resizing the view of KHTMLPart...
- ( It is very ugly... Is there any good idea? ) */
- m_textBrowser->resize( m_textBrowser->contentsWidth() + mrg2,
- m_textBrowser->contentsHeight() );
- int wd = m_textBrowser->contentsWidth() +mrg;
- int ht = m_textBrowser->contentsHeight() +mrg;
- delete m_textBrowser;
- m_textBrowser = NULL;
-
- m_htmlPart->view()->resize( wd,ht );
- QFrame::adjustSize();
+ /* config */
+
+ const int mrg = 50;
+ const int mrg2 = 10;
+
+ /*---------------------------*/
+
+ if( !m_textBrowser || !m_htmlPart ) return;
+
+ /* get frame size from qtextbrowser because I could not
+ get size by resizing the view of KHTMLPart...
+ ( It is very ugly... Is there any good idea? ) */
+ m_textBrowser->resize( m_textBrowser->contentsWidth() + mrg2,
+ m_textBrowser->contentsHeight() );
+ int wd = m_textBrowser->contentsWidth() +mrg;
+ int ht = m_textBrowser->contentsHeight() +mrg;
+ delete m_textBrowser;
+ m_textBrowser = NULL;
+
+ m_htmlPart->view()->resize( wd,ht );
+ QFrame::adjustSize();
}
/* public */
void ResPopup::adjustPos()
{
- /* config */
-
- const int mrg = 10;
-
- /*----------------------------*/
-
- if( !m_htmlPart ) return;
-
- QRect qr = QApplication::desktop() ->rect();
- int sw = qr.width(), sh = qr.height();
- int wd = width(), ht = height();
-
- QPoint pos = QCursor::pos();
- int x = pos.x(), y = pos.y();
-
- if ( x + mrg + wd < sw ) {
- x = x + mrg;
- y = QMAX( 0, y - ( ht + mrg ) );
-
- } else if ( y - ( mrg + ht ) >= 0 ) {
- x = QMAX( 0, sw - wd );
- y = y - ( ht + mrg );
-
- } else if ( y + ( mrg + ht ) <= sh ) {
- x = QMAX( 0, sw - wd );
- y = y + mrg;
-
- } else if ( x - ( mrg + wd ) >= 0 ) {
- x = x - ( mrg + wd );
- y = QMAX( 0, y - ( ht + mrg ) );
-
- } else {
- x = x + mrg;
- y = QMAX( 0, y - ( ht + mrg ) );
- }
-
- pos.setX( x );
- pos.setY( y );
- move( pos );
-
- if( x + wd >= sw ){
- m_htmlPart->view()->setVScrollBarMode( QScrollView::AlwaysOn );
- wd = sw - x;
- }
- if( y + ht >= sh ){
- m_htmlPart->view()->setVScrollBarMode( QScrollView::AlwaysOn );
- ht = sh - y;
- }
- m_htmlPart->view()->resize( wd, ht );
- resize( wd, ht );
+ /* config */
+
+ const int mrg = 10;
+
+ /*----------------------------*/
+
+ if( !m_htmlPart ) return;
+
+ QRect qr = QApplication::desktop() ->rect();
+ int sw = qr.width(), sh = qr.height();
+ int wd = width(), ht = height();
+
+ QPoint pos = QCursor::pos();
+ int x = pos.x(), y = pos.y();
+
+ if ( x + mrg + wd < sw )
+ {
+ x = x + mrg;
+ y = QMAX( 0, y - ( ht + mrg ) );
+
+ }
+ else if ( y - ( mrg + ht ) >= 0 )
+ {
+ x = QMAX( 0, sw - wd );
+ y = y - ( ht + mrg );
+
+ }
+ else if ( y + ( mrg + ht ) <= sh )
+ {
+ x = QMAX( 0, sw - wd );
+ y = y + mrg;
+
+ }
+ else if ( x - ( mrg + wd ) >= 0 )
+ {
+ x = x - ( mrg + wd );
+ y = QMAX( 0, y - ( ht + mrg ) );
+
+ }
+ else
+ {
+ x = x + mrg;
+ y = QMAX( 0, y - ( ht + mrg ) );
+ }
+
+ pos.setX( x );
+ pos.setY( y );
+ move( pos );
+
+ if( x + wd >= sw )
+ {
+ m_htmlPart->view()->setVScrollBarMode( QScrollView::AlwaysOn );
+ wd = sw - x;
+ }
+ if( y + ht >= sh )
+ {
+ m_htmlPart->view()->setVScrollBarMode( QScrollView::AlwaysOn );
+ ht = sh - y;
+ }
+ m_htmlPart->view()->resize( wd, ht );
+ resize( wd, ht );
}
/* move mouse pointer above the popup frame */ /* public */
void ResPopup::moveMouseAbove()
{
- /* config */
-
- const int mrg = 10;
+ /* config */
+
+ const int mrg = 10;
- /*-------------------------------*/
+ /*-------------------------------*/
- QPoint pos = QCursor::pos();
- int cx = pos.x(), cy = pos.y();
- int px = x();
- int py = y();
- int wd = width();
- int ht = height();
+ QPoint pos = QCursor::pos();
+ int cx = pos.x(), cy = pos.y();
+ int px = x();
+ int py = y();
+ int wd = width();
+ int ht = height();
- if( cx <= px ) cx = px+mrg;
- else if(cx >= px+wd ) cx = px+wd-mrg;
+ if( cx <= px ) cx = px+mrg;
+ else if(cx >= px+wd ) cx = px+wd-mrg;
- if( cy <= py ) cy = py+mrg;
- else if( cy >= py+ht ) cy = py+ht-mrg;
+ if( cy <= py ) cy = py+mrg;
+ else if( cy >= py+ht ) cy = py+ht-mrg;
- QCursor::setPos( cx, cy );
+ QCursor::setPos( cx, cy );
}
}
KitaNavi::KitaNavi(
QWidget* parent,
int navimode)
- : QFrame( parent, "kita_navif" , WType_TopLevel)
+ : QFrame( parent, "kita_navif" , WType_TopLevel)
{
/* default size of kita navi */
const int kitanavi_wd = 600;
/* mode is defined in kitanavi.h */
m_navimode = navimode;
-
+
m_qtw = new KitaNaviTab(m_navimode,this, "kita_navitab", 0 );
m_qtw->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
QVBoxLayout *vl = new QVBoxLayout(this);
/* emit when this widget is deactivated */
connect( this, SIGNAL( windowDeactivated() ),
- Kita::SignalCollection::getInstance(), SIGNAL( windowDeactivated() ));
-
+ Kita::SignalCollection::getInstance(), SIGNAL( windowDeactivated() ));
+
/* If this widget is active and receives
signal isKitaActive, then emit signal kitaIsActive. */
connect( Kita::SignalCollection::getInstance(), SIGNAL( isKitaActive() ),
connect( this, SIGNAL( kitaIsActive() ),
Kita::SignalCollection::getInstance(), SIGNAL( kitaIsActive() ) );
-
+
/* set keyboard accelerator */
KActionCollection *kac = new KActionCollection(this);
if(m_navimode == KITANAVI_NAVI) KStdAction::find( this, SLOT( slotEditFind() ), kac);
new KAction(i18n( "Close Current Thread Tab" ),
- KStdAccel::close(),this,SLOT( slotCloseCurrentTab() ),kac,"close_tab" );
+ KStdAccel::close(),this,SLOT( slotCloseCurrentTab() ),kac,"close_tab" );
}
-KitaNavi::~KitaNavi(){
+KitaNavi::~KitaNavi()
+{
if(m_qtw) delete m_qtw;
}
/* show thread on the tab */
/*-------------------------*/ /* private */
void KitaNavi::addTab(int mode,
- const KURL& datURL,
- const QString& query,
- int startnum,
- int endnum){
+ const KURL& datURL,
+ const QString& query,
+ int startnum,
+ int endnum)
+{
if(m_navimode != KITANAVI_NAVI) return;
QRegExp qrx(" +");
bool ext_OR;
QString labelstr;
-
+
/* set title and label */
- switch(mode){
+ switch(mode)
+ {
case KITANAVI_SHOWRES:
-
- if(startnum == endnum) labelstr = QString().setNum(startnum);
- else labelstr = QString( "%1-%2" ).arg(startnum).arg(endnum);
- break;
-
+ if(startnum == endnum) labelstr = QString().setNum(startnum);
+ else labelstr = QString( "%1-%2" ).arg(startnum).arg(endnum);
+
+ break;
+
case KITANAVI_EXTBYID:
case KITANAVI_EXTBYWORD:
case KITANAVI_EXTBYNAME:
- labelstr = query
- + " :"+ Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT);
- break;
+ labelstr = query
+ + " :"+ Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT);
+ break;
case KITANAVI_SHOWRESTREE:
- case KITANAVI_SHOWREVRESTREE:
- labelstr = QString().setNum(startnum);
- break;
+ case KITANAVI_SHOWREVRESTREE:
+ labelstr = QString().setNum(startnum);
+ break;
}
labelstr += " :"+QString( "[%1] %2" )
- .arg( Kita::DatManager::thread_boardName( datURL ) )
- .arg( Kita::DatManager::thread_name( datURL ) );
+ .arg( Kita::DatManager::thread_boardName( datURL ) )
+ .arg( Kita::DatManager::thread_name( datURL ) );
/* create KitaThreadView and setup it */
KitaThreadView *view = new KitaThreadView(m_qtw);
view->setup( datURL, VIEWMODE_KITANAVI );
totalNum = Kita::DatManager::getMaxResNumber( datURL );
- /*---------------------------------------------*/
+ /*---------------------------------------------*/
/* copy data from DatManager to KitaThreadView */
- switch(mode){
+ switch(mode)
+ {
case KITANAVI_SHOWRES:
- for(int i = QMAX(1,startnum-margin); i <= QMIN(totalNum,endnum+margin); i++){
- if(i == startnum) view->domAppendBelt("belt1");
- str = Kita::DatManager::getDat( datURL ,i);
- view->domAppendData(str,i,i);
- if(i == endnum) view->domAppendBelt("belt2");
- }
- if(startnum == endnum) headstr = QString("No. %1").arg(startnum);
- else headstr = QString("No. %1 - %2").arg(startnum).arg(endnum);
- footstr = headstr;
-
- anchor = QString().setNum(startnum-1);
-
- break;
-
- /*--------------------------------*/
-
+ for(int i = QMAX(1,startnum-margin); i <= QMIN(totalNum,endnum+margin); i++)
+ {
+ if(i == startnum) view->domAppendBelt("belt1");
+ str = Kita::DatManager::getDat( datURL ,i);
+ view->domAppendData(str,i,i);
+ if(i == endnum) view->domAppendBelt("belt2");
+ }
+ if(startnum == endnum) headstr = QString("No. %1").arg(startnum);
+ else headstr = QString("No. %1 - %2").arg(startnum).arg(endnum);
+ footstr = headstr;
+
+ anchor = QString().setNum(startnum-1);
+
+ break;
+
+ /*--------------------------------*/
+
case KITANAVI_EXTBYID:
- for(int i = 1; i<= totalNum; i++){
- if(Kita::DatManager::checkID( datURL, query, i )){
- str = Kita::DatManager::getDat( datURL, i );
- view->domAppendData(str,i,i);
- count++;
- }
- }
- headstr = QString("ID:%1 : [%2]").arg(query).arg(count);
- footstr = headstr;
- anchor = "header";
- break;
-
- /*--------------------------------*/
-
+ for(int i = 1; i<= totalNum; i++)
+ {
+ if(Kita::DatManager::checkID( datURL, query, i ))
+ {
+ str = Kita::DatManager::getDat( datURL, i );
+ view->domAppendData(str,i,i);
+ count++;
+ }
+ }
+ headstr = QString("ID:%1 : [%2]").arg(query).arg(count);
+ footstr = headstr;
+ anchor = "header";
+ break;
+
+ /*--------------------------------*/
+
case KITANAVI_EXTBYNAME:
- for(int i = 1; i<= totalNum; i++){
- if( Kita::DatManager::getPlainName( datURL, i ) == query ){
- str = Kita::DatManager::getDat( datURL, i );
- view->domAppendData( str, i, i );
- count++;
- }
- }
- headstr = Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT)
- +QString(": %1 : [%2]").arg( query ).arg( count );
- footstr = headstr;
- anchor = "header";
- break;
-
- /*--------------------------------*/
+ for(int i = 1; i<= totalNum; i++)
+ {
+ if( Kita::DatManager::getPlainName( datURL, i ) == query )
+ {
+ str = Kita::DatManager::getDat( datURL, i );
+ view->domAppendData( str, i, i );
+ count++;
+ }
+ }
+ headstr = Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT)
+ +QString(": %1 : [%2]").arg( query ).arg( count );
+ footstr = headstr;
+ anchor = "header";
+ break;
+
+ /*--------------------------------*/
case KITANAVI_EXTBYWORD:
- if(query.at(0) == '|'){ /* OR */
- ext_OR = TRUE;
- str = query.mid(1);
- }
- else{ /* AND */
- ext_OR = FALSE;
- str = query;
- }
- str.replace(Kita::ParseMisc::utf8ToUnicode(KITAUTF8_ZENSPACE)," ");
- str.replace(qrx," "); /* pack space */
- queries = QStringList::split(" ", str);
-
- for(int i = 1; i<= totalNum; i++){
- if(Kita::DatManager::checkWord( datURL, queries, i, ext_OR )){
- str = Kita::DatManager::getDat( datURL, i );
- view->domAppendData(str,i,i);
- count++;
- }
- }
- headstr = Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT)
- +QString(": %1 : [%2]").arg(query).arg(count);
- footstr = headstr;
- anchor = "header";
- cmbstr = "?"+query;
- break;
-
- /*--------------------------------*/
-
+ if(query.at(0) == '|')
+ { /* OR */
+ ext_OR = TRUE;
+ str = query.mid(1);
+ }
+ else
+ { /* AND */
+ ext_OR = FALSE;
+ str = query;
+ }
+ str.replace(Kita::ParseMisc::utf8ToUnicode(KITAUTF8_ZENSPACE)," ");
+ str.replace(qrx," "); /* pack space */
+ queries = QStringList::split(" ", str);
+
+ for(int i = 1; i<= totalNum; i++)
+ {
+ if(Kita::DatManager::checkWord( datURL, queries, i, ext_OR ))
+ {
+ str = Kita::DatManager::getDat( datURL, i );
+ view->domAppendData(str,i,i);
+ count++;
+ }
+ }
+ headstr = Kita::ParseMisc::utf8ToUnicode(KITAUTF8_EXTRACT)
+ +QString(": %1 : [%2]").arg(query).arg(count);
+ footstr = headstr;
+ anchor = "header";
+ cmbstr = "?"+query;
+ break;
+
+ /*--------------------------------*/
+
case KITANAVI_SHOWRESTREE:
- case KITANAVI_SHOWREVRESTREE:
-
- str = QString("[%1] %2 : No.%3 [%4]<br>")
- .arg( Kita::DatManager::thread_boardName( datURL ) )
- .arg( Kita::DatManager::thread_name( datURL ) )
- .arg(startnum ).arg( endnum );
- urlstr = Kita::DatManager::thread_url( datURL ) + QString().setNum( startnum );
- str += "<a href=\""+urlstr+"\">"+urlstr+"</a><br>";
- str += Kita::DatManager::getHtml( datURL, startnum, startnum );
- if( endnum ){
- str += "<div style=\"background-color: #CCCCCC; text-align: center\"><br></div>";
- str += query;
- }
- view->domSetInnerHTML(str);
-
- break;
+ case KITANAVI_SHOWREVRESTREE:
+
+ str = QString("[%1] %2 : No.%3 [%4]<br>")
+ .arg( Kita::DatManager::thread_boardName( datURL ) )
+ .arg( Kita::DatManager::thread_name( datURL ) )
+ .arg(startnum ).arg( endnum );
+ urlstr = Kita::DatManager::thread_url( datURL ) + QString().setNum( startnum );
+ str += "<a href=\""+urlstr+"\">"+urlstr+"</a><br>";
+ str += Kita::DatManager::getHtml( datURL, startnum, startnum );
+ if( endnum )
+ {
+ str += "<div style=\"background-color: #CCCCCC; text-align: center\"><br></div>";
+ str += query;
+ }
+ view->domSetInnerHTML(str);
+
+ break;
default:
- break;
+ break;
}
-
+
m_qtw->showPage(view);
view->domApplyChange(labelstr,headstr,footstr,anchor,cmbstr);
}
/* for keyboard acceleration */
-void KitaNavi::slotEditFind(){
+void KitaNavi::slotEditFind()
+{
KitaThreadView* view = static_cast<KitaThreadView*>(m_qtw->currentPage());
view->focusSearchCombo();
/* when window is deactivated, emit signal to popup */ /* protected */
void KitaNavi::windowActivationChange ( bool )
{
- if(!isActiveWindow()) emit windowDeactivated();
+ if(!isActiveWindow()) emit windowDeactivated();
}
/* private slot */
-void KitaNavi::slotIsKitaActive(){
+void KitaNavi::slotIsKitaActive()
+{
if(isActiveWindow()) emit kitaIsActive();
}
/* static & public */
/* Don't forget to call this in KitaMainWindow::setupView */ /* static & public */
-void KitaNavi::createKitaNavi(QWidget* parent, KitaThreadTabWidget* ){
- if(m_kitanavi == NULL){
- m_kitanavi = new KitaNavi(parent,KITANAVI_NAVI);
+void KitaNavi::createKitaNavi(QWidget* parent, KitaThreadTabWidget* )
+{
+ if(m_kitanavi == NULL)
+ {
+ m_kitanavi = new KitaNavi(parent,KITANAVI_NAVI);
}
}
-KitaNavi* KitaNavi::getKitaNavi(){
+KitaNavi* KitaNavi::getKitaNavi()
+{
if(m_kitanavi) m_kitanavi->show();
return m_kitanavi;
}
/* show res */
-void KitaNavi::showKitaNavi( const KURL& datURL, int startnum, int endnum){
+void KitaNavi::showKitaNavi( const KURL& datURL, int startnum, int endnum)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
/* extract by ID */
-void KitaNavi::showKitaNaviByID(const KURL& datURL, QString strid){
+void KitaNavi::showKitaNaviByID(const KURL& datURL, QString strid)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
/* extract by keywords */
-void KitaNavi::showKitaNaviByWord( const KURL& datURL, QString query){
+void KitaNavi::showKitaNaviByWord( const KURL& datURL, QString query)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
KURL parsedURL = Kita::ParseMisc::parseURLonly( datURL );
- m_kitanavi->addTab( KITANAVI_EXTBYWORD, parsedURL, query, 0, 0 );
+ m_kitanavi->addTab( KITANAVI_EXTBYWORD, parsedURL, query, 0, 0 );
}
/* extract by name */
-void KitaNavi::showKitaNaviByName( const KURL& datURL, QString query){
+void KitaNavi::showKitaNaviByName( const KURL& datURL, QString query)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
KURL parsedURL = Kita::ParseMisc::parseURLonly( datURL );
- m_kitanavi->addTab( KITANAVI_EXTBYNAME, parsedURL, query, 0, 0 );
+ m_kitanavi->addTab( KITANAVI_EXTBYNAME, parsedURL, query, 0, 0 );
}
/* res tree */
-void KitaNavi::showKitaNaviResTree( const KURL& datURL, int resNum){
+void KitaNavi::showKitaNaviResTree( const KURL& datURL, int resNum)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
/* reverse res tree */
-void KitaNavi::showKitaNaviRevResTree( const KURL& datURL, int resNum){
+void KitaNavi::showKitaNaviRevResTree( const KURL& datURL, int resNum)
+{
if( ! m_kitanavi ) return;
m_kitanavi->show();
popup.insertSeparator();
popup.insertItem( i18n( "Close other tabs" ), 3 );
- popup.insertItem( i18n( "Close right tabs" ), 4 );
+ popup.insertItem( i18n( "Close right tabs" ), 4 );
popup.insertItem( i18n( "Close left tabs" ), 5 );
popup.insertItem( i18n( "Close all tabs" ), 2 );
-
- switch ( popup.exec( e->globalPos() ) ) {
+
+ switch ( popup.exec( e->globalPos() ) )
+ {
case 1: /* close */
- if(view != NULL) tw->myRemovePage( view ,TRUE);
- break;
+ if(view != NULL) tw->myRemovePage( view ,TRUE);
+ break;
case 2: /* all */
- while(tw->count() > 0 && view != NULL) view = tw->myRemovePage( view ,TRUE);
- break;
+ while(tw->count() > 0 && view != NULL) view = tw->myRemovePage( view ,TRUE);
+ break;
case 3: /* other */
- for(int i=0,i2 = 0;i < max;i++){
- view = tw->page(i2);
- if(view != NULL){
- if(view != curview) tw->myRemovePage( view ,TRUE);
- else i2++;
- }
- }
+ for(int i=0,i2 = 0;i < max;i++)
+ {
+ view = tw->page(i2);
+ if(view != NULL)
+ {
+ if(view != curview) tw->myRemovePage( view ,TRUE);
+ else i2++;
+ }
+ }
break;
case 4: /* right */
- for(int i=curnum+1 ; i<max;i++){
- view = tw->page(curnum+1);
- if(view != NULL) tw->myRemovePage( view ,TRUE);
- }
+ for(int i=curnum+1 ; i<max;i++)
+ {
+ view = tw->page(curnum+1);
+ if(view != NULL) tw->myRemovePage( view ,TRUE);
+ }
break;
case 5: /* left */
- for(int i=0 ;i<curnum ;i++){
- view = tw->page(0);
- if(view != NULL) tw->myRemovePage( view ,TRUE);
- }
+ for(int i=0 ;i<curnum ;i++)
+ {
+ view = tw->page(0);
+ if(view != NULL) tw->myRemovePage( view ,TRUE);
+ }
break;
-
+
default:
break;
}
connect( this, SIGNAL( currentChanged ( QWidget * ) ),
SLOT( slotCurrentChanged ( QWidget * ) ) );
-
+
m_navimode = mode;
m_prevview = NULL;
}
-KitaNaviTab::~KitaNaviTab(){
+KitaNaviTab::~KitaNaviTab()
+{
- if(m_prevview){
- delete m_prevview;
- m_prevview = NULL;
+ if(m_prevview)
+ {
+ delete m_prevview;
+ m_prevview = NULL;
}
QWidget* view = currentPage();
}
-void KitaNaviTab::slotCurrentChanged( QWidget * w){
+void KitaNaviTab::slotCurrentChanged( QWidget * w)
+{
static_cast<KitaThreadView *>( w ) ->showStatusBar( "" );
}
/* remove page */
/* remove w, then return new current page */
/*----------------------------------------*/
-QWidget* KitaNaviTab::myRemovePage(QWidget* w, bool delCurView){
+QWidget* KitaNaviTab::myRemovePage(QWidget* w, bool delCurView)
+{
QWidget* retw;
- if(m_prevview){
- delete m_prevview;
- m_prevview = NULL;
+ if(m_prevview)
+ {
+ delete m_prevview;
+ m_prevview = NULL;
}
-
- switch(m_navimode){
+
+ switch(m_navimode)
+ {
case KITANAVI_NAVI:
- KitaThreadView* view;
- view = static_cast<KitaThreadView*>(w);
- removePage( view );
+ KitaThreadView* view;
+ view = static_cast<KitaThreadView*>(w);
+ removePage( view );
- /* Calling this function from KitaThreadView itself will
- causes the crush. So, backup the instance and delete it later. */
- if(delCurView) delete view;
- else m_prevview = view;
+ /* Calling this function from KitaThreadView itself will
+ causes the crush. So, backup the instance and delete it later. */
+ if(delCurView) delete view;
+ else m_prevview = view;
- break;
+ break;
}
retw = currentPage();