- if (Phonon::BackendCapabilities::isMimeTypeAvailable(item.mimetype())) {
- if (m_phononWidget == 0) {
- m_phononWidget = new PhononWidget(this);
-
- QVBoxLayout* vBoxLayout = qobject_cast<QVBoxLayout*>(layout());
- Q_ASSERT(vBoxLayout != 0);
- vBoxLayout->insertWidget(3, m_phononWidget);
- }
- m_phononWidget->setUrl(item.url());
- } else {
- delete m_phononWidget;
- m_phononWidget = 0;
- }
- }
-}
-
-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;
-}
-
-KFileItem InformationPanel::fileItem() const
-{
- if (!m_fileItem.isNull()) {
- return m_fileItem;
- }
-
- if (!m_selection.isEmpty()) {
- Q_ASSERT(m_selection.count() == 1);
- return m_selection.first();
- }
-
- // no item is hovered and no selection has been done: provide
- // an item for the directory represented by m_shownUrl
- KFileItem item(KFileItem::Unknown, KFileItem::Unknown, m_shownUrl);
- item.refresh();
- return item;
-}