summaryrefslogtreecommitdiff
path: root/quacker
diff options
context:
space:
mode:
Diffstat (limited to 'quacker')
-rw-r--r--quacker/graphicalboard.cpp16
-rw-r--r--quacker/graphicalboard.h2
-rw-r--r--quacker/rackdisplay.cpp1
3 files changed, 17 insertions, 2 deletions
diff --git a/quacker/graphicalboard.cpp b/quacker/graphicalboard.cpp
index 595e830..e6a2599 100644
--- a/quacker/graphicalboard.cpp
+++ b/quacker/graphicalboard.cpp
@@ -192,7 +192,8 @@ void GraphicalBoardFrame::generateBoardPixmap(QPixmap *pixmap)
return;
}
- *pixmap = QPixmap(m_sizeForBoard);
+ *pixmap = QPixmap(m_sizeForBoard * devicePixelRatio());
+ pixmap->setDevicePixelRatio(devicePixelRatio());
QPainter painter(pixmap);
for (QSize currentTile(0, 0); currentTile.height() < m_boardSize.height(); currentTile.setHeight(currentTile.height() + 1))
@@ -413,6 +414,7 @@ void GraphicalBoardFrame::recreateWidgets()
{
TileWidget *newTile = new TileWidget;
+ newTile->setDevicePixelRatio(devicePixelRatio());
newTile->setLocation(currentTile);
newTile->setAlwaysShowVerboseLabels(m_alwaysShowVerboseLabels);
newTile->setOriginalInformation(emptyBoard.tileInformation(currentTile.height(), currentTile.width()));
@@ -425,6 +427,7 @@ void GraphicalBoardFrame::recreateWidgets()
{
MarkWidget *newMark = new MarkWidget;
+ newMark->setDevicePixelRatio(devicePixelRatio());
if (row == 0)
newMark->setCapstone();
else
@@ -436,7 +439,10 @@ void GraphicalBoardFrame::recreateWidgets()
for (int col = 1; col <= m_boardSize.width(); ++col)
{
MarkWidget *newMark = new MarkWidget;
+
+ newMark->setDevicePixelRatio(devicePixelRatio());
newMark->setCol(col);
+
addMark(QSize(col, 0), newMark);
}
}
@@ -1082,6 +1088,11 @@ void TileWidget::setLocation(const QSize &location)
m_location = location;
}
+void TileWidget::setDevicePixelRatio(qreal ratio)
+{
+ m_devicePixelRatio = ratio;
+}
+
void TileWidget::setCemented(bool cemented)
{
m_cemented = cemented;
@@ -1353,7 +1364,8 @@ QPixmap TileWidget::generateTilePixmap()
const QPointF midpoint((double)(currentSize.width() + borderWidth) / 2, (double)(currentSize.height() + borderWidth) / 2);
const QColor color(tileColor());
- QPixmap ret(currentSize);
+ QPixmap ret(currentSize * m_devicePixelRatio);
+ ret.setDevicePixelRatio(m_devicePixelRatio);
if (PixmapCacher::self()->contains(color))
ret = PixmapCacher::self()->get(color);
diff --git a/quacker/graphicalboard.h b/quacker/graphicalboard.h
index 508d430..3c37690 100644
--- a/quacker/graphicalboard.h
+++ b/quacker/graphicalboard.h
@@ -244,6 +244,7 @@ public:
virtual void setOriginalInformation(const Quackle::Board::TileInformation &originalInformation);
virtual void setLocation(const QSize &location);
+ virtual void setDevicePixelRatio(qreal ratio);
virtual void setCemented(bool cemented);
bool cemented() const;
@@ -292,6 +293,7 @@ protected:
QSize m_size;
QPixmap m_pixmap;
+ qreal m_devicePixelRatio = 1.0;
bool shouldShowVerboseLabels() const;
diff --git a/quacker/rackdisplay.cpp b/quacker/rackdisplay.cpp
index 732f94d..744cd34 100644
--- a/quacker/rackdisplay.cpp
+++ b/quacker/rackdisplay.cpp
@@ -140,6 +140,7 @@ GraphicalRack::setText(const Quackle::LetterString &text)
info.isOnRack = true;
info.letter = text[i];
info.tileType = Quackle::Board::LetterTile;
+ tile.setDevicePixelRatio(devicePixelRatio());
tile.setInformation(info);
tile.setSideLength(50);
tile.prepare();