summaryrefslogtreecommitdiffstats
path: root/kdeui/ktextedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/ktextedit.cpp')
-rw-r--r--kdeui/ktextedit.cpp419
1 files changed, 0 insertions, 419 deletions
diff --git a/kdeui/ktextedit.cpp b/kdeui/ktextedit.cpp
deleted file mode 100644
index 73bbf3c5f..000000000
--- a/kdeui/ktextedit.cpp
+++ /dev/null
@@ -1,419 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@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 "ktextedit.h"
-
-#include <tqapplication.h>
-#include <tqclipboard.h>
-#include <tqpopupmenu.h>
-
-#include <ksyntaxhighlighter.h>
-#include <kspell.h>
-#include <kcursor.h>
-#include <kglobalsettings.h>
-#include <kstdaccel.h>
-#include <kiconloader.h>
-#include <klocale.h>
-
-class KTextEdit::KTextEditPrivate
-{
-public:
- KTextEditPrivate()
- : customPalette( false ),
- checkSpellingEnabled( false ),
- highlighter( 0 ),
- spell( 0 )
- {}
- ~KTextEditPrivate() {
- delete highlighter;
- delete spell;
- }
-
- bool customPalette;
- bool checkSpellingEnabled;
- KDictSpellingHighlighter *highlighter;
- KSpell *spell;
-};
-
-KTextEdit::KTextEdit( const TQString& text, const TQString& context,
- TQWidget *parent, const char *name )
- : TQTextEdit ( text, context, parent, name )
-{
- d = new KTextEditPrivate();
- KCursor::setAutoHideCursor( this, true, false );
-}
-
-KTextEdit::KTextEdit( TQWidget *parent, const char *name )
- : TQTextEdit ( parent, name )
-{
- d = new KTextEditPrivate();
- KCursor::setAutoHideCursor( this, true, false );
-}
-
-KTextEdit::~KTextEdit()
-{
- delete d;
-}
-
-void KTextEdit::keyPressEvent( TQKeyEvent *e )
-{
- KKey key( e );
-
- if ( KStdAccel::copy().contains( key ) ) {
- copy();
- e->accept();
- return;
- }
- else if ( KStdAccel::paste().contains( key ) ) {
- paste();
- e->accept();
- return;
- }
- else if ( KStdAccel::cut().contains( key ) ) {
- cut();
- e->accept();
- return;
- }
- else if ( KStdAccel::undo().contains( key ) ) {
- undo();
- e->accept();
- return;
- }
- else if ( KStdAccel::redo().contains( key ) ) {
- redo();
- e->accept();
- return;
- }
- else if ( KStdAccel::deleteWordBack().contains( key ) )
- {
- deleteWordBack();
- e->accept();
- return;
- }
- else if ( KStdAccel::deleteWordForward().contains( key ) )
- {
- deleteWordForward();
- e->accept();
- return;
- }
- else if ( KStdAccel::backwardWord().contains( key ) )
- {
- CursorAction action = MoveWordBackward;
- int para, index;
- getCursorPosition( &para, & index );
- if (text(para).isRightToLeft())
- action = MoveWordForward;
- moveCursor(action, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::forwardWord().contains( key ) )
- {
- CursorAction action = MoveWordForward;
- int para, index;
- getCursorPosition( &para, & index );
- if (text(para).isRightToLeft())
- action = MoveWordBackward;
- moveCursor( action, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::next().contains( key ) )
- {
- moveCursor( MovePgDown, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::prior().contains( key ) )
- {
- moveCursor( MovePgUp, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::home().contains( key ) )
- {
- moveCursor( MoveHome, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::end().contains( key ) )
- {
- moveCursor( MoveEnd, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::beginningOfLine().contains( key ) )
- {
- moveCursor( MoveLineStart, false );
- e->accept();
- return;
- }
- else if ( KStdAccel::endOfLine().contains( key ) )
- {
- moveCursor(MoveLineEnd, false);
- e->accept();
- return;
- }
- else if ( KStdAccel::pasteSelection().contains( key ) )
- {
- TQString text = TQApplication::tqclipboard()->text( TQClipboard::Selection);
- if ( !text.isEmpty() )
- insert( text );
- e->accept();
- return;
- }
-
- // ignore Ctrl-Return so that KDialogs can close the dialog
- else if ( e->state() == ControlButton &&
- (e->key() == Key_Return || e->key() == Key_Enter) &&
- tqtopLevelWidget()->inherits( "KDialog" ) )
- {
- e->ignore();
- return;
- }
-
- TQTextEdit::keyPressEvent( e );
-}
-
-void KTextEdit::deleteWordBack()
-{
- removeSelection();
- moveCursor( MoveWordBackward, true );
- removeSelectedText();
-}
-
-void KTextEdit::deleteWordForward()
-{
- removeSelection();
- moveCursor( MoveWordForward, true );
- removeSelectedText();
-}
-
-void KTextEdit::slotAllowTab()
-{
-setTabChangesFocus(!tabChangesFocus());
-}
-
-TQPopupMenu *KTextEdit::createPopupMenu( const TQPoint &pos )
-{
- enum { IdUndo, IdRedo, IdSep1, IdCut, IdCopy, IdPaste, IdClear, IdSep2, IdSelectAll };
-
- TQPopupMenu *menu = TQTextEdit::createPopupMenu( pos );
-
- if ( isReadOnly() )
- menu->changeItem( menu->idAt(0), SmallIconSet("editcopy"), menu->text( menu->idAt(0) ) );
- else {
- int id = menu->idAt(0);
- menu->changeItem( id - IdUndo, SmallIconSet("undo"), menu->text( id - IdUndo) );
- menu->changeItem( id - IdRedo, SmallIconSet("redo"), menu->text( id - IdRedo) );
- menu->changeItem( id - IdCut, SmallIconSet("editcut"), menu->text( id - IdCut) );
- menu->changeItem( id - IdCopy, SmallIconSet("editcopy"), menu->text( id - IdCopy) );
- menu->changeItem( id - IdPaste, SmallIconSet("editpaste"), menu->text( id - IdPaste) );
- menu->changeItem( id - IdClear, SmallIconSet("editclear"), menu->text( id - IdClear) );
-
- menu->insertSeparator();
- id = menu->insertItem( SmallIconSet( "spellcheck" ), i18n( "Check Spelling..." ),
- this, TQT_SLOT( checkSpelling() ) );
-
- if( text().isEmpty() )
- menu->setItemEnabled( id, false );
-
- id = menu->insertItem( i18n( "Auto Spell Check" ),
- this, TQT_SLOT( toggleAutoSpellCheck() ) );
- menu->setItemChecked(id, d->checkSpellingEnabled);
- menu->insertSeparator();
- id=menu->insertItem(i18n("Allow Tabulations"),this,TQT_SLOT(slotAllowTab()));
- menu->setItemChecked(id, !tabChangesFocus());
- }
-
- return menu;
-}
-
-TQPopupMenu *KTextEdit::createPopupMenu()
-{
- return TQTextEdit::createPopupMenu();
-}
-
-void KTextEdit::contentsWheelEvent( TQWheelEvent *e )
-{
- if ( KGlobalSettings::wheelMouseZooms() )
- TQTextEdit::contentsWheelEvent( e );
- else // thanks, we don't want to zoom, so skip QTextEdit's impl.
- TQScrollView::contentsWheelEvent( e );
-}
-
-void KTextEdit::setPalette( const TQPalette& palette )
-{
- TQTextEdit::setPalette( palette );
- // unsetPalette() is not virtual and calls setPalette() as well
- // so we can use ownPalette() to find out about unsetting
- d->customPalette = ownPalette();
-}
-
-void KTextEdit::toggleAutoSpellCheck()
-{
- setCheckSpellingEnabled( !d->checkSpellingEnabled );
-}
-
-void KTextEdit::setCheckSpellingEnabled( bool check )
-{
- if ( check == d->checkSpellingEnabled )
- return;
-
- // From the above statment we know know that if we're turning checking
- // on that we need to create a new highlighter and if we're turning it
- // off we should remove the old one.
-
- d->checkSpellingEnabled = check;
- if ( check )
- {
- if (hasFocus())
- d->highlighter = new KDictSpellingHighlighter( this );
- }
- else
- {
- delete d->highlighter;
- d->highlighter = 0;
- }
-}
-
-void KTextEdit::focusInEvent( TQFocusEvent *e )
-{
- if ( d->checkSpellingEnabled && !isReadOnly() && !d->highlighter )
- d->highlighter = new KDictSpellingHighlighter( this );
-
- TQTextEdit::focusInEvent( e );
-}
-
-bool KTextEdit::checkSpellingEnabled() const
-{
- return d->checkSpellingEnabled;
-}
-
-void KTextEdit::setReadOnly(bool readOnly)
-{
- if ( !readOnly && hasFocus() && d->checkSpellingEnabled && !d->highlighter )
- d->highlighter = new KDictSpellingHighlighter( this );
-
- if ( readOnly == isReadOnly() )
- return;
-
- if (readOnly)
- {
- delete d->highlighter;
- d->highlighter = 0;
-
- bool custom = ownPalette();
- TQPalette p = palette();
- TQColor color = p.color(TQPalette::Disabled, TQColorGroup::Background);
- p.setColor(TQColorGroup::Base, color);
- p.setColor(TQColorGroup::Background, color);
- setPalette(p);
- d->customPalette = custom;
- }
- else
- {
- if ( d->customPalette )
- {
- TQPalette p = palette();
- TQColor color = p.color(TQPalette::Normal, TQColorGroup::Base);
- p.setColor(TQColorGroup::Base, color);
- p.setColor(TQColorGroup::Background, color);
- setPalette( p );
- }
- else
- unsetPalette();
- }
-
- TQTextEdit::setReadOnly (readOnly);
-}
-
-void KTextEdit::virtual_hook( int, void* )
-{ /*BASE::virtual_hook( id, data );*/ }
-
-void KTextEdit::checkSpelling()
-{
- delete d->spell;
- d->spell = new KSpell( this, i18n( "Spell Checking" ),
- TQT_TQOBJECT(this), TQT_SLOT( slotSpellCheckReady( KSpell *) ), 0, true, true);
-
- connect( d->spell, TQT_SIGNAL( death() ),
- this, TQT_SLOT( spellCheckerFinished() ) );
-
- connect( d->spell, TQT_SIGNAL( misspelling( const TQString &, const TQStringList &, unsigned int ) ),
- this, TQT_SLOT( spellCheckerMisspelling( const TQString &, const TQStringList &, unsigned int ) ) );
-
- connect( d->spell, TQT_SIGNAL( corrected( const TQString &, const TQString &, unsigned int ) ),
- this, TQT_SLOT( spellCheckerCorrected( const TQString &, const TQString &, unsigned int ) ) );
-}
-
-void KTextEdit::spellCheckerMisspelling( const TQString &text, const TQStringList &, unsigned int pos )
-{
- highLightWord( text.length(), pos );
-}
-
-void KTextEdit::spellCheckerCorrected( const TQString &oldWord, const TQString &newWord, unsigned int pos )
-{
- unsigned int l = 0;
- unsigned int cnt = 0;
- if ( oldWord != newWord ) {
- posToRowCol( pos, l, cnt );
- setSelection( l, cnt, l, cnt + oldWord.length() );
- removeSelectedText();
- insert( newWord );
- }
-}
-
-void KTextEdit::posToRowCol(unsigned int pos, unsigned int &line, unsigned int &col)
-{
- for ( line = 0; line < static_cast<uint>( lines() ) && col <= pos; line++ )
- col += paragraphLength( line ) + 1;
-
- line--;
- col = pos - col + paragraphLength( line ) + 1;
-}
-
-void KTextEdit::spellCheckerFinished()
-{
- delete d->spell;
- d->spell = 0L;
-}
-
-void KTextEdit::slotSpellCheckReady( KSpell *s )
-{
- s->check( text() );
- connect( s, TQT_SIGNAL( done( const TQString & ) ), this, TQT_SLOT( slotSpellCheckDone( const TQString & ) ) );
-}
-
-void KTextEdit::slotSpellCheckDone( const TQString &s )
-{
- if ( s != text() )
- setText( s );
-}
-
-
-void KTextEdit::highLightWord( unsigned int length, unsigned int pos )
-{
- unsigned int l = 0;
- unsigned int cnt = 0;
- posToRowCol( pos, l, cnt );
- setSelection( l, cnt, l, cnt + length );
-}
-
-#include "ktextedit.moc"