Quick-Turn-Studio / CLionSupportForQt

19 stars 0 forks source link

&& not working #36

Closed podlaszczyk closed 3 years ago

podlaszczyk commented 3 years ago
import QtQuick 2.9
import QtQuick.Controls 2.3
import "qrc:/javascript/keyutil.js" as KeyUtil

Item {
  id: buttonArea

  property alias acceptedButtons: mouseArea.acceptedButtons
  property alias cursorShape: mouseArea.cursorShape
  property alias hoverEnabled: mouseArea.hoverEnabled

  readonly property bool containsPress: containsMouse && pressed

  readonly property bool containsMouse: mouseArea.containsMouse || focusCue.show || inKeyPress
  // pressed is enabled either for a real mouse button press or for a key press.
  readonly property bool pressed: mouseArea.pressed || inKeyPress

  signal clicked()

    // (in the header) or put the border on the inside.
  property alias focusCueColor: focusCue.color
  property alias focusCueInside: focusCue.inside
  property alias focusCueForceRound: focusCue.forceRound
  property alias focusCueMargin: focusCue.borderMargin

  activeFocusOnTab: true

  MouseArea {
    id: mouseArea
    anchors.fill: parent
    onClicked: mouseClicked()
  }

  property var inKeyPress: null

  Keys.onPressed: {
    if(KeyUtil.handleButtonKeyEvent(event)) {
      focusCue.reveal()
      inKeyPress = event.key
    }
  }
  Keys.onReleased: {
    if(inKeyPress && inKeyPress === event.key) {
      event.accepted = true
      inKeyPress = null
      clicked()
    }
  }
  // Loss of focus cancels any key press.
  onActiveFocusChanged: {
    if(!activeFocus)
      inKeyPress = null
  }
}