Skip to content
Snippets Groups Projects
DapComboBox.qml 1.93 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
{
    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 == customComboBox.count - 2)
                {
                    if(index+1 == currentIndex) return heightListElement + bottomIntervalListElement
                    else return heightListElement + intervalListElement
                }
                if (index == customComboBox.count - 1) return heightListElement + bottomIntervalListElement
                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.family: fontRobotoRegular.name
konstantin.kukharenko's avatar
konstantin.kukharenko committed
            font.pixelSize: fontSizeComboBox
            text: {if(index != currentIndex) return modelData;}
            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: {
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                if(index == countComboBox - 2)
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                {
                    if(index+1 == currentIndex) return bottomIntervalListElement
                    else return intervalListElement
                }
konstantin.kukharenko's avatar
konstantin.kukharenko committed
                if (index == countComboBox - 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
    }
}