Encapsulate the font bitmap
This commit is contained in:
11
x26model.cpp
11
x26model.cpp
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "x26model.h"
|
||||
|
||||
#include <QIcon>
|
||||
#include <QList>
|
||||
|
||||
#include "x26commands.h"
|
||||
@@ -374,22 +375,24 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
break;
|
||||
case 0x21: // G1 mosaic character
|
||||
if (triplet.data() & 0x20)
|
||||
return m_fontBitmap.rawBitmap()->copy((triplet.data()-32)*12, 24*10, 12, 10);
|
||||
// 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));
|
||||
break;
|
||||
case 0x22: // G3 mosaic character at level 1.5
|
||||
case 0x2b: // G3 mosaic character at level >=2.5
|
||||
if (triplet.data() >= 0x20)
|
||||
return m_fontBitmap.rawBitmap()->copy((triplet.data()-32)*12, 26*10, 12, 10);
|
||||
return QIcon(m_fontBitmap.charBitmap(triplet.data(), 26));
|
||||
break;
|
||||
case 0x2f: // G2 character
|
||||
if (triplet.data() >= 0x20)
|
||||
return m_fontBitmap.rawBitmap()->copy((triplet.data()-32)*12, m_parentMainWidget->pageDecode()->cellG2CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())*10, 12, 10);
|
||||
return QIcon(m_fontBitmap.charBitmap(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 m_fontBitmap.rawBitmap()->copy((triplet.data()-32)*12, m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())*10, 12, 10);
|
||||
return QIcon(m_fontBitmap.charBitmap(triplet.data(), m_parentMainWidget->pageDecode()->cellG0CharacterSet(triplet.activePositionRow(), triplet.activePositionColumn())));
|
||||
}
|
||||
|
||||
if (role == Qt::EditRole && index.column() == 2)
|
||||
|
||||
Reference in New Issue
Block a user