[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-i18n-doc
Subject: [parley/KDE/4.13] src/statistics: Calculates the sizes of the rectangles bounding the legend strings
From: Amarvir Singh <amarvir.ammu.93 () gmail ! com>
Date: 2014-03-12 5:32:42
Message-ID: E1WNbmU-0007Yc-C3 () scm ! kde ! org
[Download RAW message or body]
Git commit 1b44adb3947f1032b8d3d49b89742119b3ff8c8a by Amarvir Singh.
Committed on 12/03/2014 at 05:25.
Pushed by amarvirsingh into branch 'KDE/4.13'.
Calculates the sizes of the rectangles bounding the legend strings at runtime
BUG: 332028
CCMAIL: kde-i18n-doc@kde.org
M +17 -4 src/statistics/lessonstatistics.cpp
http://commits.kde.org/parley/1b44adb3947f1032b8d3d49b89742119b3ff8c8a
diff --git a/src/statistics/lessonstatistics.cpp \
b/src/statistics/lessonstatistics.cpp index 1fda906..57f665e 100644
--- a/src/statistics/lessonstatistics.cpp
+++ b/src/statistics/lessonstatistics.cpp
@@ -135,10 +135,23 @@ protected:
painter->drawLine(QLine(rect.x() + legendOffsetX + 7 * gradeBarWidth, \
rect.y() + legendOffsetY + 1, rect.x() + legendOffsetX + 7 * gradeBarWidth, rect.y() \
+ legendHeight + legendOffsetY - 1)); // Necessary hack to get the border on white. \
painter->setPen(Qt::black);
- const int textBoxWidth = 100;
- const int textBoxHeight = 40;
- painter->drawText(QRect(rect.x() + legendOffsetX - 80, rect.y() + \
legendOffsetY, textBoxWidth, textBoxHeight), Qt::AlignLeft | Qt::AlignVCenter, \
i18nc("adjective, The word has been properly and fully learned by the user","Fully \
learned"));
- painter->drawText(QRect(rect.x() + legendOffsetX + 330, rect.y() + \
legendOffsetY, textBoxWidth, textBoxHeight), Qt::AlignLeft | Qt::AlignVCenter, \
i18nc("adjective, The word has not even been practiced once by the user","Not \
practiced")); + QString leftString = i18nc("adjective, The word has been \
properly and fully learned by the user","Fully learned"); + QString \
rightString = i18nc("adjective, The word has not even been practiced once by the \
user","Not practiced"); + const int extraRoomInRectSize = 10;
+ const int horizontalDistanceFromLegend = 10;
+ QFontMetrics fontMetrics(painter->font());
+ // Calculate the size and position of the rectangle that will contain \
the string on the left side of the legend + QRect leftRect = \
fontMetrics.boundingRect(leftString); + leftRect.setWidth(leftRect.width() \
+ extraRoomInRectSize); + leftRect.setHeight(leftRect.height() + \
extraRoomInRectSize); + leftRect.moveBottomRight(QPoint(rect.x() + \
legendOffsetX - horizontalDistanceFromLegend, rect.y() + legendOffsetY + \
legendHeight)); + // Calculate the size and position of the rectangle that \
will contain the string on the right side of the legend + QRect rightRect \
= fontMetrics.boundingRect(rightString); + \
rightRect.setWidth(rightRect.width() + extraRoomInRectSize); + \
rightRect.setHeight(rightRect.height() + extraRoomInRectSize); + \
rightRect.moveBottomLeft(QPoint(rect.x() + legendOffsetX + legendWidth + \
horizontalDistanceFromLegend, rect.y() + legendOffsetY + legendHeight)); + \
painter->drawText(leftRect, Qt::AlignRight | Qt::AlignVCenter, leftString); + \
painter->drawText(rightRect, Qt::AlignLeft | Qt::AlignVCenter, rightString); }
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic