diff --git a/widgets/DapComboBox.qml b/widgets/DapComboBox.qml index b19262e7f7d2fad94c62714633e6ad7e00fba086..8bd71b44c323782fcf6893b387a3e1f2f99de917 100644 --- a/widgets/DapComboBox.qml +++ b/widgets/DapComboBox.qml @@ -1,10 +1,13 @@ -import QtQuick 2.4 +import QtQuick 2.7 import QtQuick.Controls 2.0 DapComboBoxForm { id:dapComboBox + //temporary variable for the calculating unnecessary part of text + property int stringSize + delegate:ItemDelegate { @@ -30,7 +33,6 @@ DapComboBoxForm anchors.fill: parent anchors.topMargin: paddingTopItemDelegate anchors.leftMargin: popup.visible ? sidePaddingActive : sidePaddingNormal - anchors.rightMargin: popup.visible ? sidePaddingActive : sidePaddingNormal font:dapComboBox.font //Calculates various properties of a given string of text for a particular font TextMetrics @@ -38,23 +40,19 @@ DapComboBoxForm id: tm font: dapComboBox.font elide: Text.ElideRight + elideWidth: parent.width - (popup.visible ? sidePaddingActive : sidePaddingNormal) * 2 - 8*pt text: modelData - elideWidth: - { - if(index != currentIndex) - return widthPopupComboBoxActive - 2*sidePaddingActive; - else - return widthPopupComboBoxNormal - indicatorWidth ; - } - } text: { if(index != currentIndex) - return tm.elidedText.replace('…', '..'); + return modelData; else { - mainLineText = tm.elidedText.replace('…', '..'); + stringSize = tm.elidedText.length; + if(stringSize < modelData.length) + mainLineText = tm.elidedText.substring(0, stringSize-3) + '..'; + else mainLineText = modelData; return ""; } } diff --git a/widgets/DapComboBoxForm.ui.qml b/widgets/DapComboBoxForm.ui.qml index e76aba1a8ded911c19d2395feffef052c4ed0de2..c16956c35e62b9fe4dafb1e8e61e39b8a7196b7c 100644 --- a/widgets/DapComboBoxForm.ui.qml +++ b/widgets/DapComboBoxForm.ui.qml @@ -102,7 +102,7 @@ ComboBox Text { id:textTopComboBox - anchors.left: parent.left + anchors.fill: parent anchors.leftMargin: popup.visible ? sidePaddingActive : sidePaddingNormal text: mainLineText font: parent.font