• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeui
 

tdeui

  • tdeui
keditcl1.cpp
1 /* This file is part of the KDE libraries
2 
3  Copyright (C) 1997 Bernd Johannes Wuebben <wuebben@math.cornell.edu>
4  Copyright (C) 2000 Waldo Bastian <bastian@kde.org>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 
22 #include <tqdragobject.h>
23 #include <tqpopupmenu.h>
24 #include <tqtextstream.h>
25 #include <tqtimer.h>
26 
27 #include <tdeapplication.h>
28 #include <kcursor.h>
29 #include <kdebug.h>
30 #include <kcmenumngr.h>
31 #include <tdefontdialog.h>
32 #include <tdelocale.h>
33 #include <tdemessagebox.h>
34 #include <tdestdaccel.h>
35 #include <kurldrag.h>
36 
37 #include "keditcl.h"
38 #include "keditcl.moc"
39 
40 class KEdit::KEditPrivate
41 {
42 public:
43  bool overwriteEnabled:1;
44  bool posDirty:1;
45  bool autoUpdate:1;
46 };
47 
48 
49 KEdit::KEdit(TQWidget *_parent, const char *name)
50  : TQMultiLineEdit(_parent, name)
51 {
52  d = new KEditPrivate;
53  d->overwriteEnabled = false;
54  d->posDirty = true;
55  d->autoUpdate = true;
56 
57  parent = _parent;
58 
59  // set some defaults
60 
61  line_pos = col_pos = 0;
62 
63  srchdialog = NULL;
64  replace_dialog= NULL;
65  gotodialog = NULL;
66 
67  setAcceptDrops(true);
68  KCursor::setAutoHideCursor( this, true );
69 
70  connect(this, TQT_SIGNAL(cursorPositionChanged(int,int)),
71  this, TQT_SLOT(slotCursorPositionChanged()));
72 }
73 
74 
75 KEdit::~KEdit()
76 {
77  delete d;
78 }
79 
80 void
81 KEdit::setAutoUpdate(bool b)
82 {
83  d->autoUpdate = b;
84 }
85 
86 void
87 KEdit::insertText(TQTextStream *stream)
88 {
89 // setAutoUpdate(false);
90  int line, col;
91  getCursorPosition(&line, &col);
92  int saveline = line;
93  int savecol = col;
94  TQString textLine;
95 
96  // MS: Patch by Martin Schenk <martin@schenk.com>
97  // MS: disable UNDO, or TQMultiLineEdit remembers every textLine !!!
98  // memory usage is:
99  // textLine: 2*size rounded up to nearest power of 2 (520Kb -> 1024Kb)
100  // widget: about (2*size + 60bytes*lines)
101  // -> without disabling undo, it often needs almost 8*size
102  int oldUndoDepth = undoDepth();
103  setUndoDepth( 0 ); // ### -1?
104 
105  // MS: read everything at once if file <= 1MB,
106  // else read in 5000-line chunks to keep memory usage acceptable.
107  TQIODevice *dev=stream->device();
108  if (dev && dev->size()>(1024*1024)) {
109  while(1) {
110  int i;
111  textLine="";
112  for (i=0; i<5000; i++) {
113  TQString line=stream->readLine();
114  if (line.isNull()) break; // EOF
115  textLine+=line+'\n';
116  }
117  insertAt(textLine, line, col);
118  line+=i; col=0;
119  if (i!=5000) break;
120  }
121  }
122  else {
123  textLine = stream->read(); // Read all !
124  insertAt( textLine, line, col);
125  }
126  setUndoDepth( oldUndoDepth );
127 
128  setCursorPosition(saveline, savecol);
129 // setAutoUpdate(true);
130 
131 // repaint();
132 
133  setModified(true);
134  setFocus();
135 
136  // Bernd: Please don't leave debug message like that lying around
137  // they cause ENORMOUSE performance hits. Once upon a day
138  // kedit used to be really really fast using memmap etc .....
139  // oh well ....
140 
141  // TQString str = text();
142  // for (int i = 0; i < (int) str.length(); i++)
143  // printf("KEdit: U+%04X\n", str[i].unicode());
144 
145 }
146 
147 void
148 KEdit::cleanWhiteSpace()
149 {
150  d->autoUpdate = false;
151  if (!hasMarkedText())
152  selectAll();
153  TQString oldText = markedText();
154  TQString newText;
155  TQStringList lines = TQStringList::split('\n', oldText, true);
156  bool addSpace = false;
157  bool firstLine = true;
158  TQChar lastChar = oldText[oldText.length()-1];
159  TQChar firstChar = oldText[0];
160  for(TQStringList::Iterator it = lines.begin();
161  it != lines.end();)
162  {
163  TQString line = (*it).simplifyWhiteSpace();
164  if (line.isEmpty())
165  {
166  if (addSpace)
167  newText += TQString::fromLatin1("\n\n");
168  if (firstLine)
169  {
170  if (firstChar.isSpace())
171  newText += '\n';
172  firstLine = false;
173  }
174  addSpace = false;
175  }
176  else
177  {
178  if (addSpace)
179  newText += ' ';
180  if (firstLine)
181  {
182  if (firstChar.isSpace())
183  newText += ' ';
184  firstLine = false;
185  }
186  newText += line;
187  addSpace = true;
188  }
189  it = lines.remove(it);
190  }
191  if (addSpace)
192  {
193  if (lastChar == '\n')
194  newText += '\n';
195  else if (lastChar.isSpace())
196  newText += ' ';
197  }
198 
199  if (oldText == newText)
200  {
201  deselect();
202  d->autoUpdate = true;
203  repaint();
204  return;
205  }
206  if (wordWrap() == NoWrap)
207  {
208  // If wordwrap is off, we have to do some line-wrapping ourselves now
209  // We use another TQMultiLineEdit for this, so that we get nice undo
210  // behavior.
211  TQMultiLineEdit *we = new TQMultiLineEdit();
212  we->setWordWrap(FixedColumnWidth);
213  we->setWrapColumnOrWidth(78);
214  we->setText(newText);
215  newText = TQString::null;
216  for(int i = 0; i < we->numLines(); i++)
217  {
218  TQString line = we->textLine(i);
219  if (line.right(1) != "\n")
220  line += '\n';
221  newText += line;
222  }
223  delete we;
224  }
225 
226  insert(newText);
227  d->autoUpdate = true;
228  repaint();
229 
230  setModified(true);
231  setFocus();
232 }
233 
234 
235 void
236 KEdit::saveText(TQTextStream *stream)
237 {
238  saveText(stream, false);
239 }
240 
241 void
242 KEdit::saveText(TQTextStream *stream, bool softWrap)
243 {
244  int line_count = numLines()-1;
245  if (line_count < 0)
246  return;
247 
248  if (softWrap || (wordWrap() == NoWrap))
249  {
250  for(int i = 0; i < line_count; i++)
251  {
252  (*stream) << textLine(i) << '\n';
253  }
254  (*stream) << textLine(line_count);
255  }
256  else
257  {
258  for(int i = 0; i <= line_count; i++)
259  {
260  int lines_in_parag = linesOfParagraph(i);
261  if (lines_in_parag == 1)
262  {
263  (*stream) << textLine(i);
264  }
265  else
266  {
267  TQString parag_text = textLine(i);
268  int pos = 0;
269  int first_pos = 0;
270  int current_line = 0;
271  while(true) {
272  while(lineOfChar(i, pos) == current_line) pos++;
273  (*stream) << parag_text.mid(first_pos, pos - first_pos - 1) << '\n';
274  current_line++;
275  first_pos = pos;
276  if (current_line+1 == lines_in_parag)
277  {
278  // Last line
279  (*stream) << parag_text.mid(pos);
280  break;
281  }
282  }
283  }
284  if (i < line_count)
285  (*stream) << '\n';
286  }
287  }
288 }
289 
290 int KEdit::currentLine(){
291 
292  computePosition();
293  return line_pos;
294 
295 }
296 
297 int KEdit::currentColumn(){
298 
299  computePosition();
300  return col_pos;
301 }
302 
303 void KEdit::slotCursorPositionChanged()
304 {
305  d->posDirty = true;
306  emit CursorPositionChanged();
307 }
308 
309 void KEdit::computePosition()
310 {
311  if (!d->posDirty) return;
312  d->posDirty = false;
313 
314  int line, col;
315 
316  getCursorPosition(&line,&col);
317 
318  // line is expressed in paragraphs, we now need to convert to lines
319  line_pos = 0;
320  if (wordWrap() == NoWrap)
321  {
322  line_pos = line;
323  }
324  else
325  {
326  for(int i = 0; i < line; i++)
327  line_pos += linesOfParagraph(i);
328  }
329 
330  int line_offset = lineOfChar(line, col);
331  line_pos += line_offset;
332 
333  // We now calculate where the current line starts in the paragraph.
334  TQString linetext = textLine(line);
335  int start_of_line = 0;
336  if (line_offset > 0)
337  {
338  start_of_line = col;
339  while(lineOfChar(line, --start_of_line) == line_offset);
340  start_of_line++;
341  }
342 
343 
344  // O.K here is the deal: The function getCursorPositoin returns the character
345  // position of the cursor, not the screenposition. I.e,. assume the line
346  // consists of ab\tc then the character c will be on the screen on position 8
347  // whereas getCursorPosition will return 3 if the cursors is on the character c.
348  // Therefore we need to compute the screen position from the character position.
349  // That's what all the following trouble is all about:
350 
351  int coltemp = col-start_of_line;
352  int pos = 0;
353  int find = 0;
354  int mem = 0;
355  bool found_one = false;
356 
357  // if you understand the following algorithm you are worthy to look at the
358  // kedit+ sources -- if not, go away ;-)
359 
360 
361  while(find >=0 && find <= coltemp- 1 ){
362  find = linetext.find('\t', find+start_of_line, true )-start_of_line;
363  if( find >=0 && find <= coltemp - 1 ){
364  found_one = true;
365  pos = pos + find - mem;
366  pos = pos + 8 - pos % 8;
367  mem = find;
368  find ++;
369  }
370  }
371 
372  pos = pos + coltemp - mem; // add the number of characters behind the
373  // last tab on the line.
374 
375  if (found_one){
376  pos = pos - 1;
377  }
378 
379  col_pos = pos;
380 }
381 
382 
383 void KEdit::keyPressEvent ( TQKeyEvent *e)
384 {
385  // ignore Ctrl-Return so that KDialogBase can catch them
386  if ( e->key() == Key_Return && e->state() == ControlButton ) {
387  e->ignore();
388  return;
389  }
390 
391  KKey key(e);
392  int keyQt = key.keyCodeQt();
393 
394  if ( keyQt == CTRL+Key_K ){
395 
396  int line = 0;
397  int col = 0;
398  TQString killstring;
399 
400  if(!killing){
401  killbufferstring = "";
402  killtrue = false;
403  lastwasanewline = false;
404  }
405 
406  if(!atEnd()){
407 
408  getCursorPosition(&line,&col);
409  killstring = textLine(line);
410  killstring = killstring.mid(col,killstring.length());
411 
412 
413  if(!killbufferstring.isEmpty() && !killtrue && !lastwasanewline){
414  killbufferstring += '\n';
415  }
416 
417  if( (killstring.length() == 0) && !killtrue){
418  killbufferstring += '\n';
419  lastwasanewline = true;
420  }
421 
422  if(killstring.length() > 0){
423 
424  killbufferstring += killstring;
425  lastwasanewline = false;
426  killtrue = true;
427 
428  }else{
429 
430  lastwasanewline = false;
431  killtrue = !killtrue;
432 
433  }
434 
435  }else{
436 
437  if(killbufferstring.isEmpty() && !killtrue && !lastwasanewline){
438  killtrue = true;
439  }
440 
441  }
442 
443  killing = true;
444 
445  TQMultiLineEdit::keyPressEvent(e);
446  setModified(true);
447  return;
448  }
449  else if ( keyQt == CTRL+Key_Y ){
450 
451  int line = 0;
452  int col = 0;
453 
454  getCursorPosition(&line,&col);
455 
456  TQString tmpstring = killbufferstring;
457  if(!killtrue)
458  tmpstring += '\n';
459 
460  insertAt(tmpstring,line,col);
461 
462  killing = false;
463  setModified(true);
464  return;
465  }
466 
467  killing = false;
468 
469  if ( TDEStdAccel::copy().contains( key ) )
470  copy();
471  else if ( isReadOnly() )
472  TQMultiLineEdit::keyPressEvent( e );
473  // If this is an unmodified printable key, send it directly to TQMultiLineEdit.
474  else if ( !(key.keyCodeQt() & (CTRL | ALT)) && !e->text().isEmpty() && TQString(e->text()).unicode()->isPrint() )
475  TQMultiLineEdit::keyPressEvent( e );
476  else if ( TDEStdAccel::paste().contains( key ) ) {
477  paste();
478  setModified(true);
479  slotCursorPositionChanged();
480  }
481  else if ( TDEStdAccel::cut().contains( key ) ) {
482  cut();
483  setModified(true);
484  slotCursorPositionChanged();
485  }
486  else if ( TDEStdAccel::undo().contains( key ) ) {
487  undo();
488  setModified(true);
489  slotCursorPositionChanged();
490  }
491  else if ( TDEStdAccel::redo().contains( key ) ) {
492  redo();
493  setModified(true);
494  slotCursorPositionChanged();
495  }
496  else if ( TDEStdAccel::deleteWordBack().contains( key ) ) {
497  moveCursor(MoveWordBackward, true);
498  if (hasSelectedText())
499  del();
500  setModified(true);
501  slotCursorPositionChanged();
502  }
503  else if ( TDEStdAccel::deleteWordForward().contains( key ) ) {
504  moveCursor(MoveWordForward, true);
505  if (hasSelectedText())
506  del();
507  setModified(true);
508  slotCursorPositionChanged();
509  }
510  else if ( TDEStdAccel::backwardWord().contains( key ) ) {
511  CursorAction action = MoveWordBackward;
512  int para, index;
513  getCursorPosition( &para, & index );
514  if (text(para).isRightToLeft())
515  action = MoveWordForward;
516  moveCursor(action, false );
517  slotCursorPositionChanged();
518  }
519  else if ( TDEStdAccel::forwardWord().contains( key ) ) {
520  CursorAction action = MoveWordForward;
521  int para, index;
522  getCursorPosition( &para, & index );
523  if (text(para).isRightToLeft())
524  action = MoveWordBackward;
525  moveCursor( action, false );
526  slotCursorPositionChanged();
527  }
528  else if ( TDEStdAccel::next().contains( key ) ) {
529  moveCursor( MovePgDown, false );
530  slotCursorPositionChanged();
531  }
532  else if ( TDEStdAccel::prior().contains( key ) ) {
533  moveCursor( MovePgUp, false );
534  slotCursorPositionChanged();
535  }
536  else if ( TDEStdAccel::home().contains( key ) ) {
537  moveCursor( MoveHome, false );
538  slotCursorPositionChanged();
539  }
540  else if ( TDEStdAccel::end().contains( key ) ) {
541  moveCursor( MoveEnd, false );
542  slotCursorPositionChanged();
543  }
544  else if ( TDEStdAccel::beginningOfLine().contains( key ) ) {
545  moveCursor( MoveLineStart, false);
546  slotCursorPositionChanged();
547  }
548  else if ( TDEStdAccel::endOfLine().contains( key ) ) {
549  moveCursor( MoveLineEnd, false);
550  slotCursorPositionChanged();
551  }
552  else if ( key == Key_Insert ) {
553  if (d->overwriteEnabled)
554  {
555  this->setOverwriteMode(!this->isOverwriteMode());
556  emit toggle_overwrite_signal();
557  }
558  }
559  else
560  TQMultiLineEdit::keyPressEvent(e);
561 }
562 
563 void KEdit::installRBPopup(TQPopupMenu *p) {
564  KContextMenuManager::insert( this, p );
565 }
566 
567 void KEdit::selectFont(){
568 
569  TQFont font = this->font();
570  TDEFontDialog::getFont(font);
571  this->setFont(font);
572 
573 }
574 
575 void KEdit::doGotoLine() {
576 
577  if( !gotodialog )
578  gotodialog = new KEdGotoLine( parent, "gotodialog" );
579 
580  this->clearFocus();
581 
582  gotodialog->exec();
583  // this seems to be not necessary
584  // gotodialog->setFocus();
585  if( gotodialog->result() != KEdGotoLine::Accepted)
586  return;
587  int target_line = gotodialog->getLineNumber()-1;
588  if (wordWrap() == NoWrap)
589  {
590  setCursorPosition( target_line, 0 );
591  setFocus();
592  return;
593  }
594 
595  int max_parag = paragraphs();
596 
597  int line = 0;
598  int parag = -1;
599  int lines_in_parag = 0;
600  while ((++parag < max_parag) && (line + lines_in_parag < target_line))
601  {
602  line += lines_in_parag;
603  lines_in_parag = linesOfParagraph(parag);
604  }
605 
606  int col = 0;
607  if (parag >= max_parag)
608  {
609  target_line = line + lines_in_parag - 1;
610  parag = max_parag-1;
611  }
612 
613  while(1+line+lineOfChar(parag,col) < target_line) col++;
614  setCursorPosition( parag, col );
615  setFocus();
616 }
617 
618 
619 void KEdit::dragMoveEvent(TQDragMoveEvent* e) {
620 
621  if(KURLDrag::canDecode(e))
622  e->accept();
623  else if(TQTextDrag::canDecode(e))
624  TQMultiLineEdit::dragMoveEvent(e);
625 }
626 
627 void KEdit::contentsDragMoveEvent(TQDragMoveEvent* e) {
628 
629  if(KURLDrag::canDecode(e))
630  e->accept();
631  else if(TQTextDrag::canDecode(e))
632  TQMultiLineEdit::contentsDragMoveEvent(e);
633 }
634 
635 void KEdit::dragEnterEvent(TQDragEnterEvent* e) {
636 
637  kdDebug() << "KEdit::dragEnterEvent()" << endl;
638  e->accept(KURLDrag::canDecode(e) || TQTextDrag::canDecode(e));
639 }
640 
641 void KEdit::contentsDragEnterEvent(TQDragEnterEvent* e) {
642 
643  kdDebug() << "KEdit::contentsDragEnterEvent()" << endl;
644  e->accept(KURLDrag::canDecode(e) || TQTextDrag::canDecode(e));
645 }
646 
647 
648 void KEdit::dropEvent(TQDropEvent* e) {
649 
650  kdDebug() << "KEdit::dropEvent()" << endl;
651 
652  if(KURLDrag::canDecode(e)) {
653  emit gotUrlDrop(e);
654  }
655  else if(TQTextDrag::canDecode(e))
656  TQMultiLineEdit::dropEvent(e);
657 }
658 
659 void KEdit::contentsDropEvent(TQDropEvent* e) {
660 
661  kdDebug() << "KEdit::contentsDropEvent()" << endl;
662 
663  if(KURLDrag::canDecode(e)) {
664  emit gotUrlDrop(e);
665  }
666  else if(TQTextDrag::canDecode(e))
667  TQMultiLineEdit::contentsDropEvent(e);
668 }
669 
670 void KEdit::setOverwriteEnabled(bool b)
671 {
672  d->overwriteEnabled = b;
673 }
674 
675 // TQWidget::create() turns off mouse-Tracking which would break auto-hiding
676 void KEdit::create( WId id, bool initializeWindow, bool destroyOldWindow )
677 {
678  TQMultiLineEdit::create( id, initializeWindow, destroyOldWindow );
679  KCursor::setAutoHideCursor( this, true );
680 }
681 
682 void KEdit::ensureCursorVisible()
683 {
684  if (!d->autoUpdate)
685  return;
686 
687  TQMultiLineEdit::ensureCursorVisible();
688 }
689 
690 void KEdit::setCursor( const TQCursor &c )
691 {
692  if (!d->autoUpdate)
693  return;
694 
695  TQMultiLineEdit::setCursor(c);
696 }
697 
698 void KEdit::viewportPaintEvent( TQPaintEvent*pe )
699 {
700  if (!d->autoUpdate)
701  return;
702 
703  TQMultiLineEdit::viewportPaintEvent(pe);
704 }
705 
706 
707 void KEdGotoLine::virtual_hook( int id, void* data )
708 { KDialogBase::virtual_hook( id, data ); }
709 
710 void KEdFind::virtual_hook( int id, void* data )
711 { KDialogBase::virtual_hook( id, data ); }
712 
713 void KEdReplace::virtual_hook( int id, void* data )
714 { KDialogBase::virtual_hook( id, data ); }
715 
716 void KEdit::virtual_hook( int, void* )
717 { /*BASE::virtual_hook( id, data );*/ }
718 
TDEStdAccel::undo
const TDEShortcut & undo()
KEdit::toggle_overwrite_signal
void toggle_overwrite_signal()
This signal is emitted if the user toggles from insert to overwrite mode or vice versa.
TDEStdAccel::next
const TDEShortcut & next()
TDEStdAccel::deleteWordForward
const TDEShortcut & deleteWordForward()
TDEStdAccel::beginningOfLine
const TDEShortcut & beginningOfLine()
TDEStdAccel::key
int key(StdAccel) KDE_DEPRECATED
KEdit::gotUrlDrop
void gotUrlDrop(TQDropEvent *e)
This signal is emitted if the user dropped a URL over the text editor TQMultiLineEdit widget...
TDEShortcut::contains
bool contains(const KKey &key) const
KEdit::KEdit
KEdit(TQWidget *_parent=NULL, const char *name=NULL)
The usual constructor.
Definition: keditcl1.cpp:49
kdDebug
kdbgstream kdDebug(int area=0)
TDEStdAccel::cut
const TDEShortcut & cut()
KCursor::setAutoHideCursor
static void setAutoHideCursor(TQWidget *w, bool enable)
Sets auto-hiding the cursor for widget w.
Definition: kcursor.cpp:218
TDEStdAccel::redo
const TDEShortcut & redo()
TDEStdAccel::backwardWord
const TDEShortcut & backwardWord()
KEdit::saveText
void saveText(TQTextStream *, bool softWrap)
Save text from the edit widget to a text stream.
Definition: keditcl1.cpp:242
tdelocale.h
KEdit::currentLine
int currentLine()
Retrieve the current line number.
Definition: keditcl1.cpp:290
TDEStdAccel::end
const TDEShortcut & end()
TDEStdAccel::deleteWordBack
const TDEShortcut & deleteWordBack()
TDEFontDialog::getFont
static int getFont(TQFont &theFont, bool onlyFixed=false, TQWidget *parent=0L, bool makeFrame=true, TQButton::ToggleState *sizeIsRelativeState=0L)
Creates a modal font dialog, lets the user choose a font, and returns when the dialog is closed...
Definition: tdefontdialog.cpp:756
TDEStdAccel::find
const TDEShortcut & find()
KEdit::CursorPositionChanged
void CursorPositionChanged()
This signal is emitted whenever the cursor position changes.
TDEStdAccel::prior
const TDEShortcut & prior()
KEdit::installRBPopup
void installRBPopup(TQPopupMenu *)
Install a context menu for KEdit.
Definition: keditcl1.cpp:563
TDEStdAccel::home
const TDEShortcut & home()
KEdit::doGotoLine
void doGotoLine()
Present a "Goto Line" dialog to the user.
Definition: keditcl1.cpp:575
KEdit::ensureCursorVisible
virtual void ensureCursorVisible()
Reimplemented for internal reasons, the API is not affected.
Definition: keditcl1.cpp:682
KKey
KEdit::currentColumn
int currentColumn()
Retrieve the actual column number the cursor is on.
Definition: keditcl1.cpp:297
TDEStdAccel::copy
const TDEShortcut & copy()
KEdit::insertText
void insertText(TQTextStream *)
Insert text from the text stream into the edit widget.
Definition: keditcl1.cpp:87
KEdit::selectFont
void selectFont()
Let the user select a font and set the font of the textwidget to that selected font.
Definition: keditcl1.cpp:567
TDEStdAccel::forwardWord
const TDEShortcut & forwardWord()
TDEStdAccel::paste
const TDEShortcut & paste()
endl
kndbgstream & endl(kndbgstream &s)
KEdit::create
virtual void create(WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
Reimplemented for internal reasons, the API is not affected.
Definition: keditcl1.cpp:676
KEdit::cleanWhiteSpace
void cleanWhiteSpace()
Clean up redundant whitespace from selected text.
Definition: keditcl1.cpp:148
KContextMenuManager::insert
static void insert(TQWidget *widget, TQPopupMenu *popup)
Makes popup a context popup menu for widget widget.
Definition: kcmenumngr.cpp:57
TDEStdAccel::endOfLine
const TDEShortcut & endOfLine()
TDEStdAccel::action
TQString action(StdAccel id) KDE_DEPRECATED
KEdit::setOverwriteEnabled
void setOverwriteEnabled(bool b)
Allow the user to toggle between insert mode and overwrite mode with the "Insert" key...
Definition: keditcl1.cpp:670

tdeui

Skip menu "tdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeui

Skip menu "tdeui"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeui by doxygen 1.8.8
This website is maintained by Timothy Pearson.