ktextbrowser.cpp
/* This file is part of the KDE Libraries
* Copyright (C) 1999-2000 Espen Sand (espen@kde.org)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include <qpopupmenu.h>
#include <kapplication.h>
#include <kglobalsettings.h>
#include <ktextbrowser.h>
#include <kcursor.h>
#include <kurl.h>
#include <kiconloader.h>
KTextBrowser::KTextBrowser( QWidget *parent, const char *name,
bool notifyClick )
: QTextBrowser( parent, name ), mNotifyClick(notifyClick)
{
//
//1999-10-04 Espen Sand: Not required anymore ?
//connect( this, SIGNAL(highlighted(const QString &)),
// this, SLOT(refChanged(const QString &)));
}
KTextBrowser::~KTextBrowser( void )
{
}
void KTextBrowser::setNotifyClick( bool notifyClick )
{
mNotifyClick = notifyClick;
}
bool KTextBrowser::isNotifyClick() const
{
return mNotifyClick;
}
void KTextBrowser::setSource( const QString& name )
{
if( name.isNull() )
{
return;
}
if( name.find('@') > -1 )
{
if( !mNotifyClick )
{
kapp->invokeMailer( KURL( name ) );
}
else
{
emit mailClick( QString::null, name );
}
}
else
{
if( !mNotifyClick )
{
kapp->invokeBrowser( name );
}
else
{
emit urlClick( name );
}
}
}
void KTextBrowser::keyPressEvent(QKeyEvent *e)
{
if( e->key() == Key_Escape )
{
e->ignore();
}
else if( e->key() == Key_F1 )
{
e->ignore();
}
else
{
QTextBrowser::keyPressEvent(e);
}
}
void KTextBrowser::viewportMouseMoveEvent( QMouseEvent* e)
{
// do this first so we get the right type of cursor
QTextBrowser::viewportMouseMoveEvent(e);
if ( viewport()->cursor().shape() == PointingHandCursor )
viewport()->setCursor( KCursor::handCursor() );
}
void KTextBrowser::contentsWheelEvent( QWheelEvent *e )
{
if ( KGlobalSettings::wheelMouseZooms() )
QTextBrowser::contentsWheelEvent( e );
else // thanks, we don't want to zoom, so skip QTextEdit's impl.
QScrollView::contentsWheelEvent( e );
}
QPopupMenu *KTextBrowser::createPopupMenu( const QPoint & pos )
{
enum { IdUndo, IdRedo, IdSep1, IdCut, IdCopy, IdPaste, IdClear, IdSep2, IdSelectAll };
QPopupMenu *popup = QTextBrowser::createPopupMenu( pos );
if ( isReadOnly() )
popup->changeItem( popup->idAt(0), SmallIconSet("editcopy"), popup->text( popup->idAt(0) ) );
else {
int id = popup->idAt(0);
popup->changeItem( id - IdUndo, SmallIconSet("undo"), popup->text( id - IdUndo) );
popup->changeItem( id - IdRedo, SmallIconSet("redo"), popup->text( id - IdRedo) );
popup->changeItem( id - IdCut, SmallIconSet("editcut"), popup->text( id - IdCut) );
popup->changeItem( id - IdCopy, SmallIconSet("editcopy"), popup->text( id - IdCopy) );
popup->changeItem( id - IdPaste, SmallIconSet("editpaste"), popup->text( id - IdPaste) );
popup->changeItem( id - IdClear, SmallIconSet("editclear"), popup->text( id - IdClear) );
}
return popup;
}
void KTextBrowser::virtual_hook( int, void* )
{ /*BASE::virtual_hook( id, data );*/ }
#include "ktextbrowser.moc"
KTextBrowser::~KTextBrowser
~KTextBrowser(void)
Destructor.
Definition: ktextbrowser.cpp:39
KURL
KTextBrowser::urlClick
void urlClick(const QString &url)
Emitted if mailClick() is not emitted and the widget has been configured to emit the signal...
KTextBrowser::KTextBrowser
KTextBrowser(QWidget *parent=0, const char *name=0, bool notifyClick=false)
Constructor.
Definition: ktextbrowser.cpp:29
KTextBrowser::isNotifyClick
bool isNotifyClick() const
Returns whether a click on a link should be handled internally or if a signal should be emitted...
Definition: ktextbrowser.cpp:50
KGlobalSettings::wheelMouseZooms
static bool wheelMouseZooms()
KTextBrowser::mailClick
void mailClick(const QString &name, const QString &address)
Emitted when a mail link has been activated and the widget has been configured to emit the signal...
KTextBrowser::viewportMouseMoveEvent
virtual void viewportMouseMoveEvent(QMouseEvent *e)
Make sure we use our own hand cursor.
Definition: ktextbrowser.cpp:104
KCursor::handCursor
static QCursor handCursor()
Returns the proper hand cursor according to the current GUI style (static function).
Definition: kcursor.cpp:43
KTextBrowser::createPopupMenu
virtual QPopupMenu * createPopupMenu(const QPoint &pos)
Re-implemented for internal reasons.
Definition: ktextbrowser.cpp:121
KTextBrowser::keyPressEvent
virtual void keyPressEvent(QKeyEvent *e)
Makes sure Key_Escape is ignored.
Definition: ktextbrowser.cpp:88
KTextBrowser::setSource
void setSource(const QString &name)
Reimplemented to NOT set the source but to do the special handling.
Definition: ktextbrowser.cpp:56
KTextBrowser::setNotifyClick
void setNotifyClick(bool notifyClick)
Decide whether a click on a link should be handled internally or if a signal should be emitted...
Definition: ktextbrowser.cpp:44
KTextBrowser::contentsWheelEvent
virtual void contentsWheelEvent(QWheelEvent *e)
Reimplemented to support Qt2 behavior (Ctrl-Wheel = fast scroll)
Definition: ktextbrowser.cpp:113

KDE Home | KDE Accessibility Home | Description of Access Keys