Les proprietes des elements affichent desormais la position de l'element dans la grille.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@662 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2009-05-20 21:29:17 +00:00
parent 2ddd1420e3
commit f796eeebe6
11 changed files with 180 additions and 3 deletions

View File

@@ -17,6 +17,7 @@
*/
#include <QPainter>
#include "borderinset.h"
#include "diagramposition.h"
#include "qetapp.h"
#include "math.h"
@@ -426,6 +427,36 @@ void BorderInset::adjustInsetToColumns() {
setInsetWidth(diagramWidth());
}
/**
@param pos Position cartesienne (ex : 10.3, 45.2) a transformer en position
dans la grille (ex : B2)
@return la position dans la grille correspondant a pos
*/
DiagramPosition BorderInset::convertPosition(const QPointF &pos) {
// recupere le rectangle quadrille par les en-tetes
QRectF grid_rect(
rowsHeaderWidth(),
columnsHeaderHeight(),
diagramWidth(),
diagramHeight()
);
if (!grid_rect.contains(pos)) {
return(DiagramPosition("", 0));
}
QPointF relative_pos = pos - grid_rect.topLeft();
int row_number = ceil(relative_pos.x() / columnsWidth());
int column_number = ceil(relative_pos.y() / rowsHeight());
QString letter = "A";
for (int i = 1 ; i < column_number ; ++ i) {
letter = incrementLetters(letter);
}
return(DiagramPosition(letter, row_number));
}
QString BorderInset::incrementLetters(const QString &string) {
if (string.isEmpty()) {
return("A");