summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2009-04-27 17:48:49 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2009-04-27 17:48:49 +0000
commitd111f3b66f6368a77aafc1b28cf29e36c8e19289 (patch)
tree96d324de3359bda91881a9546514dde719daae12
parent40137a9c07ee7e1f1eb1be907b285656d427f022 (diff)
downloadrockbox-d111f3b66f6368a77aafc1b28cf29e36c8e19289.zip
rockbox-d111f3b66f6368a77aafc1b28cf29e36c8e19289.tar.gz
rockbox-d111f3b66f6368a77aafc1b28cf29e36c8e19289.tar.bz2
rockbox-d111f3b66f6368a77aafc1b28cf29e36c8e19289.tar.xz
Qt always assumes ini files to use Latin1 encoding but the theme site uses utf-8. Explicitly convert texts displayed to the user. Fixes non-ascii characters showing up incorrectly.
Replace some HTML entities for the themes list as that isn't parsed as HTML. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20811 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/themesinstallwindow.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/rbutil/rbutilqt/themesinstallwindow.cpp b/rbutil/rbutilqt/themesinstallwindow.cpp
index 77dd21d..669482e 100644
--- a/rbutil/rbutilqt/themesinstallwindow.cpp
+++ b/rbutil/rbutilqt/themesinstallwindow.cpp
@@ -128,8 +128,14 @@ void ThemesInstallWindow::downloadDone(bool error)
continue;
}
qDebug() << "adding theme:" << tl.at(i);
+ // convert to unicode and replace HTML-specific entities
+ QByteArray raw = iniDetails.value("name").toByteArray();
+ QTextCodec* codec = QTextCodec::codecForHtml(raw);
+ QString name = codec->toUnicode(raw);
+ name.replace("&quot;", "\"").replace("&amp;", "&");
+ name.replace("&lt;", "<").replace("&gt;", ">");
QListWidgetItem *w = new QListWidgetItem;
- w->setData(Qt::DisplayRole, iniDetails.value("name").toString().trimmed());
+ w->setData(Qt::DisplayRole, name.trimmed());
w->setData(Qt::UserRole, tl.at(i));
ui.listThemes->addItem(w);
@@ -191,12 +197,13 @@ void ThemesInstallWindow::updateDetails(QListWidgetItem* cur, QListWidgetItem* p
+ iniDetails.value("image").toString()));
QString text;
- text = tr("<b>Author:</b> %1<hr/>").arg(iniDetails.value("author",
- tr("unknown")).toString());
- text += tr("<b>Version:</b> %1<hr/>").arg(iniDetails.value("version",
- tr("unknown")).toString());
- text += tr("<b>Description:</b> %1<hr/>").arg(iniDetails.value("about",
- tr("no description")).toString());
+ QTextCodec* codec = QTextCodec::codecForName("UTF-8");
+ text = tr("<b>Author:</b> %1<hr/>").arg(codec->toUnicode(iniDetails
+ .value("author", tr("unknown")).toByteArray()));
+ text += tr("<b>Version:</b> %1<hr/>").arg(codec->toUnicode(iniDetails
+ .value("version", tr("unknown")).toByteArray()));
+ text += tr("<b>Description:</b> %1<hr/>").arg(codec->toUnicode(iniDetails
+ .value("about", tr("no description")).toByteArray()));
text.trimmed();
text.replace("\n", "<br/>");