-bool InformationPanel::convertMetaInfo(const QString& key, QString& text) const
-{
- struct MetaKey {
- const char* key;
- QString text;
- };
-
- // sorted list of keys, where its data should be shown
- static const MetaKey keys[] = {
- { "http://freedesktop.org/standards/xesam/1.0/core#album", i18nc("@label", "Album:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#artist", i18nc("@label", "Artist:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#genre", i18nc("@label", "Genre:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#height", i18nc("@label", "Height:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#lineCount", i18nc("@label", "Lines:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#title", i18nc("@label", "Title:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#type", i18nc("@label", "Type:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#trackNumber", i18nc("@label", "Track:") },
- { "http://freedesktop.org/standards/xesam/1.0/core#width", i18nc("@label", "Width:") }
- };
-
- // do a binary search for the key...
- int top = 0;
- int bottom = sizeof(keys) / sizeof(MetaKey) - 1;
- while (top <= bottom) {
- const int middle = (top + bottom) / 2;
- const int result = key.compare(keys[middle].key);
- if (result < 0) {
- bottom = middle - 1;
- } else if (result > 0) {
- top = middle + 1;
- } else {
- text = keys[middle].text;
- return true;
- }
- }
-
- return false;
-}
-