From 23a0d3c47eb7822118e6324986bde5c5529fc33e Mon Sep 17 00:00:00 2001 From: "G.K.MacGregor" Date: Tue, 2 Jul 2024 15:52:44 +0100 Subject: [PATCH] Add QIcon to font encapsulation --- render.h | 2 ++ x26model.cpp | 12 +++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/render.h b/render.h index 39003cb..225cc06 100644 --- a/render.h +++ b/render.h @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -35,6 +36,7 @@ public: QImage *image() const { return s_fontImage; } QPixmap charBitmap(int c, int s) const { return s_fontBitmap->copy((c-32)*12, s*10, 12, 10); } + QIcon charIcon(int c, int s) const { return QIcon(charBitmap(c, s)); } private: static int s_instances; diff --git a/x26model.cpp b/x26model.cpp index 58ad8b7..621f900 100644 --- a/x26model.cpp +++ b/x26model.cpp @@ -376,27 +376,25 @@ QVariant X26Model::data(const QModelIndex &index, int role) const break; case 0x21: // G1 mosaic character if (triplet.data() & 0x20) - // Returning the bitmap as-is doesn't seem to work here - // but putting it inside a QIcon... does? - return QIcon(m_fontBitmap.charBitmap(triplet.data(), 24)); + return m_fontBitmap.charIcon(triplet.data(), 24); else if (triplet.data() >= 0x20) // Blast-through - return QIcon(m_fontBitmap.charBitmap(triplet.data(), m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn()))); + return m_fontBitmap.charIcon(triplet.data(), m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())); break; case 0x22: // G3 mosaic character at level 1.5 case 0x2b: // G3 mosaic character at level >=2.5 if (triplet.data() >= 0x20) - return QIcon(m_fontBitmap.charBitmap(triplet.data(), 26)); + return m_fontBitmap.charIcon(triplet.data(), 26); break; case 0x2f: // G2 character if (triplet.data() >= 0x20) - return QIcon(m_fontBitmap.charBitmap(triplet.data(), m_parentMainWidget->pageDecode()->cellG2CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn()))); + return m_fontBitmap.charIcon(triplet.data(), m_parentMainWidget->pageDecode()->cellG2CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())); break; default: if (triplet.modeExt() == 0x29 || (triplet.modeExt() >= 0x30 && triplet.modeExt() <= 0x3f)) // G0 character or G0 diacritical mark if (triplet.data() >= 0x20) - return QIcon(m_fontBitmap.charBitmap(triplet.data(), m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn()))); + return m_fontBitmap.charIcon(triplet.data(), m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())); } if (role == Qt::EditRole && index.column() == 2)