summaryrefslogtreecommitdiffstats
path: root/kdeui/ktextbrowser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/ktextbrowser.cpp')
-rw-r--r--kdeui/ktextbrowser.cpp145
1 files changed, 145 insertions, 0 deletions
diff --git a/kdeui/ktextbrowser.cpp b/kdeui/ktextbrowser.cpp
new file mode 100644
index 000000000..4abc268d2
--- /dev/null
+++ b/kdeui/ktextbrowser.cpp
@@ -0,0 +1,145 @@
+/* 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"