aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/skin.cpp
diff options
context:
space:
mode:
authorGeorg Gadinger <nilsding@nilsding.org>2021-05-09 21:08:04 +0200
committerGeorg Gadinger <nilsding@nilsding.org>2021-11-26 21:01:42 +0100
commit816780e80943ef0ae6e645c1f912a5575fca9770 (patch)
tree7521c95b449c0dd73dca0c89c560165fc544d8f9 /src/plugins/Ui/skinned/skin.cpp
parent596e820fa0e8bca3c53a00481c34ac6f047160ee (diff)
downloadqmmp-816780e80943ef0ae6e645c1f912a5575fca9770.tar.gz
qmmp-816780e80943ef0ae6e645c1f912a5575fca9770.tar.bz2
qmmp-816780e80943ef0ae6e645c1f912a5575fca9770.zip
skinned: use bitmap font if we really have all the characters availableHEADpatches
This makes tracks from e.g. "Turmion Kätilöt" or "Die Ärzte" display using the bitmap font. Since the characters seem to be UTF-8 anyway, it seems to be fine in my initial tests...
Diffstat (limited to 'src/plugins/Ui/skinned/skin.cpp')
-rw-r--r--src/plugins/Ui/skinned/skin.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/Ui/skinned/skin.cpp b/src/plugins/Ui/skinned/skin.cpp
index f1b6f8b79..425a34d45 100644
--- a/src/plugins/Ui/skinned/skin.cpp
+++ b/src/plugins/Ui/skinned/skin.cpp
@@ -185,6 +185,12 @@ const QRegion Skin::getRegion(uint r) const
return m_regions[r];
}
+const bool Skin::canUseBitmapFont(const QString& s) const
+{
+ qDebug("Skin: canUseBitmapFont %s", m_bitmapLetters.exactMatch(s) ? "true" : "false");
+ return m_bitmapLetters.exactMatch(s);
+}
+
void Skin::setSkin (const QString& path)
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
@@ -795,6 +801,15 @@ void Skin::loadLetters(void)
/* text background */
//m_items->insert (TEXTBG, letters[2][6]);
+
+ // set up a regexp that matches all letters with a mapping
+ QStringList regexpChars;
+ for (auto &ch : m_letters.keys())
+ {
+ regexpChars.append(ch);
+ }
+ m_bitmapLetters = QRegExp("[" + QRegExp::escape(regexpChars.join("")) + "]+");
+ m_bitmapLetters.setCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
}
void Skin::loadMonoSter()