From: ikemo Date: Sun, 10 Aug 2003 07:27:26 +0000 (+0000) Subject: impl context menu X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=846597e7cb18f65833d8228b271038cfc79df9dc;p=kita%2Fkita.git impl context menu git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@459 56b19765-1e22-0410-a548-a0f45d66c51a --- diff --git a/kita/src/kitathreadtabwidget.cpp b/kita/src/kitathreadtabwidget.cpp index 153099a..dd0d222 100644 --- a/kita/src/kitathreadtabwidget.cpp +++ b/kita/src/kitathreadtabwidget.cpp @@ -14,12 +14,19 @@ #include "kitathreadview.h" #include +#include +#include + +#include +#include #define MAX_TABLABEL_LEN 20 KitaThreadTabWidget::KitaThreadTabWidget(QWidget *parent, const char *name, WFlags f) : QTabWidget(parent, name, f) { + setTabBar( new KitaThreadTabBar( this ) ); + KLibFactory* factory = KLibLoader::self()->factory( "libkitapart" ); if( ! factory ) { return; @@ -73,3 +80,38 @@ void KitaThreadTabWidget::connectSignals( KitaThreadView* view ) connect( view, SIGNAL( showThreadCompleted( const KURL& ) ), this, SIGNAL( showThreadCompleted( const KURL& ) ) ); } + + +KitaThreadTabBar::KitaThreadTabBar( QWidget* parent, const char* name ) + : QTabBar( parent, name ) +{ +} + +KitaThreadTabBar::~KitaThreadTabBar() +{ +} + +void KitaThreadTabBar::contextMenuEvent( QContextMenuEvent* e ) +{ + KPopupMenu popup( 0 ); + popup.insertItem( i18n("Open with Web Browser"), 0 ); + popup.insertItem( i18n("Copy title and URL"), 1 ); +// popup.insertItem( i18n("Close this tab"), 2 ); + + QTabWidget* parent = static_cast( parentWidget() ); + KitaThreadView* threadView = static_cast( parent->currentPage() ); + QClipboard* clipboard = QApplication::clipboard(); + + switch( popup.exec( e->globalPos() ) ) { + case 0: + KRun::runURL( threadView->threadURL(), "text/html" ); + break; + case 1: + clipboard->setText( threadView->threadName() + "\n" + threadView->threadURL().url() ); + break; + default: + break; + } + + qDebug("currentPage = %s", static_cast( tab( currentTab() )->text().local8Bit() ) ); +} diff --git a/kita/src/kitathreadtabwidget.h b/kita/src/kitathreadtabwidget.h index 3639702..3bce52e 100644 --- a/kita/src/kitathreadtabwidget.h +++ b/kita/src/kitathreadtabwidget.h @@ -12,6 +12,7 @@ #define KITATHREADTABWIDGET_H #include +#include #include class KitaThreadPart; @@ -49,4 +50,16 @@ signals: void showThreadCompleted( const KURL& threadUrl ); }; +class KitaThreadTabBar : public QTabBar +{ + Q_OBJECT + +public: + KitaThreadTabBar( QWidget* parent = 0, const char* name = 0 ); + ~KitaThreadTabBar(); + +protected: + virtual void contextMenuEvent( QContextMenuEvent* e ); +}; + #endif diff --git a/kita/src/part/kitathreadview.cpp b/kita/src/part/kitathreadview.cpp index e52ed2a..a292e39 100644 --- a/kita/src/part/kitathreadview.cpp +++ b/kita/src/part/kitathreadview.cpp @@ -114,6 +114,11 @@ const QString KitaThreadView::threadName() const return m_thread.name(); } +const KURL KitaThreadView::threadURL() const +{ + return m_thread.url(); +} + void KitaThreadView::slotDOMNodeActivated(const DOM::Node &node) { { //process Anchor tags. Anchor tags not proccessed here cause 'emit KParts::BrowserExtention::openURLRequest()' diff --git a/kita/src/part/kitathreadview.h b/kita/src/part/kitathreadview.h index fc5d243..0939396 100644 --- a/kita/src/part/kitathreadview.h +++ b/kita/src/part/kitathreadview.h @@ -48,6 +48,7 @@ public: KitaThreadView( QWidget *parent, const char *name=0 ); ~KitaThreadView(); const QString threadName() const; + const KURL threadURL() const; void searchNext( const QStringList &input ); void killJob(); KParts::BrowserExtension* browserExtension();