From 0a1048a445616b9c1347e2ed2fd15ed0f45e09df Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 20 Jun 2009 11:45:34 +0000 Subject: We won't get translated labels for Nepomuk literals in KDE 4.3.0... At least assure that camelcase labels like "fileLocation:" are replaced by "File location:" (thanks to Sebastian TrĂ¼g for the code) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/KDE/kdebase/apps/; revision=984190 --- src/panels/information/informationpanel.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src/panels/information/informationpanel.cpp') diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 30a41fefc..1fa5565d7 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -583,9 +583,11 @@ void InformationPanel::showMetaInfo() Nepomuk::Types::Property prop(it.key()); const QString label = prop.label(); if (settings.readEntry(label, true)) { - // TODO: use Nepomuk::formatValue(res, prop) if available + // TODO #1: use Nepomuk::formatValue(res, prop) if available // instead of it.value().toString() - m_metaTextLabel->add(label, it.value().toString()); + // TODO #2: using tunedLabel() is a workaround for KDE 4.3 until + // we get translated labels + m_metaTextLabel->add(tunedLabel(label), it.value().toString()); } ++it; } @@ -714,6 +716,25 @@ void InformationPanel::updatePhononWidget() } } +QString InformationPanel::tunedLabel(const QString& label) const +{ + QString tunedLabel; + const int labelLength = label.length(); + if (labelLength > 0) { + tunedLabel.reserve(labelLength); + tunedLabel = label[0].toUpper(); + for (int i = 1; i < labelLength; ++i) { + if (label[i].isUpper() && !label[i - 1].isSpace() && !label[i - 1].isUpper()) { + tunedLabel += ' '; + tunedLabel += label[i].toLower(); + } else { + tunedLabel += label[i]; + } + } + } + return tunedLabel; +} + void InformationPanel::init() { m_infoTimer = new QTimer(this); -- cgit v1.3