Skip to content
Snippets Groups Projects
DapComboBox.qml 1.91 KiB
Newer Older
konstantin.kukharenko's avatar
konstantin.kukharenko committed
import QtQuick 2.0
import QtQuick.Controls 2.0
konstantin.kukharenko's avatar
konstantin.kukharenko committed

konstantin.kukharenko's avatar
konstantin.kukharenko committed
DapComboBoxForm
{
    id:dapComboBox

konstantin.kukharenko's avatar
konstantin.kukharenko committed
    delegate:ItemDelegate
    {
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        width: parent.width
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        //Adjusting the height of the line, taking into account that the second element from the end may be the last
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        height:{
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            if(index != currentIndex)
            {
                if(index == (count - 2))
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                {
                    if(index+1 == currentIndex) return heightListElement + bottomIntervalListElement
                    else return heightListElement + intervalListElement
                }
                if (index == count - 1) return heightListElement + bottomIntervalListElement
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                return heightListElement + intervalListElement
            }
            else return 0
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        }
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        //Text item
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        contentItem: Text {
            id:textDelegateComboBox
            anchors.fill: parent
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            anchors.topMargin: paddingTopItemDelegate
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            anchors.leftMargin: popup.visible ? sidePaddingActive : sidePaddingNormal
            font:dapComboBox.font
            text: if(index != currentIndex)
                      return modelData;
                  else return ""
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            color: hovered ? hilightColorText : normalColorText
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        }

konstantin.kukharenko's avatar
konstantin.kukharenko committed

        //Indent from the bottom edge or the next line that will not stand out when you hover over the mouse
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        background: Rectangle {
            anchors.fill: parent
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            anchors.bottomMargin: {
                if(index == count - 2)
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                {
                    if(index+1 == currentIndex) return bottomIntervalListElement
                    else return intervalListElement
                }
                if (index == count - 1) return bottomIntervalListElement
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                return intervalListElement
            }
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            color: hovered ? hilightColor : normalColor
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        }
konstantin.kukharenko's avatar
konstantin.kukharenko committed
        highlighted: parent.highlightedIndex === index
    }
}