OSDN Git Service

popup fixes
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Wed, 16 Jul 2003 14:46:15 +0000 (14:46 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Wed, 16 Jul 2003 14:46:15 +0000 (14:46 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@403 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/part/kitathreadview.cpp

index d238966..13241f2 100644 (file)
@@ -392,15 +392,17 @@ void KitaThreadView::slotOnURL(const QString& url)
   if ( ! url.isEmpty() ) {
     KHTMLView* view = m_threadPart->view();
 
-    if( ! m_popup ) {
-      m_popup = new QFrame( view, "res_popup", WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WType_TopLevel );
-      m_browser = new QTextBrowser( m_popup );
-      m_browser->setPaletteBackgroundColor( "yellow" );
-      m_browser->setWordWrap( QTextEdit::NoWrap );
-      m_browser->setResizePolicy( QScrollView::AutoOne );
-      connect( m_threadPart->view(), SIGNAL( leave() ), SLOT( hidePopup() ) );
+    if( m_popup ) {
+      delete m_popup;
     }
 
+    m_popup = new QFrame( view, "res_popup", WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WType_TopLevel );
+    m_browser = new QTextBrowser( m_popup );
+    m_browser->setPaletteBackgroundColor( "yellow" );
+    m_browser->setWordWrap( QTextEdit::NoWrap );
+    m_browser->setResizePolicy( QScrollView::AutoOne );
+    connect( m_threadPart->view(), SIGNAL( leave() ), SLOT( hidePopup() ) );
+
     int refNum = 0;
     if ( url.at(0) == '#' ) {
       refNum = url.mid(1).toInt();
@@ -414,14 +416,14 @@ void KitaThreadView::slotOnURL(const QString& url)
       DOM::HTMLDListElement comment_dl = static_cast<DOM::HTMLDListElement>(comments.item( refNum - 1 ));
       QString innerHTML = comment_dl.innerHTML().string();
 
-      m_browser->setText( "" );
-      m_browser->resizeContents( 1, 1 );
       m_browser->setText( innerHTML );
       m_browser->resize( m_browser->contentsWidth() + 10, m_browser->contentsHeight() );
-
-      m_popup->move( QCursor::pos() + QPoint( 10, 10 ) );
       m_popup->adjustSize();
 
+      QPoint pos = QCursor::pos();
+      pos -= QPoint( 0, m_popup->height() ) + QPoint( -10, 10 );
+      m_popup->move( pos );
+
       m_popup->show();
     }
   } else {