From 816780e80943ef0ae6e645c1f912a5575fca9770 Mon Sep 17 00:00:00 2001 From: Georg Gadinger Date: Sun, 9 May 2021 21:08:04 +0200 Subject: skinned: use bitmap font if we really have all the characters available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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... --- src/plugins/Ui/skinned/skin.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/plugins/Ui/skinned/skin.cpp') 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() -- cgit v1.2.3-13-gbd6f