• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KTextEditor

  • KTextEditor
  • View
Public Types | Signals | Public Member Functions | List of all members
KTextEditor::View Class Referenceabstract

#include <view.h>

Inheritance diagram for KTextEditor::View:
Inheritance graph
[legend]

Public Types

enum  EditMode { EditInsert = 0, EditOverwrite = 1, EditViMode = 2 }
 
- Public Types inherited from KXMLGUIClient
enum  ReverseStateChange
 

Signals

void contextMenuAboutToShow (KTextEditor::View *view, QMenu *menu)
 
void cursorPositionChanged (KTextEditor::View *view, const KTextEditor::Cursor &newPosition)
 
void focusIn (KTextEditor::View *view)
 
void focusOut (KTextEditor::View *view)
 
void horizontalScrollPositionChanged (KTextEditor::View *view)
 
void informationMessage (KTextEditor::View *view, const QString &message)
 
void mousePositionChanged (KTextEditor::View *view, const KTextEditor::Cursor &newPosition)
 
void selectionChanged (KTextEditor::View *view)
 
void textInserted (KTextEditor::View *view, const KTextEditor::Cursor &position, const QString &text)
 
void verticalScrollPositionChanged (KTextEditor::View *view, const KTextEditor::Cursor &newPos)
 
void viewEditModeChanged (KTextEditor::View *view, enum KTextEditor::View::EditMode mode)
 
void viewModeChanged (KTextEditor::View *view)
 

Public Member Functions

 View (QWidget *parent)
 
virtual ~View ()
 
virtual bool blockSelection () const =0
 
virtual QMenu * contextMenu () const =0
 
virtual Cursor cursorPosition () const =0
 
virtual QPoint cursorPositionCoordinates () const =0
 
virtual Cursor cursorPositionVirtual () const =0
 
virtual QPoint cursorToCoordinate (const KTextEditor::Cursor &cursor) const =0
 
virtual QMenu * defaultContextMenu (QMenu *menu=0L) const =0
 
virtual Document * document () const =0
 
virtual bool insertText (const QString &text)
 
bool isActiveView () const
 
virtual bool mouseTrackingEnabled () const =0
 
virtual bool removeSelection ()=0
 
virtual bool removeSelectionText ()=0
 
virtual bool selection () const =0
 
virtual const Range & selectionRange () const =0
 
virtual QString selectionText () const =0
 
virtual bool setBlockSelection (bool on)=0
 
virtual void setContextMenu (QMenu *menu)=0
 
virtual bool setCursorPosition (Cursor position)=0
 
virtual bool setMouseTrackingEnabled (bool enable)=0
 
virtual bool setSelection (const Range &range)=0
 
virtual bool setSelection (const Cursor &position, int length, bool wrap=true)
 
virtual enum EditMode viewEditMode () const =0
 
virtual QString viewMode () const =0
 
- Public Member Functions inherited from KXMLGUIClient
 KXMLGUIClient ()
 
 KXMLGUIClient (KXMLGUIClient *parent)
 
virtual ~KXMLGUIClient ()
 
QAction * action (const char *name) const
 
virtual QAction * action (const QDomElement &element) const
 
virtual KActionCollection * actionCollection () const
 
void addStateActionDisabled (const QString &state, const QString &action)
 
void addStateActionEnabled (const QString &state, const QString &action)
 
void beginXMLPlug (QWidget *)
 
QList< KXMLGUIClient * > childClients ()
 
KXMLGUIBuilder * clientBuilder () const
 
virtual KComponentData componentData () const
 
virtual QDomDocument domDocument () const
 
void endXMLPlug ()
 
KXMLGUIFactory * factory () const
 
StateChange getActionsToChangeForState (const QString &state)
 
void insertChildClient (KXMLGUIClient *child)
 
virtual QString localXMLFile () const
 
KXMLGUIClient * parentClient () const
 
void plugActionList (const QString &name, const QList< QAction * > &actionList)
 
void prepareXMLUnplug (QWidget *)
 
void reloadXML ()
 
void removeChildClient (KXMLGUIClient *child)
 
void replaceXMLFile (const QString &xmlfile, const QString &localxmlfile, bool merge=false)
 
void setClientBuilder (KXMLGUIBuilder *builder)
 
void setFactory (KXMLGUIFactory *factory)
 
void setXMLGUIBuildDocument (const QDomDocument &doc)
 
void unplugActionList (const QString &name)
 
virtual QString xmlFile () const
 
QDomDocument xmlguiBuildDocument () const
 

Additional Inherited Members

- Static Public Member Functions inherited from KXMLGUIClient
static QString findMostRecentXMLFile (const QStringList &files, QString &doc)
 
- Protected Member Functions inherited from KXMLGUIClient
void loadStandardsXmlFile ()
 
virtual void setComponentData (const KComponentData &componentData)
 
virtual void setDOMDocument (const QDomDocument &document, bool merge=false)
 
virtual void setLocalXMLFile (const QString &file)
 
virtual void setXML (const QString &document, bool merge=false)
 
virtual void setXMLFile (const QString &file, bool merge=false, bool setXMLDoc=true)
 
virtual void stateChanged (const QString &newstate, ReverseStateChange reverse=StateNoReverse)
 
virtual void virtual_hook (int id, void *data)
 

Detailed Description

A text widget with KXMLGUIClient that represents a Document.

Topics:

  • Introduction
  • Merging the View's GUI
  • Text Selection
  • Cursor Positions
  • Mouse Tracking
  • Edit Modes
  • View Extension Interfaces

Introduction

The View class represents a single view of a KTextEditor::Document, get the document on which the view operates with document(). A view provides both the graphical representation of the text and the KXMLGUIClient for the actions. The view itself does not provide text manipulation, use the methods from the Document instead. The only method to insert text is insertText(), which inserts the given text at the current cursor position and emits the signal textInserted().

Usually a view is created by using Document::createView(). Furthermore a view can have a context menu. Set it with setContextMenu() and get it with contextMenu().

Merging the View's GUI

A View is derived from the class KXMLGUIClient, so its GUI elements (like menu entries and toolbar items) can be merged into the application's GUI (or into a KXMLGUIFactory) by calling

// view is of type KTextEditor::View*
mainWindow()->guiFactory()->addClient( view );

You can add only one view as client, so if you have several views, you first have to remove the current view, and then add the new one, like this

mainWindow()->guiFactory()->removeClient( currentView );
mainWindow()->guiFactory()->addClient( newView );

Text Selection

As the view is a graphical text editor it provides normal and block text selection. You can check with selection() whether a selection exists. removeSelection() will remove the selection without removing the text, whereas removeSelectionText() also removes both, the selection and the selected text. Use selectionText() to get the selected text and setSelection() to specify the selected textrange. The signal selectionChanged() is emitted whenever the selecteion changed.

Cursor Positions

A view has one Cursor which represents a line/column tuple. Two different kinds of cursor positions are supported: first is the real cursor position where a tab character only counts one character. Second is the virtual cursor position, where a tab character counts as many spaces as defined. Get the real position with cursorPosition() and the virtual position with cursorPositionVirtual(). Set the real cursor position with setCursorPosition(). You can even get the screen coordinates of the current cursor position in pixel by using cursorPositionCoordinates(). The signal cursorPositionChanged() is emitted whenever the cursor position changed.

Mouse Tracking

It is possible to get notified via the signal mousePositionChanged() for mouse move events, if mouseTrackingEnabled() returns true. Mouse tracking can be turned on/off by calling setMouseTrackingEnabled(). If an editor implementation does not support mouse tracking, mouseTrackingEnabled() will always return false.

Edit Modes

A view supports several edit modes (EditMode). Common edit modes are insert-mode (INS) and overwrite-mode (OVR). Which edit modes the editor supports depends on the implementation, another well-known mode is the command-mode for example in vim and yzis. The getter viewMode() returns a string like INS or OVR and is represented in the user interface for example in the status bar. Further you can get the edit mode as enum by using viewEditMode(). Whenever the edit mode changed the signals viewModeChanged() and viewEditModeChanged() are emitted.

View Extension Interfaces

A simple view represents the text of a Document and provides a text cursor, text selection, edit modes etc. Advanced concepts like code completion and text hints are defined in the extension interfaces. An KTextEditor implementation does not need to support all the extensions. To implement the interfaces multiple inheritance is used.

More information about interfaces for the view can be found in View Extension Interfaces.

See also
KTextEditor::Document, KTextEditor::TemplateInterface, KTextEditor::CodeCompletionInterface, KTextEditor::SessionConfigInterface, KTextEditor::TemplateInterface, KXMLGUIClient
Author
Christoph Cullmann <cullm.nosp@m.ann@.nosp@m.kde.o.nosp@m.rg>

Definition at line 145 of file view.h.

Member Enumeration Documentation

enum KTextEditor::View::EditMode

Possible edit modes.

These correspond to various modes the text editor might be in.

Enumerator
EditInsert 

Insert mode.

Characters will be added.

EditOverwrite 

Overwrite mode.

Characters will be replaced.

EditViMode 

Vi mode.

The view will behave like the editor vi(m)

Since
4.11

Definition at line 205 of file view.h.

Constructor & Destructor Documentation

View::View ( QWidget *  parent)

Constructor.

Create a view attached to the widget parent.

Parameters
parentparent widget
See also
Document::createView()

Definition at line 197 of file ktexteditor.cpp.

View::~View ( )
virtual

Virtual destructor.

Definition at line 202 of file ktexteditor.cpp.

Member Function Documentation

virtual bool KTextEditor::View::blockSelection ( ) const
pure virtual

Get the status of the selection mode.

true indicates that block selection mode is on. If this is true, selections applied via the SelectionInterface are handled as block selections and the Copy&Paste functions work on rectangular blocks of text rather than normal.

Returns
true, if block selection mode is enabled, otherwise false
See also
setBlockSelection()
virtual QMenu* KTextEditor::View::contextMenu ( ) const
pure virtual

Get the context menu for this view.

The return value can be NULL if no context menu object was set and kxmlgui is not initialized yet. If there is no user set menu, the kxmlgui menu is returned. Do not delete this menu, if if it is the xmlgui menu.

Returns
context menu object
See also
setContextMenu()
void KTextEditor::View::contextMenuAboutToShow ( KTextEditor::View *  view,
QMenu *  menu 
)
signal

Signal which is emitted immediately prior to showing the current context menu.

virtual Cursor KTextEditor::View::cursorPosition ( ) const
pure virtual

Get the view's current cursor position.

A TAB character is handeled as only one character.

Returns
current cursor position
See also
setCursorPosition()
void KTextEditor::View::cursorPositionChanged ( KTextEditor::View *  view,
const KTextEditor::Cursor &  newPosition 
)
signal

This signal is emitted whenever the view's cursor position changed.

Parameters
viewview which emitted the signal
newPositionnew position of the cursor (Kate will pass the real cursor potition, not the virtual)
See also
cursorPosition(), cursorPositionVirtual()
virtual QPoint KTextEditor::View::cursorPositionCoordinates ( ) const
pure virtual

Get the screen coordinates (x/y) of the cursor position in pixels.

Returns
cursor screen coordinates
virtual Cursor KTextEditor::View::cursorPositionVirtual ( ) const
pure virtual

Get the current virtual cursor position, virtual means the tabulator character (TAB) counts multiple characters, as configured by the user (e.g.

one TAB is 8 spaces). The virtual cursor position provides access to the user visible values of the current cursor position.

Returns
virtual cursor position
See also
cursorPosition()
virtual QPoint KTextEditor::View::cursorToCoordinate ( const KTextEditor::Cursor &  cursor) const
pure virtual

Get the screen coordinates (x, y) of the supplied cursor relative to the view widget in pixels.

Thus, 0,0 represents the top left hand of the view widget.

Parameters
cursorcursor to determine coordinate for.
Returns
cursor screen coordinates relative to the view widget
virtual QMenu* KTextEditor::View::defaultContextMenu ( QMenu *  menu = 0L) const
pure virtual

Populate menu with default text editor actions.

If menu is null, a menu will be created with the view as its parent.

Note
to use this menu, you will next need to call setContextMenu(), as this does not assign the new context menu.
Warning
This contains only basic options from the editor component (katepart). Plugins are not merged/integrated into it! If you want to be a better citizen and take full advantage of KTextEditor plugins do something like:
KXMLGUIClient* client = view;
// search parent XmlGuiClient
while (client->parentClient()) {
client = client->parentClient();
}
if (client->factory()) {
QList<QWidget*> conts = client->factory()->containers("menu");
foreach (QWidget *w, conts) {
if (w->objectName() == "ktexteditor_popup") {
// do something with the menu (ie adding an onshow handler)
break;
}
}
}
or simply use the aboutToShow, aboutToHide signals !!!!!
Parameters
menuthe menu to be populated, or null to create a new menu.
Returns
the menu, whether created or passed initially
virtual Document* KTextEditor::View::document ( ) const
pure virtual

Get the view's document, that means the view is a view of the returned document.

Returns
the view's document
void KTextEditor::View::focusIn ( KTextEditor::View *  view)
signal

This signal is emitted whenever the view gets the focus.

Parameters
viewview which gets focus
See also
focusOut()
void KTextEditor::View::focusOut ( KTextEditor::View *  view)
signal

This signal is emitted whenever the view loses the focus.

Parameters
viewview which lost focus
See also
focusIn()
void KTextEditor::View::horizontalScrollPositionChanged ( KTextEditor::View *  view)
signal

This signal should be emitted whenever the view is scrolled horizontally.

Parameters
viewview which emitted the signal
void KTextEditor::View::informationMessage ( KTextEditor::View *  view,
const QString &  message 
)
signal

This signal is emitted whenever the view wants to display a information message.

The message can be displayed in the status bar for example.

Parameters
viewview which sends out information
messageinformation message
bool View::insertText ( const QString &  text)
virtual

This is a convenience function which inserts text at the view's current cursor position.

You do not necessarily need to reimplement it, except you want to do some special things.

Parameters
textText to be inserted
Returns
true on success of insertion, otherwise false
See also
textInserted()

Definition at line 139 of file ktexteditor.cpp.

bool View::isActiveView ( ) const

Check whether this view is the document's active view.

This is equal to the code:

document()->activeView() == view

Definition at line 116 of file ktexteditor.cpp.

void KTextEditor::View::mousePositionChanged ( KTextEditor::View *  view,
const KTextEditor::Cursor &  newPosition 
)
signal

This signal is emitted whenever the position of the mouse changes over this view.

If the mouse moves off the view, an invalid cursor position should be emitted, i.e. Cursor::invalid().

Note
If mouseTrackingEnabled() returns false, this signal is never emitted.
Parameters
viewview which emitted the signal
newPositionnew position of the mouse or Cursor::invalid(), if the mouse moved out of the view.
See also
mouseTrackingEnabled()
virtual bool KTextEditor::View::mouseTrackingEnabled ( ) const
pure virtual

Check, whether mouse tracking is enabled.

Mouse tracking is required to have the signal mousePositionChanged() emitted.

Returns
true, if mouse tracking is enabled, otherwise false
See also
setMouseTrackingEnabled(), mousePositionChanged()
virtual bool KTextEditor::View::removeSelection ( )
pure virtual

Remove the view's current selection, without deleting the selected text.

Returns
true on success, otherwise false
See also
removeSelectionText()
virtual bool KTextEditor::View::removeSelectionText ( )
pure virtual

Remove the view's current selection including the selected text.

Returns
true on success, otherwise false
See also
removeSelection()
virtual bool KTextEditor::View::selection ( ) const
pure virtual

Query the view whether it has selected text, i.e.

whether a selection exists.

Returns
true if a text selection exists, otherwise false
See also
setSelection(), selectionRange()
void KTextEditor::View::selectionChanged ( KTextEditor::View *  view)
signal

This signal is emitted whenever the view's selection changes.

Note
If the mode switches from block selection to normal selection or vice versa this signal should also be emitted.
Parameters
viewview in which the selection changed
See also
selection(), selectionRange(), selectionText()
virtual const Range& KTextEditor::View::selectionRange ( ) const
pure virtual

Get the range occupied by the current selection.

Returns
selection range, valid only if a selection currently exists.
See also
setSelection()
virtual QString KTextEditor::View::selectionText ( ) const
pure virtual

Get the view's selected text.

Returns
the selected text
See also
setSelection()
virtual bool KTextEditor::View::setBlockSelection ( bool  on)
pure virtual

Set block selection mode to state on.

Parameters
onif true, block selection mode is turned on, otherwise off
Returns
true on success, otherwise false
See also
blockSelection()
virtual void KTextEditor::View::setContextMenu ( QMenu *  menu)
pure virtual

Set a context menu for this view to menu.

Note
any previously assigned menu is not deleted. If you are finished with the previous menu, you may delete it.
Warning
Use this with care! Plugin xml gui clients are not merged into this menu!
!!!!!! DON'T USE THIS FUNCTION, UNLESS YOU ARE SURE YOU DON'T WANT PLUGINS TO WORK !!!!!!
Parameters
menunew context menu object for this view
See also
contextMenu()
virtual bool KTextEditor::View::setCursorPosition ( Cursor  position)
pure virtual

Set the view's new cursor to position.

A TAB character is handeled as only on character.

Parameters
positionnew cursor position
Returns
true on success, otherwise false
See also
cursorPosition()
virtual bool KTextEditor::View::setMouseTrackingEnabled ( bool  enable)
pure virtual

Try to enable or disable mouse tracking according to enable.

The return value contains the state of mouse tracking after the request. Mouse tracking is required to have the mousePositionChanged() signal emitted.

Note
Implementation Notes: An implementation is not forced to support this, and should always return false if it does not have support.
Parameters
enableif true, try to enable mouse tracking, otherwise disable it.
Returns
the current state of mouse tracking
See also
mouseTrackingEnabled(), mousePositionChanged()
virtual bool KTextEditor::View::setSelection ( const Range &  range)
pure virtual

Set the view's selection to the range selection.

The old selection will be discarded.

Parameters
rangethe range of the new selection
Returns
true on success, otherwise false (e.g. when the cursor range is invalid)
See also
selectionRange(), selection()
bool View::setSelection ( const Cursor &  position,
int  length,
bool  wrap = true 
)
virtual

This is an overloaded member function, provided for convenience, it differs from the above function only in what argument(s) it accepts.

An existing old selection will be discarded. If possible you should reimplement the default implementation with a more efficient one.

Parameters
positionstart or end position of the selection, depending on the length parameter
lengthif >0 position defines the start of the selection, if <0 position specifies the end
wrapif false the selection does not wrap lines and reaches only to start/end of the cursors line. Default: true
See also
selectionRange(), selection()
Todo:
rodda - is this really needed? it can now be accomplished with SmartCursor::advance()

Definition at line 121 of file ktexteditor.cpp.

void KTextEditor::View::textInserted ( KTextEditor::View *  view,
const KTextEditor::Cursor &  position,
const QString &  text 
)
signal

This signal is emitted from view whenever the users inserts text at position, that means the user typed/pasted text.

Parameters
viewview in which the text was inserted
positionposition where the text was inserted
textthe text the user has typed into the editor
See also
insertText()
void KTextEditor::View::verticalScrollPositionChanged ( KTextEditor::View *  view,
const KTextEditor::Cursor &  newPos 
)
signal

This signal should be emitted whenever the view is scrolled vertically.

Parameters
viewview which emitted the signal
newPosthe new scroll position
virtual enum EditMode KTextEditor::View::viewEditMode ( ) const
pure virtual

Get the view's current edit mode.

The current mode can be insert mode, replace mode or any other the editor supports, e.g. a vim like command mode. If in doubt return EditInsert.

Returns
the current edit mode of this view
See also
viewEditModeChanged()
void KTextEditor::View::viewEditModeChanged ( KTextEditor::View *  view,
enum KTextEditor::View::EditMode  mode 
)
signal

This signal is emitted whenever the view's edit mode changed from either EditInsert to EditOverwrite or vice versa.

Parameters
viewview which changed its edit mode
modenew edit mode
See also
viewEditMode()
virtual QString KTextEditor::View::viewMode ( ) const
pure virtual

Get the current view mode/state.

This can be used to visually indicate the view's current mode, for example INSERT mode, OVERWRITE mode or COMMAND mode - or whatever other edit modes are supported. The string should be translated (i18n), as this is a user aimed representation of the view state, which should be shown in the GUI, for example in the status bar. This string may be rich-text.

Returns
See also
viewModeChanged()
void KTextEditor::View::viewModeChanged ( KTextEditor::View *  view)
signal

This signal is emitted whenever the view mode of view changes.

Parameters
viewthe view which changed its mode
See also
viewMode()

The documentation for this class was generated from the following files:
  • view.h
  • ktexteditor.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:52:21 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KTextEditor

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

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal