# HG changeset patch # User Jacob Dawid # Date 1342849005 14400 # Node ID f620ecde25663665c7d3a15af1004f247eaf752e # Parent aa6cba8ae88bec3a3c833ea1b8b0eed9c83ba5ba Added support for changing the cursor. diff --git a/libqterminal/QTerminalInterface.h b/libqterminal/QTerminalInterface.h --- a/libqterminal/QTerminalInterface.h +++ b/libqterminal/QTerminalInterface.h @@ -49,6 +49,18 @@ virtual void setSize(int h, int v) = 0; virtual void sendText(const QString& text) = 0; + enum CursorType { + UnderlineCursor, + BlockCursor, + IBeamCursor + }; + + virtual void setCursorType(CursorType type, bool blinking) { + // Provide empty default impl in order to avoid conflicts with the win impl. + Q_UNUSED(type); + Q_UNUSED(blinking); + } + public slots: virtual void copyClipboard() = 0; virtual void pasteClipboard() = 0; diff --git a/libqterminal/unix/QUnixTerminalImpl.cpp b/libqterminal/unix/QUnixTerminalImpl.cpp --- a/libqterminal/unix/QUnixTerminalImpl.cpp +++ b/libqterminal/unix/QUnixTerminalImpl.cpp @@ -118,6 +118,16 @@ m_terminalModel->sendText(text); } +void QUnixTerminalImpl::setCursorType(CursorType type, bool blinking) +{ + switch(type) { + case UnderlineCursor: m_terminalView->setKeyboardCursorShape(TerminalView::UnderlineCursor); + case BlockCursor: m_terminalView->setKeyboardCursorShape(TerminalView::BlockCursor); + case IBeamCursor: m_terminalView->setKeyboardCursorShape(TerminalView::IBeamCursor); + } + m_terminalView->setBlinkingCursor(blinking); +} + void QUnixTerminalImpl::focusInEvent(QFocusEvent *focusEvent) { Q_UNUSED(focusEvent); diff --git a/libqterminal/unix/QUnixTerminalImpl.h b/libqterminal/unix/QUnixTerminalImpl.h --- a/libqterminal/unix/QUnixTerminalImpl.h +++ b/libqterminal/unix/QUnixTerminalImpl.h @@ -38,6 +38,8 @@ void setSize(int h, int v); void sendText(const QString& text); + void setCursorType(CursorType type, bool blinking); + public slots: void copyClipboard(); void pasteClipboard();