diff options
Diffstat (limited to 'src/imports/controls/macos')
-rw-r--r-- | src/imports/controls/macos/Button.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/macos/CheckBox.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/macos/ComboBox.qml | 24 | ||||
-rw-r--r-- | src/imports/controls/macos/RadioButton.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/macos/Slider.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/macos/SpinBox.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/macos/TextArea.qml | 17 | ||||
-rw-r--r-- | src/imports/controls/macos/TextField.qml | 2 |
8 files changed, 55 insertions, 0 deletions
diff --git a/src/imports/controls/macos/Button.qml b/src/imports/controls/macos/Button.qml index e3fe856d..58658c52 100644 --- a/src/imports/controls/macos/Button.qml +++ b/src/imports/controls/macos/Button.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultButton { + id: control + readonly property Item __focusFrameTarget: control } diff --git a/src/imports/controls/macos/CheckBox.qml b/src/imports/controls/macos/CheckBox.qml index d1a56fee..23ad4426 100644 --- a/src/imports/controls/macos/CheckBox.qml +++ b/src/imports/controls/macos/CheckBox.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultCheckBox { + readonly property Item __focusFrameTarget: indicator + readonly property Item __focusFrameStyleItem: indicator } diff --git a/src/imports/controls/macos/ComboBox.qml b/src/imports/controls/macos/ComboBox.qml index 3891594b..53baabf8 100644 --- a/src/imports/controls/macos/ComboBox.qml +++ b/src/imports/controls/macos/ComboBox.qml @@ -35,7 +35,31 @@ ****************************************************************************/ import QtQuick +import QtQuick.Templates as T import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultComboBox { + id: control + readonly property Item __focusFrameTarget: control + + contentItem: T.TextField { + implicitWidth: contentWidth + implicitHeight: contentHeight + text: control.editable ? control.editText : control.displayText + + enabled: control.editable + autoScroll: control.editable + readOnly: control.down + inputMethodHints: control.inputMethodHints + validator: control.validator + selectByMouse: control.selectTextByMouse + + font: control.font + color: control.editable ? control.palette.text : control.palette.buttonText + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: Text.AlignVCenter + + readonly property Item __focusFrameControl: control + } } diff --git a/src/imports/controls/macos/RadioButton.qml b/src/imports/controls/macos/RadioButton.qml index 82b85698..c9cdf985 100644 --- a/src/imports/controls/macos/RadioButton.qml +++ b/src/imports/controls/macos/RadioButton.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultRadioButton { + readonly property Item __focusFrameTarget: indicator + readonly property Item __focusFrameStyleItem: indicator } diff --git a/src/imports/controls/macos/Slider.qml b/src/imports/controls/macos/Slider.qml index ab72fcaa..e8e0e036 100644 --- a/src/imports/controls/macos/Slider.qml +++ b/src/imports/controls/macos/Slider.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultSlider { + readonly property Item __focusFrameTarget: handle + readonly property Item __focusFrameStyleItem: handle } diff --git a/src/imports/controls/macos/SpinBox.qml b/src/imports/controls/macos/SpinBox.qml index 1eb7fa05..5928d37e 100644 --- a/src/imports/controls/macos/SpinBox.qml +++ b/src/imports/controls/macos/SpinBox.qml @@ -62,6 +62,8 @@ T.SpinBox { rightPadding: (__nativeBackground ? background.contentPadding.right : 0) + rightInset bottomPadding: __nativeBackground ? background.contentPadding.bottom: 0 + readonly property Item __focusFrameTarget: contentItem + validator: IntValidator { locale: control.locale.name bottom: Math.min(control.from, control.to) @@ -85,6 +87,8 @@ T.SpinBox { readOnly: !control.editable validator: control.validator inputMethodHints: control.inputMethodHints + + readonly property Item __focusFrameControl: control } NativeStyle.SpinBox { diff --git a/src/imports/controls/macos/TextArea.qml b/src/imports/controls/macos/TextArea.qml index f6b88303..98884bda 100644 --- a/src/imports/controls/macos/TextArea.qml +++ b/src/imports/controls/macos/TextArea.qml @@ -38,4 +38,21 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultTextArea { + id: control + + // If you place a TextArea inside a Frame or Flickable (/ScrollView), and + // the TextArea is the only child of the content item, we place the focus + // frame around the Flickable/Frame instead. + readonly property Item __focusFrameTarget: + (parent.parent instanceof Frame || parent.parent instanceof Flickable) + && parent.children.length === 1 + ? parent.parent : control + + background: Rectangle { + color: control.palette.light + // Since this delegate is a plain Rectangle, we need to tag it to know + // that it's still the default one, and not some custom item set by the + // application. Only in the former case do we wan't to show a focus frame. + readonly property bool __isDefaultDelegate: true + } } diff --git a/src/imports/controls/macos/TextField.qml b/src/imports/controls/macos/TextField.qml index bc0e2cb7..f3a748f6 100644 --- a/src/imports/controls/macos/TextField.qml +++ b/src/imports/controls/macos/TextField.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultTextField { + id: control + readonly property Item __focusFrameTarget: control } |