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"