+void SubWindow::on_item_clicked(const QModelIndex& index)
+{
+ if (!index.isValid())
+ return;
+
+ QModelIndex id_index = index.model()->index(index.row(), 2, index.parent());
+ QString decoder_name = index.model()->data(id_index, Qt::DisplayRole).toString();
+
+ if (decoder_name.isEmpty())
+ return;
+
+ const srd_decoder* d = get_srd_decoder_from_id(decoder_name);
+
+ const QString id = QString::fromUtf8(d->id);
+ const QString longname = QString::fromUtf8(d->longname);
+ const QString desc = QString::fromUtf8(d->desc);
+ const QString doc = QString::fromUtf8(srd_decoder_doc_get(d));
+
+ QString tags;
+ GSList* l = g_slist_copy((GSList*)d->tags);
+ for (GSList* li = l; li; li = li->next) {
+ QString s = (li == l) ?
+ tr((char*)li->data) :
+ QString(tr(", %1")).arg(tr((char*)li->data));
+ tags.append(s);
+ }
+ g_slist_free(l);
+
+ info_label_header_->setText(QString("<span style='font-size:large;font-weight:bold'>%1 (%2)</span><br>%3")
+ .arg(longname, id, desc));
+ info_label_body_->setText(doc);
+ info_label_footer_->setText(tr("<p align='right'>Tags: %1</p>").arg(tags));
+}
+