void PluginChoooserWidget::loadImpl() { clear(); Config group = Config().group("plugins/list"); QStandardItem *parent_item = m_model->invisibleRootItem(); QList<QWeakPointer<Plugin> > plugins = pluginsList(); QStringList helper; for (int i = 0; i < plugins.size(); i++) { const PluginInfo &info = plugins.at(i).data()->info(); QLatin1String class_name(plugins.at(i).data()->metaObject()->className()); if (!m_plugin_items.contains(info.name())) { QIcon icon = info.icon(); if (icon.isNull() || !icon.availableSizes().count()) icon = Icon("applications-system"); QString name = info.name(); int index = qLowerBound(helper, name) - helper.constBegin(); helper.insert(index, name); ServiceItem *item = new ServiceItem(icon, name); item->setToolTip(html(info)); item->setCheckable(true); item->setData(true,ServiceItem::ExclusiveRole); item->setData(info.description().toString(), DescriptionRole); item->setCheckState((group.value(class_name, true) ? Qt::Checked : Qt::Unchecked)); parent_item->insertRow(index, item); m_plugin_items.insert(class_name, item); m_plugins.insert(class_name, plugins.at(i).data()); } } }
void ProtocolChooserWidget::loadImpl() { clear(); ConfigGroup group = Config().group("protocols"); QVariantMap selected = group.value("list", QVariantMap()); QStandardItem *parent_item = m_model->invisibleRootItem(); ExtensionInfoList exts = extensionList(); for (int i = 0; i < exts.size(); i++) { const ExtensionInfo &info = exts.at(i); const QMetaObject *meta = info.generator()->metaObject(); QString name = QString::fromLatin1(MetaObjectBuilder::info(meta, "Protocol")); if (name.isEmpty()) continue; if (!m_protocol_items.contains(name)) { ServiceItem *item = new ServiceItem(Icon("applications-system") ,name); item->setData(true,ServiceItem::ExclusiveRole); parent_item->appendRow(item); m_protocol_items.insert(name,item); } QIcon icon = Icon("applications-system"); //TODO Make normal names for the implementation of protocols ServiceItem *item = new ServiceItem(icon,info.name()); //ServiceItem *item = new ServiceItem(icon,info.name()); item->setToolTip(ServiceChooser::html(info)); item->setCheckable(true); item->setData(info.description().toString(),DescriptionRole); if (selected.value(name).toString() == ServiceChooser::className(info)) item->setCheckState(Qt::Checked); item->setData(ServiceChooser::className(info),ServiceItem::ExtentionInfoRole); m_protocol_items.value(name)->appendRow(item); } }
void ServiceChoooserWidget::loadImpl() { clear(); ConfigGroup group = Config().group("services"); QVariantMap selected = group.value("list", QVariantMap()); QStandardItem *parent_item = m_model->invisibleRootItem(); ExtensionInfoList exts = extensionList(); QStringList helper; for (int i = 0; i < exts.size(); ++i) { const ExtensionInfo &info = exts.at(i); const char *serviceName = MetaObjectBuilder::info(info.generator()->metaObject(), "Service"); if (serviceName && *serviceName) { if (!m_service_items.contains(serviceName)) { QString localizedName = QT_TRANSLATE_NOOP("Service",serviceName).toString(); int index = qLowerBound(helper, localizedName) - helper.constBegin(); helper.insert(index, localizedName); ServiceItem *item = new ServiceItem(Icon(serviceIcon(serviceName)),localizedName); item->setData(true,ServiceItem::ExclusiveRole); parent_item->insertRow(index, item); m_service_items.insert(serviceName,item); } QIcon icon = !info.icon().name().isEmpty() ? info.icon() : Icon("applications-system"); ServiceItem *item = new ServiceItem(icon,info.name()); item->setToolTip(ServiceChoooser::html(info)); item->setCheckable(true); item->setData(info.description().toString(),DescriptionRole); if (selected.value(serviceName).toString() == ServiceChoooser::className(info)) item->setCheckState(Qt::Checked); item->setData(qVariantFromValue(info), ServiceItem::ExtentionInfoRole); m_service_items.value(serviceName)->appendRow(item); } } }