168{
169
170
171
172
173 int maxWidthForTitles = INT_MAX;
174 Q_FOREACH(const QScreen *screen, QGuiApplication::screens()) {
175 maxWidthForTitles = qMin(maxWidthForTitles, screen->availableGeometry().width() * 3 / 4);
176 }
177 const QFontMetrics fontMetrics = QFontMetrics(QFont());
178
179 QString title = nameValue +
" [" +
value +
']';
180 if (fontMetrics.boundingRect(title).width() > maxWidthForTitles) {
181
182
183 const int nameValueMaxWidth = maxWidthForTitles * 3 / 4;
184 const int nameWidth = fontMetrics.boundingRect(nameValue).width();
185 QString cutNameValue, cutValue;
186 if (nameWidth > nameValueMaxWidth) {
187 cutNameValue = fontMetrics.elidedText(nameValue, Qt::ElideMiddle, nameValueMaxWidth);
188 cutValue = fontMetrics.elidedText(
value, Qt::ElideMiddle, maxWidthForTitles - nameValueMaxWidth);
189 } else {
190 cutNameValue = nameValue;
191 cutValue = fontMetrics.elidedText(
value, Qt::ElideMiddle, maxWidthForTitles - nameWidth);
192 }
193 title = cutNameValue + " [" + cutValue + ']';
194 }
195 return title;
196}
float value(const T *src, size_t ch)