From a43d3ae67ee5cceb0dbfc7662d079fb79663d4f6 Mon Sep 17 00:00:00 2001 From: abhishekm71 Date: Sun, 9 Feb 2014 16:51:45 +0000 Subject: [PATCH] Folio List: Long text spacing adjusted, title text left-aligned. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2841 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/diagramfoliolist.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/sources/diagramfoliolist.cpp b/sources/diagramfoliolist.cpp index edca455ec..a77092339 100644 --- a/sources/diagramfoliolist.cpp +++ b/sources/diagramfoliolist.cpp @@ -129,15 +129,40 @@ void DiagramFolioList::fillRow(QPainter *qp, const QRectF &row_rect, QString aut qreal x = row_rect.topLeft().x(); qreal y = row_rect.topLeft().y(); + QFontMetrics origFontMetrics(qp -> font()); + qreal origFontSize = qp -> font().pointSizeF(); + QFont workingFont(qp -> font()); + + // reduce the font size if the text entry is long + if (origFontMetrics.width(folio) > 0.95*colWidths[0]*row_rect.width()) + workingFont.setPointSizeF(origFontSize * 0.95*colWidths[0]*row_rect.width() / origFontMetrics.width(folio)); + else + workingFont.setPointSizeF(origFontSize); + qp -> setFont(workingFont); qp -> drawText(QRectF(x, y, colWidths[0]*row_rect.width(), row_rect.height()), Qt::AlignCenter, folio); x += colWidths[0]*row_rect.width(); - qp -> drawText(QRectF(x, y, colWidths[1]*row_rect.width(), row_rect.height()), Qt::AlignCenter, title); + if (origFontMetrics.width(title) > 0.95*colWidths[1]*row_rect.width()) + workingFont.setPointSizeF(origFontSize * 0.95*colWidths[1]*row_rect.width() / origFontMetrics.width(title)); + else + workingFont.setPointSizeF(origFontSize); + qp -> setFont(workingFont); + qp -> drawText(QRectF(x+0.01*row_rect.width(), y, colWidths[1]*row_rect.width()*0.99, row_rect.height()), Qt::AlignLeft | Qt::AlignVCenter, title); x += colWidths[1]*row_rect.width(); + if (origFontMetrics.width(author) > 0.95*colWidths[2]*row_rect.width()) + workingFont.setPointSizeF(origFontSize * 0.95*colWidths[2]*row_rect.width() / origFontMetrics.width(author)); + else + workingFont.setPointSizeF(origFontSize); + qp -> setFont(workingFont); qp -> drawText(QRectF(x, y, colWidths[2]*row_rect.width(), row_rect.height()), Qt::AlignCenter, author); x += colWidths[2]*row_rect.width(); + if (origFontMetrics.width(date) > 0.95*colWidths[3]*row_rect.width()) + workingFont.setPointSizeF(origFontSize * 0.95*colWidths[3]*row_rect.width() / origFontMetrics.width(date)); + else + workingFont.setPointSizeF(origFontSize); + qp -> setFont(workingFont); qp -> drawText(QRectF(x, y, colWidths[3]*row_rect.width(), row_rect.height()), Qt::AlignCenter, date); }