diff options
| author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-04-27 17:48:49 +0000 |
|---|---|---|
| committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-04-27 17:48:49 +0000 |
| commit | d111f3b66f6368a77aafc1b28cf29e36c8e19289 (patch) | |
| tree | 96d324de3359bda91881a9546514dde719daae12 | |
| parent | 40137a9c07ee7e1f1eb1be907b285656d427f022 (diff) | |
| download | rockbox-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.cpp | 21 |
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(""", "\"").replace("&", "&"); + name.replace("<", "<").replace(">", ">"); 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/>"); |