kdeui
ktextbrowser.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <qpopupmenu.h>
00022 #include <kapplication.h>
00023 #include <kglobalsettings.h>
00024 #include <ktextbrowser.h>
00025 #include <kcursor.h>
00026 #include <kurl.h>
00027 #include <kiconloader.h>
00028
00029 KTextBrowser::KTextBrowser( QWidget *parent, const char *name,
00030 bool notifyClick )
00031 : QTextBrowser( parent, name ), mNotifyClick(notifyClick)
00032 {
00033
00034
00035
00036
00037 }
00038
00039 KTextBrowser::~KTextBrowser( void )
00040 {
00041 }
00042
00043
00044 void KTextBrowser::setNotifyClick( bool notifyClick )
00045 {
00046 mNotifyClick = notifyClick;
00047 }
00048
00049
00050 bool KTextBrowser::isNotifyClick() const
00051 {
00052 return mNotifyClick;
00053 }
00054
00055
00056 void KTextBrowser::setSource( const QString& name )
00057 {
00058 if( name.isNull() )
00059 {
00060 return;
00061 }
00062
00063 if( name.find('@') > -1 )
00064 {
00065 if( !mNotifyClick )
00066 {
00067 kapp->invokeMailer( KURL( name ) );
00068 }
00069 else
00070 {
00071 emit mailClick( QString::null, name );
00072 }
00073 }
00074 else
00075 {
00076 if( !mNotifyClick )
00077 {
00078 kapp->invokeBrowser( name );
00079 }
00080 else
00081 {
00082 emit urlClick( name );
00083 }
00084 }
00085 }
00086
00087
00088 void KTextBrowser::keyPressEvent(QKeyEvent *e)
00089 {
00090 if( e->key() == Key_Escape )
00091 {
00092 e->ignore();
00093 }
00094 else if( e->key() == Key_F1 )
00095 {
00096 e->ignore();
00097 }
00098 else
00099 {
00100 QTextBrowser::keyPressEvent(e);
00101 }
00102 }
00103
00104 void KTextBrowser::viewportMouseMoveEvent( QMouseEvent* e)
00105 {
00106
00107 QTextBrowser::viewportMouseMoveEvent(e);
00108
00109 if ( viewport()->cursor().shape() == PointingHandCursor )
00110 viewport()->setCursor( KCursor::handCursor() );
00111 }
00112
00113 void KTextBrowser::contentsWheelEvent( QWheelEvent *e )
00114 {
00115 if ( KGlobalSettings::wheelMouseZooms() )
00116 QTextBrowser::contentsWheelEvent( e );
00117 else
00118 QScrollView::contentsWheelEvent( e );
00119 }
00120
00121 QPopupMenu *KTextBrowser::createPopupMenu( const QPoint & pos )
00122 {
00123 enum { IdUndo, IdRedo, IdSep1, IdCut, IdCopy, IdPaste, IdClear, IdSep2, IdSelectAll };
00124
00125 QPopupMenu *popup = QTextBrowser::createPopupMenu( pos );
00126
00127 if ( isReadOnly() )
00128 popup->changeItem( popup->idAt(0), SmallIconSet("editcopy"), popup->text( popup->idAt(0) ) );
00129 else {
00130 int id = popup->idAt(0);
00131 popup->changeItem( id - IdUndo, SmallIconSet("undo"), popup->text( id - IdUndo) );
00132 popup->changeItem( id - IdRedo, SmallIconSet("redo"), popup->text( id - IdRedo) );
00133 popup->changeItem( id - IdCut, SmallIconSet("editcut"), popup->text( id - IdCut) );
00134 popup->changeItem( id - IdCopy, SmallIconSet("editcopy"), popup->text( id - IdCopy) );
00135 popup->changeItem( id - IdPaste, SmallIconSet("editpaste"), popup->text( id - IdPaste) );
00136 popup->changeItem( id - IdClear, SmallIconSet("editclear"), popup->text( id - IdClear) );
00137 }
00138
00139 return popup;
00140 }
00141
00142 void KTextBrowser::virtual_hook( int, void* )
00143 { }
00144
00145 #include "ktextbrowser.moc"