summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brasser <mbrasser@ford.com>2019-08-29 17:22:29 -0500
committerMichael Brasser <mbrasser@ford.com>2019-08-30 13:02:07 -0500
commita802fd74e010a6d8ebfc2243232e0373d67f3df6 (patch)
tree904fee7e2ab2c9ae8079bd51fdf5191fd17e5d94
parent151694c095e05e1c735f96f60c799cc717e93dc1 (diff)
Minor fixes for QSprite* classes
* Fix off-by-one errors * Allow non-integer cell sizes Change-Id: I081cb5050a6805cbc9183fb2a7a1ee07b5594187 Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r--src/extras/defaults/qspritegrid.cpp6
-rw-r--r--src/extras/defaults/qspritegrid_p.h2
-rw-r--r--src/extras/defaults/qspritesheet.cpp4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/extras/defaults/qspritegrid.cpp b/src/extras/defaults/qspritegrid.cpp
index 31d4dd5c0..15016a891 100644
--- a/src/extras/defaults/qspritegrid.cpp
+++ b/src/extras/defaults/qspritegrid.cpp
@@ -57,7 +57,7 @@ QSpriteGridPrivate::QSpriteGridPrivate()
int QSpriteGridPrivate::maxIndex() const
{
- return m_numColumns * m_numRows;
+ return m_numColumns * m_numRows - 1;
}
void QSpriteGridPrivate::updateSizes()
@@ -65,10 +65,10 @@ void QSpriteGridPrivate::updateSizes()
Q_Q(QSpriteGrid);
if (m_texture && m_numColumns && m_numRows) {
m_textureSize = QSize(m_texture->width(), m_texture->height());
- m_cellSize = QSize(m_texture->width() / m_numColumns, m_texture->height() / m_numRows);
+ m_cellSize = QSizeF((float) m_texture->width() / m_numColumns, (float) m_texture->height() / m_numRows);
} else {
m_textureSize = QSize();
- m_cellSize = QSize();
+ m_cellSize = QSizeF();
}
if (m_cellSize.isEmpty() || m_numColumns == 0 || m_numRows == 0) {
diff --git a/src/extras/defaults/qspritegrid_p.h b/src/extras/defaults/qspritegrid_p.h
index 6135ebf0d..8d05b2bcc 100644
--- a/src/extras/defaults/qspritegrid_p.h
+++ b/src/extras/defaults/qspritegrid_p.h
@@ -69,7 +69,7 @@ class QSpriteGridPrivate : public QAbstractSpriteSheetPrivate
int m_numColumns;
int m_numRows;
- QSize m_cellSize;
+ QSizeF m_cellSize;
Q_DECLARE_PUBLIC(QSpriteGrid)
};
diff --git a/src/extras/defaults/qspritesheet.cpp b/src/extras/defaults/qspritesheet.cpp
index 87f664ce4..8eb1e33e6 100644
--- a/src/extras/defaults/qspritesheet.cpp
+++ b/src/extras/defaults/qspritesheet.cpp
@@ -56,7 +56,7 @@ QSpriteSheetPrivate::QSpriteSheetPrivate()
int QSpriteSheetPrivate::maxIndex() const
{
- return m_sprites.count();
+ return m_sprites.count() - 1;
}
void QSpriteSheetPrivate::updateSizes()
@@ -77,7 +77,7 @@ void QSpriteSheetPrivate::updateSizes()
return;
}
- if (m_currentIndex < 0 || m_currentIndex > m_sprites.size()) {
+ if (m_currentIndex < 0 || m_currentIndex >= m_sprites.size()) {
m_currentIndex = 0;
emit q->currentIndexChanged(m_currentIndex);
}