GNU Octave  3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Types | Protected Slots | Protected Member Functions | Protected Attributes | Private Slots | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
TerminalView Class Reference

A widget which displays output from a terminal emulation and sends input keypresses and mouse activity to the terminal. More...

#include "TerminalView.h"

Inheritance diagram for TerminalView:
Inheritance graph
[legend]
Collaboration diagram for TerminalView:
Collaboration graph
[legend]

Classes

struct  _dragInfo
struct  InputMethodData

Public Types

enum  BellMode { SystemBeepBell = 0, NotifyBell = 1, VisualBell = 2, NoBell = 3 }
 This enum describes the different types of sounds and visual effects which can be used to alert the user when a 'bell' occurs in the terminal session. More...
enum  KeyboardCursorShape { BlockCursor, UnderlineCursor, IBeamCursor }
 This enum describes the available shapes for the keyboard cursor. More...
enum  ScrollBarPosition { NoScrollBar = 0, ScrollBarLeft = 1, ScrollBarRight = 2 }
 This enum describes the location where the scroll bar is positioned in the display widget. More...
enum  TripleClickMode { SelectWholeLine, SelectForwardsFromCursor }
 This enum describes the methods for selecting text when the user triple-clicks within the display. More...

Public Slots

void copyClipboard ()
 Copies the selected text to the clipboard.
void outputSuspended (bool suspended)
 Causes the widget to display or hide a message informing the user that terminal output has been suspended (by using the flow control key combination Ctrl+S)
void pasteClipboard ()
 Pastes the content of the clipboard into the display.
void pasteSelection ()
 Pastes the content of the selection into the display.
void setUsesMouse (bool usesMouse)
 Sets whether the program whoose output is being displayed in the view is interested in mouse events.
void updateImage ()
 Causes the terminal display to fetch the latest character image from the associated terminal screen ( see setScreenWindow() ) and redraw the display.
void updateLineProperties ()
 Causes the terminal display to fetch the latest line status flags from the associated terminal screen ( see setScreenWindow() ).
bool usesMouse () const
 See setUsesMouse()

Signals

void changedContentSizeSignal (int height, int width)
void changedFontMetricSignal (int height, int width)
void configureRequest (TerminalView *, int state, const QPoint &position)
 Emitted when the user right clicks on the display, or right-clicks with the Shift key held down if usesMouse() is true.
void interrupt_signal (void)
void isBusySelecting (bool)
void keyPressedSignal (QKeyEvent *e)
 Emitted when the user presses a key whilst the terminal widget has focus.
void mouseSignal (int button, int column, int line, int eventType)
 A mouse event occurred.
void sendStringToEmu (const char *)
void set_global_shortcuts_signal (bool)
 Emitted when focus changes.
void tripleClicked (const QString &text)

Public Member Functions

 TerminalView (QWidget *parent=0)
 Constructs a new terminal display widget with the specified parent.
virtual ~TerminalView ()
int bellMode ()
 Returns the type of effect used to alert the user when a 'bell' occurs in the terminal session.
bool blinkingCursor ()
 Returns true if the cursor is set to blink or false otherwise.
const ColorEntrycolorTable () const
 Returns the terminal color palette used by the display.
int columns ()
 Returns the number of characters of text which can be displayed on each line in the widget.
bool ctrlDrag ()
void emitSelection (bool useXselection, bool appendReturn)
QList< QAction * > filterActions (const QPoint &position)
 Returns a list of menu actions created by the filters for the content at the given position.
FilterChainfilterChain () const
 Returns the display's filter chain.
int fontHeight ()
 Returns the height of the characters in the font used to draw the text in the display.
int fontWidth ()
 Returns the width of the characters in the display.
QFont getVTFont ()
 Returns the font used to draw characters in the display.
QColor keyboardCursorColor () const
 Returns the color of the keyboard cursor, or an invalid color if the keyboard cursor color is set to change according to the foreground color of the character underneath it.
KeyboardCursorShape keyboardCursorShape () const
 Returns the shape of the keyboard cursor.
int lines ()
 Returns the number of lines of text which can be displayed in the widget.
uint lineSpacing () const
void processFilters ()
 Updates the filters in the display's filter chain.
uint randomSeed () const
 Returns the seed used to generate random colors for the display (in color schemes that support them).
ScreenWindowscreenWindow () const
 Returns the terminal screen section which is displayed in this widget.
QString selectedText ()
void setBellMode (int mode)
 Sets the type of effect used to alert the user when a 'bell' occurs in the terminal session.
void setBlinkingCursor (bool blink)
 Specifies whether or not the cursor blinks.
void setBlinkingCursorState (bool blink)
void setColorTable (const ColorEntry table[])
 Sets the terminal color palette used by the display.
void setCtrlDrag (bool enable)
void setFixedSize (int cols, int lins)
virtual void setFont (const QFont &)
 Reimplemented.
void setKeyboardCursorColor (bool useForegroundColor, const QColor &color)
 Sets the color used to draw the keyboard cursor.
void setKeyboardCursorShape (KeyboardCursorShape shape)
 Sets the shape of the keyboard cursor.
void setLineSpacing (uint)
void setRandomSeed (uint seed)
 Sets the seed used to generate random colors for the display (in color schemes that support them).
void setReadOnly (bool readonly)
 Specified whether terminal widget should be at read-only mode Defaults to false.
void setScreenWindow (ScreenWindow *window)
 Sets the terminal screen section which is displayed in this widget.
void setScroll (int cursor, int lines)
 Sets the current position and range of the display's scroll bar.
void setScrollBarPosition (ScrollBarPosition position)
 Specifies whether the terminal display has a vertical scroll bar, and if so whether it is shown on the left or right side of the display.
void setSelection (const QString &t)
void setSize (int cols, int lins)
void setTerminalSizeHint (bool on)
 Sets whether or not the current height and width of the terminal in lines and columns is displayed whilst the widget is being resized.
void setTerminalSizeStartup (bool on)
 Sets whether the terminal size display is shown briefly after the widget is first shown.
void setTripleClickMode (TripleClickMode mode)
 Sets how the text is selected when the user triple clicks within the display.
void setVTFont (const QFont &font)
 Sets the font used to draw the display.
void setWordCharacters (const QString &wc)
 Sets which characters, in addition to letters and numbers, are regarded as being part of a word for the purposes of selecting words in the display by double clicking on them.
QSize sizeHint () const
bool terminalSizeHint ()
 Returns whether or not the current height and width of the terminal in lines and columns is displayed whilst the widget is being resized.
TripleClickMode tripleClickMode ()
 See setTripleClickSelectionMode()
QString wordCharacters ()
 Returns the characters which are considered part of a word for the purpose of selecting words in the display with the mouse.

Static Public Member Functions

static bool antialias ()
 Returns true if anti-aliasing of text in the terminal is enabled.
static void setAntialias (bool antialias)
 Specified whether anti-aliasing of text in the terminal display is enabled or not.

Protected Types

enum  DragState { diNone, diPending, diDragging }

Protected Slots

void blinkCursorEvent ()
void blinkEvent ()
void enableBell ()
void scrollBarPositionChanged (int value)

Protected Member Functions

virtual int charClass (quint16) const
void clearImage ()
void doDrag ()
virtual void dragEnterEvent (QDragEnterEvent *event)
virtual void dropEvent (QDropEvent *event)
virtual bool event (QEvent *)
virtual void extendSelection (const QPoint &pos)
void focusInEvent (QFocusEvent *focusEvent)
virtual bool focusNextPrevChild (bool next)
void focusOutEvent (QFocusEvent *focusEvent)
virtual void fontChange (const QFont &font)
virtual void hideEvent (QHideEvent *)
virtual void inputMethodEvent (QInputMethodEvent *event)
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query) const
virtual void keyPressEvent (QKeyEvent *event)
virtual void mouseDoubleClickEvent (QMouseEvent *ev)
virtual void mouseMoveEvent (QMouseEvent *)
virtual void mousePressEvent (QMouseEvent *)
virtual void mouseReleaseEvent (QMouseEvent *)
void mouseTripleClickEvent (QMouseEvent *ev)
virtual void paintEvent (QPaintEvent *)
virtual void resizeEvent (QResizeEvent *)
virtual void showEvent (QShowEvent *)
virtual void wheelEvent (QWheelEvent *)

Protected Attributes

struct TerminalView::_dragInfo dragInfo

Private Slots

void swapColorTable ()
void tripleClickTimeout ()

Private Member Functions

void calcGeometry ()
QPoint cursorPosition () const
void drawBackground (QPainter &painter, const QRect &rect, const QColor &color)
void drawCharacters (QPainter &painter, const QRect &rect, const QString &text, const Character *style, bool invertCharacterColor)
void drawContents (QPainter &paint, const QRect &rect)
void drawCursor (QPainter &painter, const QRect &rect, const QColor &foregroundColor, const QColor &backgroundColor, bool &invertColors)
void drawInputMethodPreeditString (QPainter &painter, const QRect &rect)
void drawLineCharString (QPainter &painter, int x, int y, const QString &str, const Character *attributes)
void drawTextFragment (QPainter &painter, const QRect &rect, const QString &text, const Character *style)
void getCharacterPosition (const QPoint &widgetPoint, int &line, int &column) const
QRegion hotSpotRegion () const
QRect imageToWidget (const QRect &imageArea) const
void makeImage ()
void paintFilters (QPainter &painter)
QRect preeditRect () const
void propagateSize ()
void scrollImage (int lines, const QRect &region)
void showResizeNotification ()
void updateImageSize ()

Private Attributes

int _actSel
bool _allowBell
int _bellMode
QRgb _blendColor
QTimer * _blinkCursorTimer
bool _blinking
QTimer * _blinkTimer
QClipboard * _clipboard
bool _colorsInverted
ColorEntry _colorTable [TABLE_COLORS]
int _columns
bool _columnSelectionMode
int _contentHeight
int _contentWidth
bool _ctrlDrag
bool _cursorBlinking
QColor _cursorColor
KeyboardCursorShape _cursorShape
int _dndFileCount
QString _dropText
TerminalImageFilterChain_filterChain
bool _fixedFont
bool _flowControlWarningEnabled
int _fontAscent
double _fontHeight
double _fontWidth
QGridLayout * _gridLayout
bool _hasBlinker
bool _hasBlinkingCursor
Character_image
int _imageSize
InputMethodData _inputMethodData
QPoint _iPntSel
bool _isFixedSize
int _leftMargin
QVector< LineProperty_lineProperties
int _lines
bool _lineSelectionMode
uint _lineSpacing
bool _mouseMarks
QRect _mouseOverHotspotArea
QLabel * _outputSuspendedLabel
QPoint _pntSel
bool _possibleTripleClick
bool _preserveLineBreaks
uint _randomSeed
bool _readonly
QTimer * _resizeTimer
QLabel * _resizeWidget
bool _resizing
QPointer< ScreenWindow_screenWindow
QScrollBar * _scrollBar
ScrollBarPosition _scrollbarLocation
QSize _size
bool _terminalSizeHint
bool _terminalSizeStartup
int _topMargin
TripleClickMode _tripleClickMode
QPoint _tripleSelBegin
int _usedColumns
int _usedLines
QString _wordCharacters
bool _wordSelectionMode

Static Private Attributes

static bool _antialiasText = true
static const int BLINK_DELAY = 500
static const int DEFAULT_LEFT_MARGIN = 2
static const int DEFAULT_TOP_MARGIN = 2

Detailed Description

A widget which displays output from a terminal emulation and sends input keypresses and mouse activity to the terminal.

When the terminal emulation receives new output from the program running in the terminal, it will update the display by calling updateImage().

TODO More documentation

Definition at line 63 of file TerminalView.h.

Member Enumeration Documentation

This enum describes the different types of sounds and visual effects which can be used to alert the user when a 'bell' occurs in the terminal session.

Enumerator:
SystemBeepBell 

A system beep.

NotifyBell 

KDE notification.

This may play a sound, show a passive popup or perform some other action depending on the user's settings.

VisualBell 

A silent, visual bell (eg.

inverting the display's colors briefly)

NoBell 

No bell effects.

Definition at line 309 of file TerminalView.h.

enum TerminalView::DragState
protected
Enumerator:
diNone 
diPending 
diDragging 

Definition at line 515 of file TerminalView.h.

This enum describes the available shapes for the keyboard cursor.

See setKeyboardCursorShape()

Enumerator:
BlockCursor 

A rectangular block which covers the entire area of the cursor character.

UnderlineCursor 

A single flat line which occupies the space at the bottom of the cursor character's area.

IBeamCursor 

An cursor shaped like the capital letter 'I', similar to the IBeam cursor used in Qt/KDE text editors.

Definition at line 183 of file TerminalView.h.

This enum describes the location where the scroll bar is positioned in the display widget.

Enumerator:
NoScrollBar 

Do not show the scroll bar.

ScrollBarLeft 

Show the scroll bar on the left side of the display.

ScrollBarRight 

Show the scroll bar on the right side of the display.

Definition at line 91 of file TerminalView.h.

This enum describes the methods for selecting text when the user triple-clicks within the display.

Enumerator:
SelectWholeLine 

Select the whole line underneath the cursor.

SelectForwardsFromCursor 

Select from the current cursor position to the end of the line.

Definition at line 162 of file TerminalView.h.

Constructor & Destructor Documentation

TerminalView::TerminalView ( QWidget parent = 0)
TerminalView::~TerminalView ( )
virtual

Definition at line 328 of file TerminalView.cpp.

References _filterChain, _gridLayout, _image, and _outputSuspendedLabel.

Member Function Documentation

static bool TerminalView::antialias ( )
inlinestatic

Returns true if anti-aliasing of text in the terminal is enabled.

Definition at line 359 of file TerminalView.h.

References _antialiasText.

Referenced by setAntialias().

int TerminalView::bellMode ( )
inline

Returns the type of effect used to alert the user when a 'bell' occurs in the terminal session.

See setBellMode()

Definition at line 302 of file TerminalView.h.

References _bellMode.

void TerminalView::blinkCursorEvent ( )
protectedslot
void TerminalView::blinkEvent ( )
protectedslot

Definition at line 1352 of file TerminalView.cpp.

References _blinking.

Referenced by TerminalView().

bool TerminalView::blinkingCursor ( )
inline

Returns true if the cursor is set to blink or false otherwise.

Definition at line 150 of file TerminalView.h.

References _hasBlinkingCursor.

void TerminalView::calcGeometry ( )
private
void TerminalView::changedContentSizeSignal ( int  height,
int  width 
)
signal
void TerminalView::changedFontMetricSignal ( int  height,
int  width 
)
signal

Referenced by fontChange().

int TerminalView::charClass ( quint16  ch) const
protectedvirtual

Definition at line 2209 of file TerminalView.cpp.

References _wordCharacters.

Referenced by extendSelection(), mouseDoubleClickEvent(), and mouseTripleClickEvent().

void TerminalView::clearImage ( )
protected
const ColorEntry * TerminalView::colorTable ( ) const

Returns the terminal color palette used by the display.

Definition at line 106 of file TerminalView.cpp.

References _colorTable.

Referenced by paintFilters(), QUnixTerminalImpl::setBackgroundColor(), and QUnixTerminalImpl::setForegroundColor().

int TerminalView::columns ( void  )
inline

Returns the number of characters of text which can be displayed on each line in the widget.

This will depend upon the width of the widget and the current font. See fontWidth()

Definition at line 250 of file TerminalView.h.

References _columns.

Referenced by updateImage(), updateImageSize(), and TerminalModel::updateTerminalSize().

void TerminalView::configureRequest ( TerminalView ,
int  state,
const QPoint &  position 
)
signal

Emitted when the user right clicks on the display, or right-clicks with the Shift key held down if usesMouse() is true.

This can be used to display a context menu.

Referenced by mousePressEvent().

void TerminalView::copyClipboard ( void  )
slot

Copies the selected text to the clipboard.

Definition at line 2269 of file TerminalView.cpp.

References _preserveLineBreaks, _screenWindow, and interrupt_signal().

Referenced by QUnixTerminalImpl::copyClipboard().

bool TerminalView::ctrlDrag ( )
inline

Definition at line 156 of file TerminalView.h.

References _ctrlDrag.

QPoint TerminalView::cursorPosition ( ) const
private

Definition at line 1086 of file TerminalView.cpp.

References _screenWindow.

Referenced by blinkCursorEvent(), drawInputMethodPreeditString(), and preeditRect().

void TerminalView::doDrag ( )
protected
void TerminalView::dragEnterEvent ( QDragEnterEvent *  event)
protectedvirtual

Definition at line 2598 of file TerminalView.cpp.

void TerminalView::drawBackground ( QPainter &  painter,
const QRect &  rect,
const QColor &  color 
)
private

Definition at line 507 of file TerminalView.cpp.

References _scrollBar.

Referenced by drawInputMethodPreeditString(), drawTextFragment(), and paintEvent().

void TerminalView::drawCharacters ( QPainter &  painter,
const QRect &  rect,
const QString &  text,
const Character style,
bool  invertCharacterColor 
)
private
void TerminalView::drawContents ( QPainter &  paint,
const QRect &  rect 
)
private
void TerminalView::drawCursor ( QPainter &  painter,
const QRect &  rect,
const QColor &  foregroundColor,
const QColor &  backgroundColor,
bool invertColors 
)
private
void TerminalView::drawInputMethodPreeditString ( QPainter &  painter,
const QRect &  rect 
)
private
void TerminalView::drawLineCharString ( QPainter &  painter,
int  x,
int  y,
const QString &  str,
const Character attributes 
)
private

Definition at line 461 of file TerminalView.cpp.

References _fontHeight, _fontWidth, drawLineChar(), LineChars, RE_BOLD, and Character::rendition.

Referenced by drawCharacters().

void TerminalView::drawTextFragment ( QPainter &  painter,
const QRect &  rect,
const QString &  text,
const Character style 
)
private
void TerminalView::dropEvent ( QDropEvent *  event)
protectedvirtual

Definition at line 2604 of file TerminalView.cpp.

References sendStringToEmu().

void TerminalView::emitSelection ( bool  useXselection,
bool  appendReturn 
)

Definition at line 2244 of file TerminalView.cpp.

References _screenWindow, keyPressedSignal(), and text::text().

Referenced by mousePressEvent(), pasteClipboard(), and pasteSelection().

void TerminalView::enableBell ( )
protectedslot

Definition at line 2465 of file TerminalView.cpp.

References _allowBell.

bool TerminalView::event ( QEvent *  e)
protectedvirtual

Definition at line 2421 of file TerminalView.cpp.

void TerminalView::extendSelection ( const QPoint &  pos)
protectedvirtual
QList< QAction * > TerminalView::filterActions ( const QPoint &  position)

Returns a list of menu actions created by the filters for the content at the given position.

Definition at line 1617 of file TerminalView.cpp.

References _filterChain, Filter::HotSpot::actions(), getCharacterPosition(), and FilterChain::hotSpotAt().

FilterChain * TerminalView::filterChain ( ) const

Returns the display's filter chain.

When the image for the display is updated, the text is passed through each filter in the chain. Each filter can define hotspots which correspond to certain strings (such as URLs or particular words). Depending on the type of the hotspots created by the filter ( returned by Filter::Hotspot::type() ) the view will draw visual cues such as underlines on mouse-over for links or translucent rectangles for markers.

To add a new filter to the view, call: viewWidget->filterChain()->addFilter( filterObject );

Definition at line 1126 of file TerminalView.cpp.

References _filterChain.

void TerminalView::focusInEvent ( QFocusEvent *  focusEvent)
protected
bool TerminalView::focusNextPrevChild ( bool  next)
protectedvirtual

Definition at line 2200 of file TerminalView.cpp.

void TerminalView::focusOutEvent ( QFocusEvent *  focusEvent)
protected
void TerminalView::fontChange ( const QFont &  font)
protectedvirtual
int TerminalView::fontHeight ( )
inline

Returns the height of the characters in the font used to draw the text in the display.

Definition at line 255 of file TerminalView.h.

References _fontHeight.

int TerminalView::fontWidth ( )
inline

Returns the width of the characters in the display.

This assumes the use of a fixed-width font.

Definition at line 260 of file TerminalView.h.

References _fontWidth.

void TerminalView::getCharacterPosition ( const QPoint &  widgetPoint,
int line,
int column 
) const
private
QFont TerminalView::getVTFont ( )
inline

Returns the font used to draw characters in the display.

Definition at line 336 of file TerminalView.h.

void TerminalView::hideEvent ( QHideEvent *  )
protectedvirtual

Definition at line 1466 of file TerminalView.cpp.

References _contentHeight, _contentWidth, and changedContentSizeSignal().

QRegion TerminalView::hotSpotRegion ( ) const
private
QRect TerminalView::imageToWidget ( const QRect &  imageArea) const
private

Definition at line 1362 of file TerminalView.cpp.

References _fontHeight, _fontWidth, _leftMargin, and _topMargin.

Referenced by blinkCursorEvent(), hotSpotRegion(), and inputMethodQuery().

void TerminalView::inputMethodEvent ( QInputMethodEvent *  event)
protectedvirtual
QVariant TerminalView::inputMethodQuery ( Qt::InputMethodQuery  query) const
protectedvirtual
void TerminalView::interrupt_signal ( void  )
signal

Referenced by copyClipboard().

void TerminalView::isBusySelecting ( bool  )
signal
QColor TerminalView::keyboardCursorColor ( ) const

Returns the color of the keyboard cursor, or an invalid color if the keyboard cursor color is set to change according to the foreground color of the character underneath it.

Definition at line 502 of file TerminalView.cpp.

References _cursorColor.

TerminalView::KeyboardCursorShape TerminalView::keyboardCursorShape ( ) const

Returns the shape of the keyboard cursor.

See setKeyboardCursorShape()

Definition at line 487 of file TerminalView.cpp.

References _cursorShape.

void TerminalView::keyPressedSignal ( QKeyEvent *  e)
signal

Emitted when the user presses a key whilst the terminal widget has focus.

Referenced by emitSelection(), inputMethodEvent(), and keyPressEvent().

void TerminalView::keyPressEvent ( QKeyEvent *  event)
protectedvirtual
int TerminalView::lines ( )
inline

Returns the number of lines of text which can be displayed in the widget.

This will depend upon the height of the widget and the current font. See fontHeight()

Definition at line 242 of file TerminalView.h.

References _lines.

Referenced by updateImage(), updateImageSize(), and TerminalModel::updateTerminalSize().

uint TerminalView::lineSpacing ( ) const

Definition at line 2697 of file TerminalView.cpp.

References _lineSpacing.

void TerminalView::makeImage ( )
private
void TerminalView::mouseDoubleClickEvent ( QMouseEvent *  ev)
protectedvirtual
void TerminalView::mouseMoveEvent ( QMouseEvent *  ev)
protectedvirtual
void TerminalView::mousePressEvent ( QMouseEvent *  ev)
protectedvirtual
void TerminalView::mouseReleaseEvent ( QMouseEvent *  ev)
protectedvirtual
void TerminalView::mouseSignal ( int  button,
int  column,
int  line,
int  eventType 
)
signal

A mouse event occurred.

Parameters
buttonThe mouse button (0 for left button, 1 for middle button, 2 for right button, 3 for release)
columnThe character column where the event occurred
lineThe character row where the event occurred
eventTypeThe type of event. 0 for a mouse press / release or 1 for mouse motion

Referenced by mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), and wheelEvent().

void TerminalView::mouseTripleClickEvent ( QMouseEvent *  ev)
protected
void TerminalView::outputSuspended ( bool  suspended)
slot

Causes the widget to display or hide a message informing the user that terminal output has been suspended (by using the flow control key combination Ctrl+S)

Parameters
suspendedTrue if terminal output has been suspended and the warning message should be shown or false to indicate that terminal output has been resumed and that the warning message should disappear.

Definition at line 2653 of file TerminalView.cpp.

References _gridLayout, and _outputSuspendedLabel.

void TerminalView::paintEvent ( QPaintEvent *  pe)
protectedvirtual
void TerminalView::paintFilters ( QPainter &  painter)
private
void TerminalView::pasteClipboard ( void  )
slot

Pastes the content of the clipboard into the display.

Definition at line 2282 of file TerminalView.cpp.

References emitSelection().

Referenced by QUnixTerminalImpl::pasteClipboard().

void TerminalView::pasteSelection ( )
slot

Pastes the content of the selection into the display.

Definition at line 2290 of file TerminalView.cpp.

References emitSelection().

QRect TerminalView::preeditRect ( ) const
private
void TerminalView::processFilters ( )

Updates the filters in the display's filter chain.

This will cause the hotspots to be updated to match the current image.

WARNING: This function can be expensive depending on the image size and number of filters in the filterChain()

TODO - This API does not really allow efficient usage. Revise it so that the processing can be done in a better way.

eg:

  • Area of interest may be known ( eg. mouse cursor hovering over an area )

Definition at line 783 of file TerminalView.cpp.

References _filterChain, _screenWindow, hotSpotRegion(), FilterChain::process(), and TerminalImageFilterChain::setImage().

void TerminalView::propagateSize ( )
private
uint TerminalView::randomSeed ( ) const

Returns the seed used to generate random colors for the display (in color schemes that support them).

Definition at line 656 of file TerminalView.cpp.

References _randomSeed.

Referenced by setRandomSeed().

void TerminalView::resizeEvent ( QResizeEvent *  )
protectedvirtual

Definition at line 1392 of file TerminalView.cpp.

References updateImageSize().

ScreenWindow * TerminalView::screenWindow ( ) const

Returns the terminal screen section which is displayed in this widget.

See setScreenWindow()

Definition at line 83 of file TerminalView.cpp.

References _screenWindow.

void TerminalView::scrollBarPositionChanged ( int  value)
protectedslot

Definition at line 1477 of file TerminalView.cpp.

References _screenWindow, _scrollBar, and updateImage().

Referenced by setScroll(), and TerminalView().

void TerminalView::scrollImage ( int  lines,
const QRect &  region 
)
private
QString TerminalView::selectedText ( )

Definition at line 2708 of file TerminalView.cpp.

References _preserveLineBreaks, and _screenWindow.

Referenced by QUnixTerminalImpl::selectedText().

void TerminalView::sendStringToEmu ( const char )
signal

Referenced by dropEvent().

void TerminalView::set_global_shortcuts_signal ( bool  )
signal

Emitted when focus changes.

Referenced by focusInEvent(), focusOutEvent(), and TerminalView().

static void TerminalView::setAntialias ( bool  antialias)
inlinestatic

Specified whether anti-aliasing of text in the terminal display is enabled or not.

Defaults to enabled.

Definition at line 355 of file TerminalView.h.

References _antialiasText, and antialias().

void TerminalView::setBellMode ( int  mode)

Sets the type of effect used to alert the user when a 'bell' occurs in the terminal session.

The terminal session can trigger the bell effect by calling bell() with the alert message.

Definition at line 2460 of file TerminalView.cpp.

References _bellMode.

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setBlinkingCursor ( bool  blink)

Specifies whether or not the cursor blinks.

Definition at line 1024 of file TerminalView.cpp.

References _hasBlinkingCursor, and setBlinkingCursorState().

Referenced by QUnixTerminalImpl::initialize(), and QUnixTerminalImpl::setCursorType().

void TerminalView::setBlinkingCursorState ( bool  blink)
void TerminalView::setColorTable ( const ColorEntry  table[])

Sets the terminal color palette used by the display.

Definition at line 111 of file TerminalView.cpp.

References _colorTable, _scrollBar, DEFAULT_BACK_COLOR, and TABLE_COLORS.

Referenced by QUnixTerminalImpl::setBackgroundColor(), QUnixTerminalImpl::setForegroundColor(), and TerminalView().

void TerminalView::setCtrlDrag ( bool  enable)
inline

Definition at line 155 of file TerminalView.h.

References _ctrlDrag.

void TerminalView::setFixedSize ( int  cols,
int  lins 
)

Definition at line 2567 of file TerminalView.cpp.

References _columns, _image, _isFixedSize, _lines, _size, _usedColumns, _usedLines, makeImage(), and setSize().

Referenced by propagateSize().

void TerminalView::setFont ( const QFont &  )
virtual

Reimplemented.

Has no effect. Use setVTFont() to change the font used to draw characters in the display.

Definition at line 220 of file TerminalView.cpp.

Referenced by setVTFont().

void TerminalView::setKeyboardCursorColor ( bool  useForegroundColor,
const QColor &  color 
)

Sets the color used to draw the keyboard cursor.

The keyboard cursor defaults to using the foreground color of the character underneath it.

Parameters
useForegroundColorIf true, the cursor color will change to match the foreground color of the character underneath it as it is moved, in this case, the color parameter is ignored and the color of the character under the cursor is inverted to ensure that it is still readable.
colorThe color to use to draw the cursor. This is only taken into account if useForegroundColor is false.

Definition at line 491 of file TerminalView.cpp.

References _cursorColor.

Referenced by QUnixTerminalImpl::setCursorColor().

void TerminalView::setKeyboardCursorShape ( KeyboardCursorShape  shape)

Sets the shape of the keyboard cursor.

This is the cursor drawn at the position in the terminal where keyboard input will appear.

In addition the terminal display widget also has a cursor for the mouse pointer, which can be set using the QWidget::setCursor() method.

Defaults to BlockCursor

Definition at line 483 of file TerminalView.cpp.

References _cursorShape.

Referenced by QUnixTerminalImpl::initialize(), and QUnixTerminalImpl::setCursorType().

void TerminalView::setLineSpacing ( uint  i)

Definition at line 2702 of file TerminalView.cpp.

References _lineSpacing, and setVTFont().

void TerminalView::setRandomSeed ( uint  seed)

Sets the seed used to generate random colors for the display (in color schemes that support them).

Definition at line 655 of file TerminalView.cpp.

References _randomSeed, and randomSeed().

void TerminalView::setReadOnly ( bool  readonly)
inline

Specified whether terminal widget should be at read-only mode Defaults to false.

Definition at line 349 of file TerminalView.h.

References _readonly.

void TerminalView::setScreenWindow ( ScreenWindow window)

Sets the terminal screen section which is displayed in this widget.

When updateImage() is called, the display fetches the latest character image from the the associated terminal screen window.

In terms of the model-view paradigm, the ScreenWindow is the model which is rendered by the TerminalDisplay.

Definition at line 87 of file TerminalView.cpp.

References _lines, _screenWindow, ScreenWindow::setWindowLines(), updateImage(), and updateLineProperties().

Referenced by TerminalModel::addView().

void TerminalView::setScroll ( int  cursor,
int  lines 
)

Sets the current position and range of the display's scroll bar.

Parameters
cursorThe position of the scroll bar's thumb.
linesThe maximum value of the scroll bar.

Definition at line 1494 of file TerminalView.cpp.

References _lines, _scrollBar, and scrollBarPositionChanged().

Referenced by TerminalView(), and updateImage().

void TerminalView::setScrollBarPosition ( ScrollBarPosition  position)

Specifies whether the terminal display has a vertical scroll bar, and if so whether it is shown on the left or right side of the display.

Definition at line 1517 of file TerminalView.cpp.

References _leftMargin, _scrollBar, _scrollbarLocation, _topMargin, NoScrollBar, and propagateSize().

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setSelection ( const QString &  t)
void TerminalView::setSize ( int  cols,
int  lins 
)
void TerminalView::setTerminalSizeHint ( bool  on)
inline

Sets whether or not the current height and width of the terminal in lines and columns is displayed whilst the widget is being resized.

Definition at line 366 of file TerminalView.h.

References _terminalSizeHint.

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setTerminalSizeStartup ( bool  on)
inline

Sets whether the terminal size display is shown briefly after the widget is first shown.

See setTerminalSizeHint() , isTerminalSizeHint()

Definition at line 379 of file TerminalView.h.

References _terminalSizeStartup.

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setTripleClickMode ( TripleClickMode  mode)
inline

Sets how the text is selected when the user triple clicks within the display.

Definition at line 170 of file TerminalView.h.

References _tripleClickMode.

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setUsesMouse ( bool  usesMouse)
slot

Sets whether the program whoose output is being displayed in the view is interested in mouse events.

If this is set to true, mouse signals will be emitted by the view when the user clicks, drags or otherwise moves the mouse inside the view. The user interaction needed to create selections will also change, and the user will be required to hold down the shift key to create a selection or perform other mouse activities inside the view area - since the program running in the terminal is being allowed to handle normal mouse events itself.

Parameters
usesMouseSet to true if the program running in the terminal is interested in mouse events or false otherwise.

Definition at line 2226 of file TerminalView.cpp.

References _mouseMarks.

Referenced by TerminalModel::addView(), and TerminalView().

void TerminalView::setVTFont ( const QFont &  font)

Sets the font used to draw the display.

Has no effect if font is larger than the size of the display itself.

Definition at line 197 of file TerminalView.cpp.

References _antialiasText, f, fontChange(), and setFont().

Referenced by setLineSpacing(), and QUnixTerminalImpl::setTerminalFont().

void TerminalView::setWordCharacters ( const QString &  wc)

Sets which characters, in addition to letters and numbers, are regarded as being part of a word for the purposes of selecting words in the display by double clicking on them.

The word boundaries occur at the first and last characters which are either a letter, number, or a character in wc

Parameters
wcAn array of characters which are to be considered parts of a word ( in addition to letters and numbers ).

Definition at line 2221 of file TerminalView.cpp.

References _wordCharacters.

void TerminalView::showEvent ( QShowEvent *  )
protectedvirtual

Definition at line 1462 of file TerminalView.cpp.

References _contentHeight, _contentWidth, and changedContentSizeSignal().

void TerminalView::showResizeNotification ( )
private
QSize TerminalView::sizeHint ( ) const

Definition at line 2586 of file TerminalView.cpp.

References _size.

Referenced by propagateSize().

void TerminalView::swapColorTable ( )
privateslot

Definition at line 2470 of file TerminalView.cpp.

References _colorsInverted, and _colorTable.

bool TerminalView::terminalSizeHint ( )
inline

Returns whether or not the current height and width of the terminal in lines and columns is displayed whilst the widget is being resized.

Definition at line 372 of file TerminalView.h.

References _terminalSizeHint.

void TerminalView::tripleClicked ( const QString &  text)
signal

Referenced by mouseTripleClickEvent().

TripleClickMode TerminalView::tripleClickMode ( )
inline

See setTripleClickSelectionMode()

Definition at line 172 of file TerminalView.h.

References _tripleClickMode.

void TerminalView::tripleClickTimeout ( )
privateslot

Definition at line 2133 of file TerminalView.cpp.

References _possibleTripleClick.

Referenced by mouseDoubleClickEvent().

void TerminalView::updateImage ( )
slot
void TerminalView::updateImageSize ( )
private
void TerminalView::updateLineProperties ( )
slot

Causes the terminal display to fetch the latest line status flags from the associated terminal screen ( see setScreenWindow() ).

Definition at line 2015 of file TerminalView.cpp.

References _lineProperties, and _screenWindow.

Referenced by keyPressEvent(), setScreenWindow(), and updateImage().

bool TerminalView::usesMouse ( ) const
slot

See setUsesMouse()

Definition at line 2231 of file TerminalView.cpp.

References _mouseMarks.

void TerminalView::wheelEvent ( QWheelEvent *  ev)
protectedvirtual

Definition at line 2113 of file TerminalView.cpp.

References _mouseMarks, _scrollBar, getCharacterPosition(), and mouseSignal().

QString TerminalView::wordCharacters ( )
inline

Returns the characters which are considered part of a word for the purpose of selecting words in the display with the mouse.

See Also
setWordCharacters()

Definition at line 286 of file TerminalView.h.

References _wordCharacters.

Member Data Documentation

int TerminalView::_actSel
private
bool TerminalView::_allowBell
private

Definition at line 620 of file TerminalView.h.

Referenced by enableBell().

bool TerminalView::_antialiasText = true
staticprivate

Definition at line 731 of file TerminalView.h.

Referenced by antialias(), setAntialias(), and setVTFont().

int TerminalView::_bellMode
private

Definition at line 675 of file TerminalView.h.

Referenced by bellMode(), and setBellMode().

QRgb TerminalView::_blendColor
private

Definition at line 710 of file TerminalView.h.

QTimer* TerminalView::_blinkCursorTimer
private

Definition at line 685 of file TerminalView.h.

Referenced by keyPressEvent(), setBlinkingCursorState(), and TerminalView().

bool TerminalView::_blinking
private

Definition at line 677 of file TerminalView.h.

Referenced by blinkEvent(), drawCharacters(), and updateImage().

QTimer* TerminalView::_blinkTimer
private

Definition at line 684 of file TerminalView.h.

Referenced by TerminalView(), and updateImage().

QClipboard* TerminalView::_clipboard
private

Definition at line 671 of file TerminalView.h.

Referenced by updateImage().

bool TerminalView::_colorsInverted
private

Definition at line 706 of file TerminalView.h.

Referenced by swapColorTable().

ColorEntry TerminalView::_colorTable[TABLE_COLORS]
private
int TerminalView::_columns
private
bool TerminalView::_columnSelectionMode
private

Definition at line 669 of file TerminalView.h.

Referenced by extendSelection(), and mousePressEvent().

int TerminalView::_contentHeight
private

Definition at line 646 of file TerminalView.h.

Referenced by calcGeometry(), hideEvent(), showEvent(), and updateImageSize().

int TerminalView::_contentWidth
private

Definition at line 647 of file TerminalView.h.

Referenced by calcGeometry(), hideEvent(), showEvent(), and updateImageSize().

bool TerminalView::_ctrlDrag
private

Definition at line 681 of file TerminalView.h.

Referenced by ctrlDrag(), mousePressEvent(), and setCtrlDrag().

bool TerminalView::_cursorBlinking
private
QColor TerminalView::_cursorColor
private

Definition at line 721 of file TerminalView.h.

Referenced by drawCursor(), keyboardCursorColor(), and setKeyboardCursorColor().

KeyboardCursorShape TerminalView::_cursorShape
private

Definition at line 717 of file TerminalView.h.

Referenced by drawCursor(), keyboardCursorShape(), and setKeyboardCursorShape().

int TerminalView::_dndFileCount
private

Definition at line 689 of file TerminalView.h.

QString TerminalView::_dropText
private

Definition at line 688 of file TerminalView.h.

TerminalImageFilterChain* TerminalView::_filterChain
private
bool TerminalView::_fixedFont
private

Definition at line 624 of file TerminalView.h.

Referenced by drawContents(), fontChange(), and updateImage().

bool TerminalView::_flowControlWarningEnabled
private

Definition at line 698 of file TerminalView.h.

int TerminalView::_fontAscent
private

Definition at line 630 of file TerminalView.h.

Referenced by fontChange().

double TerminalView::_fontHeight
private
double TerminalView::_fontWidth
private
QGridLayout* TerminalView::_gridLayout
private

Definition at line 622 of file TerminalView.h.

Referenced by outputSuspended(), TerminalView(), and ~TerminalView().

bool TerminalView::_hasBlinker
private

Definition at line 678 of file TerminalView.h.

Referenced by updateImage().

bool TerminalView::_hasBlinkingCursor
private

Definition at line 680 of file TerminalView.h.

Referenced by blinkCursorEvent(), blinkingCursor(), keyPressEvent(), and setBlinkingCursor().

Character* TerminalView::_image
private
int TerminalView::_imageSize
private

Definition at line 651 of file TerminalView.h.

Referenced by clearImage(), drawContents(), extendSelection(), makeImage(), and scrollImage().

InputMethodData TerminalView::_inputMethodData
private
QPoint TerminalView::_iPntSel
private
bool TerminalView::_isFixedSize
private

Definition at line 683 of file TerminalView.h.

Referenced by calcGeometry(), propagateSize(), and setFixedSize().

int TerminalView::_leftMargin
private
QVector<LineProperty> TerminalView::_lineProperties
private
int TerminalView::_lines
private
bool TerminalView::_lineSelectionMode
private

Definition at line 667 of file TerminalView.h.

Referenced by extendSelection(), mousePressEvent(), and mouseTripleClickEvent().

uint TerminalView::_lineSpacing
private

Definition at line 704 of file TerminalView.h.

Referenced by drawCursor(), fontChange(), lineSpacing(), and setLineSpacing().

bool TerminalView::_mouseMarks
private
QRect TerminalView::_mouseOverHotspotArea
private

Definition at line 715 of file TerminalView.h.

Referenced by mouseMoveEvent().

QLabel* TerminalView::_outputSuspendedLabel
private

Definition at line 702 of file TerminalView.h.

Referenced by outputSuspended(), scrollImage(), and ~TerminalView().

QPoint TerminalView::_pntSel
private

Definition at line 663 of file TerminalView.h.

Referenced by extendSelection(), and mousePressEvent().

bool TerminalView::_possibleTripleClick
private

Definition at line 691 of file TerminalView.h.

Referenced by mouseDoubleClickEvent(), mousePressEvent(), and tripleClickTimeout().

bool TerminalView::_preserveLineBreaks
private
uint TerminalView::_randomSeed
private

Definition at line 655 of file TerminalView.h.

Referenced by randomSeed(), and setRandomSeed().

bool TerminalView::_readonly
private

Definition at line 738 of file TerminalView.h.

Referenced by keyPressEvent(), and setReadOnly().

QTimer* TerminalView::_resizeTimer
private

Definition at line 696 of file TerminalView.h.

Referenced by showResizeNotification().

QLabel* TerminalView::_resizeWidget
private

Definition at line 695 of file TerminalView.h.

Referenced by showResizeNotification().

bool TerminalView::_resizing
private

Definition at line 657 of file TerminalView.h.

Referenced by updateImage(), and updateImageSize().

QPointer<ScreenWindow> TerminalView::_screenWindow
private
QScrollBar* TerminalView::_scrollBar
private
ScrollBarPosition TerminalView::_scrollbarLocation
private

Definition at line 673 of file TerminalView.h.

Referenced by calcGeometry(), and setScrollBarPosition().

QSize TerminalView::_size
private

Definition at line 708 of file TerminalView.h.

Referenced by setFixedSize(), setSize(), and sizeHint().

bool TerminalView::_terminalSizeHint
private

Definition at line 658 of file TerminalView.h.

Referenced by setTerminalSizeHint(), showResizeNotification(), and terminalSizeHint().

bool TerminalView::_terminalSizeStartup
private

Definition at line 659 of file TerminalView.h.

Referenced by setTerminalSizeStartup(), and showResizeNotification().

int TerminalView::_topMargin
private
TripleClickMode TerminalView::_tripleClickMode
private

Definition at line 682 of file TerminalView.h.

Referenced by mouseTripleClickEvent(), setTripleClickMode(), and tripleClickMode().

QPoint TerminalView::_tripleSelBegin
private

Definition at line 664 of file TerminalView.h.

Referenced by extendSelection(), and mouseTripleClickEvent().

int TerminalView::_usedColumns
private
int TerminalView::_usedLines
private
QString TerminalView::_wordCharacters
private

Definition at line 674 of file TerminalView.h.

Referenced by charClass(), setWordCharacters(), and wordCharacters().

bool TerminalView::_wordSelectionMode
private
const int TerminalView::BLINK_DELAY = 500
staticprivate

Definition at line 734 of file TerminalView.h.

Referenced by keyPressEvent(), setBlinkingCursorState(), and updateImage().

const int TerminalView::DEFAULT_LEFT_MARGIN = 2
staticprivate

Definition at line 735 of file TerminalView.h.

Referenced by calcGeometry(), and TerminalView().

const int TerminalView::DEFAULT_TOP_MARGIN = 2
staticprivate

Definition at line 736 of file TerminalView.h.

Referenced by calcGeometry(), and TerminalView().

struct TerminalView::_dragInfo TerminalView::dragInfo
protected

The documentation for this class was generated from the following files: