GNU Octave  4.2.1
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 (bool extra_interrupt)
 Copies the selected text to the clipboard. More...
 
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) More...
 
void pasteClipboard ()
 Pastes the content of the clipboard into the display. More...
 
void pasteSelection ()
 Pastes the content of the selection into the display. More...
 
void selectAll ()
 selects all content More...
 
void setUsesMouse (bool usesMouse)
 Sets whether the program whoose output is being displayed in the view is interested in mouse events. More...
 
void updateImage ()
 Causes the terminal display to fetch the latest character image from the associated terminal screen ( see setScreenWindow() ) and redraw the display. More...
 
void updateLineProperties ()
 Causes the terminal display to fetch the latest line status flags from the associated terminal screen ( see setScreenWindow() ). More...
 
bool usesMouse () const
 See setUsesMouse() More...
 

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. More...
 
void interrupt_signal (void)
 
void isBusySelecting (bool)
 
void keyPressedSignal (QKeyEvent *e)
 Emitted when the user presses a key whilst the terminal widget has focus. More...
 
void mouseSignal (int button, int column, int line, int eventType)
 A mouse event occurred. More...
 
void sendStringToEmu (const char *)
 
void set_global_shortcuts_signal (bool)
 Emitted when focus changes. More...
 
void tripleClicked (const QString &text)
 

Public Member Functions

 TerminalView (QWidget *parent=0)
 Constructs a new terminal display widget with the specified parent. More...
 
virtual ~TerminalView ()
 
int bellMode ()
 Returns the type of effect used to alert the user when a 'bell' occurs in the terminal session. More...
 
bool blinkingCursor ()
 Returns true if the cursor is set to blink or false otherwise. More...
 
const ColorEntrycolorTable () const
 Returns the terminal color palette used by the display. More...
 
int columns ()
 Returns the number of characters of text which can be displayed on each line in the widget. More...
 
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. More...
 
FilterChainfilterChain () const
 Returns the display's filter chain. More...
 
int fontHeight ()
 Returns the height of the characters in the font used to draw the text in the display. More...
 
int fontWidth ()
 Returns the width of the characters in the display. More...
 
QFont getVTFont ()
 Returns the font used to draw characters in the display. More...
 
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. More...
 
KeyboardCursorShape keyboardCursorShape () const
 Returns the shape of the keyboard cursor. More...
 
int lines ()
 Returns the number of lines of text which can be displayed in the widget. More...
 
uint lineSpacing () const
 
void processFilters ()
 Updates the filters in the display's filter chain. More...
 
uint randomSeed () const
 Returns the seed used to generate random colors for the display (in color schemes that support them). More...
 
ScreenWindowscreenWindow () const
 Returns the terminal screen section which is displayed in this widget. More...
 
QString selectedText ()
 
void setBellMode (int mode)
 Sets the type of effect used to alert the user when a 'bell' occurs in the terminal session. More...
 
void setBlinkingCursor (bool blink)
 Specifies whether or not the cursor blinks. More...
 
void setBlinkingCursorState (bool blink)
 
void setColorTable (const ColorEntry table[])
 Sets the terminal color palette used by the display. More...
 
void setCtrlDrag (bool enable)
 
void setFixedSize (int cols, int lins)
 
virtual void setFont (const QFont &)
 Reimplemented. More...
 
void setKeyboardCursorColor (bool useForegroundColor, const QColor &color)
 Sets the color used to draw the keyboard cursor. More...
 
void setKeyboardCursorShape (KeyboardCursorShape shape)
 Sets the shape of the keyboard cursor. More...
 
void setLineSpacing (uint)
 
void setRandomSeed (uint seed)
 Sets the seed used to generate random colors for the display (in color schemes that support them). More...
 
void setReadOnly (bool readonly)
 Specified whether terminal widget should be at read-only mode Defaults to false. More...
 
void setScreenWindow (ScreenWindow *window)
 Sets the terminal screen section which is displayed in this widget. More...
 
void setScroll (int cursor, int lines)
 Sets the current position and range of the display's scroll bar. More...
 
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. More...
 
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. More...
 
void setTerminalSizeStartup (bool on)
 Sets whether the terminal size display is shown briefly after the widget is first shown. More...
 
void setTripleClickMode (TripleClickMode mode)
 Sets how the text is selected when the user triple clicks within the display. More...
 
void setVTFont (const QFont &font)
 Sets the font used to draw the display. More...
 
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. More...
 
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. More...
 
TripleClickMode tripleClickMode ()
 See setTripleClickSelectionMode() More...
 
QString wordCharacters ()
 Returns the characters which are considered part of a word for the purpose of selecting words in the display with the mouse. More...
 

Static Public Member Functions

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

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 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 518 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 337 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 1361 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

Definition at line 195 of file moc-TerminalView.cc.

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

void TerminalView::changedFontMetricSignal ( int  height,
int  width 
)
signal

Definition at line 188 of file moc-TerminalView.cc.

Referenced by fontChange().

int TerminalView::charClass ( quint16  ch) const
protectedvirtual

Definition at line 2218 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 107 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 _t1,
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.

Definition at line 202 of file moc-TerminalView.cc.

Referenced by mousePressEvent().

void TerminalView::copyClipboard ( bool  extra_interrupt)
slot

Copies the selected text to the clipboard.

Definition at line 2278 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 1095 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 2586 of file TerminalView.cpp.

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

Definition at line 516 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 470 of file TerminalView.cpp.

References _fontHeight, _fontWidth, code, 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 2592 of file TerminalView.cpp.

References sendStringToEmu(), and url.

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

Definition at line 2253 of file TerminalView.cpp.

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

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

void TerminalView::enableBell ( )
protectedslot

Definition at line 2453 of file TerminalView.cpp.

References _allowBell.

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 1626 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 1135 of file TerminalView.cpp.

References _filterChain.

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

Definition at line 2209 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 1475 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 1371 of file TerminalView.cpp.

References _fontHeight, _fontWidth, _leftMargin, _topMargin, and result.

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

Definition at line 168 of file moc-TerminalView.cc.

Referenced by copyClipboard().

void TerminalView::isBusySelecting ( bool  _t1)
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 511 of file TerminalView.cpp.

References _cursorColor.

TerminalView::KeyboardCursorShape TerminalView::keyboardCursorShape ( ) const

Returns the shape of the keyboard cursor.

See setKeyboardCursorShape()

Definition at line 496 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.

Definition at line 174 of file moc-TerminalView.cc.

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 2696 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

Definition at line 181 of file moc-TerminalView.cc.

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 2652 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 2294 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 2316 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 792 of file TerminalView.cpp.

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

void TerminalView::propagateSize ( )
private

Definition at line 1406 of file TerminalView.cpp.

References _columns, _image, _isFixedSize, _lines, setSize(), sizeHint(), and updateImageSize().

Referenced by fontChange(), and setScrollBarPosition().

uint TerminalView::randomSeed ( ) const

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

Definition at line 665 of file TerminalView.cpp.

References _randomSeed.

Referenced by setRandomSeed().

void TerminalView::resizeEvent ( QResizeEvent *  )
protectedvirtual

Definition at line 1401 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 84 of file TerminalView.cpp.

References _screenWindow.

void TerminalView::scrollBarPositionChanged ( int  value)
protectedslot

Definition at line 1486 of file TerminalView.cpp.

References _screenWindow, _scrollBar, and updateImage().

Referenced by setScroll(), and TerminalView().

void TerminalView::scrollImage ( int  lines,
const QRect &  region 
)
private
void TerminalView::selectAll ( void  )
slot

selects all content

Definition at line 2302 of file TerminalView.cpp.

References _screenWindow.

Referenced by QUnixTerminalImpl::selectAll().

QString TerminalView::selectedText ( )

Definition at line 2707 of file TerminalView.cpp.

References _preserveLineBreaks, _screenWindow, and text.

Referenced by QUnixTerminalImpl::selectedText().

void TerminalView::sendStringToEmu ( const char *  _t1)
signal

Definition at line 216 of file moc-TerminalView.cc.

Referenced by dropEvent().

void TerminalView::set_global_shortcuts_signal ( bool  _t1)
signal

Emitted when focus changes.

Definition at line 230 of file moc-TerminalView.cc.

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 2448 of file TerminalView.cpp.

References _bellMode, and mode.

Referenced by QUnixTerminalImpl::initialize().

void TerminalView::setBlinkingCursor ( bool  blink)

Specifies whether or not the cursor blinks.

Definition at line 1033 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 112 of file TerminalView.cpp.

References _colorTable, _scrollBar, DEFAULT_BACK_COLOR, p, 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 
)
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 227 of file TerminalView.cpp.

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 500 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 492 of file TerminalView.cpp.

References _cursorShape.

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

void TerminalView::setLineSpacing ( uint  i)

Definition at line 2701 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 664 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 88 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 1503 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 1526 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, and mode.

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 2235 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 198 of file TerminalView.cpp.

References _antialiasText, f, and fontChange().

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 2230 of file TerminalView.cpp.

References _wordCharacters.

void TerminalView::showEvent ( QShowEvent *  )
protectedvirtual

Definition at line 1471 of file TerminalView.cpp.

References _contentHeight, _contentWidth, and changedContentSizeSignal().

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

Definition at line 2574 of file TerminalView.cpp.

References _size.

Referenced by propagateSize().

void TerminalView::swapColorTable ( )
privateslot

Definition at line 2458 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

Definition at line 223 of file moc-TerminalView.cc.

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 2142 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 2024 of file TerminalView.cpp.

References _lineProperties, and _screenWindow.

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

bool TerminalView::usesMouse ( ) const
slot

See setUsesMouse()

Definition at line 2240 of file TerminalView.cpp.

References _mouseMarks.

void TerminalView::wheelEvent ( QWheelEvent *  ev)
protectedvirtual

Definition at line 2122 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 623 of file TerminalView.h.

Referenced by enableBell().

bool TerminalView::_antialiasText = true
staticprivate

Definition at line 734 of file TerminalView.h.

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

int TerminalView::_bellMode
private

Definition at line 678 of file TerminalView.h.

Referenced by bellMode(), and setBellMode().

QRgb TerminalView::_blendColor
private

Definition at line 713 of file TerminalView.h.

QTimer* TerminalView::_blinkCursorTimer
private

Definition at line 688 of file TerminalView.h.

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

bool TerminalView::_blinking
private

Definition at line 680 of file TerminalView.h.

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

QTimer* TerminalView::_blinkTimer
private

Definition at line 687 of file TerminalView.h.

Referenced by TerminalView(), and updateImage().

QClipboard* TerminalView::_clipboard
private

Definition at line 674 of file TerminalView.h.

Referenced by updateImage().

bool TerminalView::_colorsInverted
private

Definition at line 709 of file TerminalView.h.

Referenced by swapColorTable().

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

Definition at line 672 of file TerminalView.h.

Referenced by extendSelection(), and mousePressEvent().

int TerminalView::_contentHeight
private

Definition at line 649 of file TerminalView.h.

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

int TerminalView::_contentWidth
private

Definition at line 650 of file TerminalView.h.

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

bool TerminalView::_ctrlDrag
private

Definition at line 684 of file TerminalView.h.

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

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

Definition at line 724 of file TerminalView.h.

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

KeyboardCursorShape TerminalView::_cursorShape
private

Definition at line 720 of file TerminalView.h.

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

int TerminalView::_dndFileCount
private

Definition at line 692 of file TerminalView.h.

QString TerminalView::_dropText
private

Definition at line 691 of file TerminalView.h.

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

Definition at line 627 of file TerminalView.h.

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

bool TerminalView::_flowControlWarningEnabled
private

Definition at line 701 of file TerminalView.h.

int TerminalView::_fontAscent
private

Definition at line 633 of file TerminalView.h.

Referenced by fontChange().

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

Definition at line 625 of file TerminalView.h.

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

bool TerminalView::_hasBlinker
private

Definition at line 681 of file TerminalView.h.

Referenced by updateImage().

bool TerminalView::_hasBlinkingCursor
private

Definition at line 683 of file TerminalView.h.

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

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

Definition at line 654 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 686 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 670 of file TerminalView.h.

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

uint TerminalView::_lineSpacing
private

Definition at line 707 of file TerminalView.h.

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

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

Definition at line 718 of file TerminalView.h.

Referenced by mouseMoveEvent().

QLabel* TerminalView::_outputSuspendedLabel
private

Definition at line 705 of file TerminalView.h.

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

QPoint TerminalView::_pntSel
private

Definition at line 666 of file TerminalView.h.

Referenced by extendSelection(), and mousePressEvent().

bool TerminalView::_possibleTripleClick
private

Definition at line 694 of file TerminalView.h.

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

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

Definition at line 658 of file TerminalView.h.

Referenced by randomSeed(), and setRandomSeed().

bool TerminalView::_readonly
private

Definition at line 741 of file TerminalView.h.

Referenced by keyPressEvent(), and setReadOnly().

QTimer* TerminalView::_resizeTimer
private

Definition at line 699 of file TerminalView.h.

Referenced by showResizeNotification().

QLabel* TerminalView::_resizeWidget
private

Definition at line 698 of file TerminalView.h.

Referenced by showResizeNotification().

bool TerminalView::_resizing
private

Definition at line 660 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 676 of file TerminalView.h.

Referenced by calcGeometry(), and setScrollBarPosition().

QSize TerminalView::_size
private

Definition at line 711 of file TerminalView.h.

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

bool TerminalView::_terminalSizeHint
private

Definition at line 661 of file TerminalView.h.

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

bool TerminalView::_terminalSizeStartup
private

Definition at line 662 of file TerminalView.h.

Referenced by setTerminalSizeStartup(), and showResizeNotification().

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

Definition at line 685 of file TerminalView.h.

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

QPoint TerminalView::_tripleSelBegin
private

Definition at line 667 of file TerminalView.h.

Referenced by extendSelection(), and mouseTripleClickEvent().

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

Definition at line 677 of file TerminalView.h.

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

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

Definition at line 737 of file TerminalView.h.

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

const int TerminalView::DEFAULT_LEFT_MARGIN = 2
staticprivate

Definition at line 738 of file TerminalView.h.

Referenced by calcGeometry(), and TerminalView().

const int TerminalView::DEFAULT_TOP_MARGIN = 2
staticprivate

Definition at line 739 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: