fix: show a single line in ProjectItem's desc. when there's no more space
Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
parent
b46c4a81e0
commit
5d27633821
@ -89,7 +89,12 @@ void ProjectItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
|
|||||||
auto num_lines = 1;
|
auto num_lines = 1;
|
||||||
|
|
||||||
// Get second line, elided if needed
|
// Get second line, elided if needed
|
||||||
if (cut_text.size() > 1 && rect.height() - title_height > opt.fontMetrics.height() * 2) {
|
if (cut_text.size() > 1) {
|
||||||
|
// 2.5x so because there should be some margin left from the 2x so things don't get too squishy.
|
||||||
|
if (rect.height() - title_height <= 2.5 * opt.fontMetrics.height()) {
|
||||||
|
// If there's not enough space, show only a single line, elided.
|
||||||
|
description = opt.fontMetrics.elidedText(description, opt.textElideMode, cut_text.at(0).first);
|
||||||
|
} else {
|
||||||
if (cut_text.size() > 2) {
|
if (cut_text.size() > 2) {
|
||||||
description += opt.fontMetrics.elidedText(cut_text.at(1).second, opt.textElideMode, cut_text.at(1).first);
|
description += opt.fontMetrics.elidedText(cut_text.at(1).second, opt.textElideMode, cut_text.at(1).first);
|
||||||
} else {
|
} else {
|
||||||
@ -97,6 +102,7 @@ void ProjectItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
|
|||||||
}
|
}
|
||||||
num_lines += 1;
|
num_lines += 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int description_x = rect.x();
|
int description_x = rect.x();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user