mirror of
https://github.com/Serial-Studio/Serial-Studio.git
synced 2025-01-31 17:42:55 +08:00
Make caret line have same width as console
This commit is contained in:
parent
293aaf8bd8
commit
37dc293a1f
@ -34,10 +34,10 @@ Rectangle {
|
|||||||
// Custom properties
|
// Custom properties
|
||||||
//
|
//
|
||||||
property int lineOffset: 0
|
property int lineOffset: 0
|
||||||
property string selectedText
|
|
||||||
property Menu contextMenu: null
|
property Menu contextMenu: null
|
||||||
property alias font: label.font
|
property alias font: label.font
|
||||||
property bool autoscroll: false
|
property bool autoscroll: false
|
||||||
|
property string selectedText: ""
|
||||||
property string placeholderText: ""
|
property string placeholderText: ""
|
||||||
property alias model: listView.model
|
property alias model: listView.model
|
||||||
readonly property int digits: listView.count.toString().length
|
readonly property int digits: listView.count.toString().length
|
||||||
@ -100,8 +100,8 @@ Rectangle {
|
|||||||
model: root.model
|
model: root.model
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 0
|
anchors.leftMargin: 0
|
||||||
highlightMoveDuration: 0
|
|
||||||
anchors.margins: app.spacing
|
anchors.margins: app.spacing
|
||||||
|
highlightFollowsCurrentItem: false
|
||||||
|
|
||||||
//
|
//
|
||||||
// Scrollbar
|
// Scrollbar
|
||||||
@ -135,6 +135,28 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Highlight item
|
||||||
|
//
|
||||||
|
highlight: Rectangle {
|
||||||
|
z: 0
|
||||||
|
width: listView.width
|
||||||
|
height: lineNumber.height
|
||||||
|
y: listView.currentItem.y
|
||||||
|
color: root.caretLineColor
|
||||||
|
implicitWidth: listView.width
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: lineNumber
|
||||||
|
font: root.font
|
||||||
|
width: lineCountRect.width
|
||||||
|
color: root.lineCountTextColor
|
||||||
|
horizontalAlignment: Qt.AlignHCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
text: listView.currentIndex + root.lineOffset + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Line delegate
|
// Line delegate
|
||||||
//
|
//
|
||||||
@ -147,39 +169,21 @@ Rectangle {
|
|||||||
x: app.spacing + lineCountRect.width
|
x: app.spacing + lineCountRect.width
|
||||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Highlight item
|
|
||||||
//
|
|
||||||
highlight: Rectangle {
|
|
||||||
z: 0
|
|
||||||
color: root.caretLineColor
|
|
||||||
|
|
||||||
Text {
|
|
||||||
font: root.font
|
|
||||||
width: lineCountRect.width
|
|
||||||
color: root.lineCountTextColor
|
|
||||||
horizontalAlignment: Qt.AlignHCenter
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
text: listView.currentIndex + root.lineOffset + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Simple implementation of a mouse cursor
|
// Simple implementation of a vertical text cursor
|
||||||
//
|
//
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: mouseArea
|
|
||||||
anchors.fill: parent
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
acceptedButtons: Qt.RightButton
|
anchors.fill: parent
|
||||||
|
|
||||||
onClicked: contextMenu.popup()
|
onClicked: contextMenu.popup()
|
||||||
|
acceptedButtons: Qt.RightButton
|
||||||
onMouseYChanged: {
|
onMouseYChanged: {
|
||||||
if (containsMouse && (!autoscroll || !Cpp_IO_Manager.connected)) {
|
if (containsMouse && (!autoscroll || !Cpp_IO_Manager.connected)) {
|
||||||
var index = listView.indexAt(lineCountRect.width + 2 * app.spacing,
|
var contentX = lineCountRect.width + 2 * app.spacing
|
||||||
mouseY + listView.contentY)
|
var contentY = mouseY + listView.contentY - root.font.pixelSize
|
||||||
|
var index = listView.indexAt(contentX, contentY)
|
||||||
|
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
listView.currentIndex = index
|
listView.currentIndex = index
|
||||||
|
@ -86,7 +86,7 @@ ApplicationWindow {
|
|||||||
// Window geometry
|
// Window geometry
|
||||||
//
|
//
|
||||||
visible: false
|
visible: false
|
||||||
minimumWidth: 980
|
minimumWidth: 1040
|
||||||
minimumHeight: 620
|
minimumHeight: 620
|
||||||
title: Cpp_AppName + " v" + Cpp_AppVersion
|
title: Cpp_AppName + " v" + Cpp_AppVersion
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user