void component_selection_widget::refresh() { m_ui->lw_comps->clear(); auto comp_iter = m_edit_ent->begin(); while (comp_iter != m_edit_ent->end()) { QIcon icon(m_icons[comp_iter->first].c_str()); nsstring guid_ = hash_to_guid(comp_iter->first).substr(2); guid_[0] = toupper(guid_[0]); for (uint32 i = 0; i < guid_.size()-1; ++i) { if (guid_[i] == '_') { guid_[i] = ' '; guid_[i+1] = toupper(guid_[i+1]); } } QListWidgetItem * item = new QListWidgetItem(icon, guid_.c_str()); item->setData(Qt::UserRole, comp_iter->first); m_ui->lw_comps->addItem(item); ++comp_iter; } }
void select_res_dialog::show_type(uint32 guid_) { bbtk.map()->make_current(); m_ui.m_lw->clear(); nsstring restype = hash_to_guid(guid_).substr(2); restype[0] = toupper(restype[0]); for (uint32 i = 0; i < restype.size()-1; ++i) { if (restype[i] == '_') { restype[i] = ' '; restype[i+1] = toupper(restype[i+1]); } } setWindowTitle(("Select " + restype).c_str()); // show core resources auto manager = nse.core()->manager(nse.manager_id(guid_)); if (manager != NULL) { auto res_iter = manager->begin(); while (res_iter != manager->end()) { nsresource * res = manager->get(res_iter->first); QListWidgetItem * lw_item = new QListWidgetItem(res->name().c_str()); QString icon_path = res->icon_path().c_str(); if (!icon_path.isEmpty()) lw_item->setIcon(QIcon(icon_path)); else lw_item->setIcon(QIcon(m_default_icons[guid_].c_str())); lw_item->setData(Qt::UserRole, res->plugin_id()); lw_item->setData(Qt::UserRole+1, res->id()); m_ui.m_lw->addItem(lw_item); ++res_iter; } } auto plg_iter = nse.plugins()->begin(); while (plg_iter != nse.plugins()->end()) { nsplugin * plg = nse.plugin(plg_iter->first); if (guid_ == type_to_hash(nsplugin)) { QListWidgetItem * lw_item = new QListWidgetItem(plg->name().c_str()); QString icon_path = plg->icon_path().c_str(); if (!icon_path.isEmpty()) lw_item->setIcon(QIcon(icon_path)); else lw_item->setIcon(QIcon(m_default_icons[guid_].c_str())); lw_item->setData(Qt::UserRole, plg->plugin_id()); lw_item->setData(Qt::UserRole+1, plg->id()); m_ui.m_lw->addItem(lw_item); } else { auto manager = plg->manager(nse.manager_id(guid_)); if (manager == NULL) { ++plg_iter; continue; } auto res_iter = manager->begin(); while (res_iter != manager->end()) { nsresource * res = manager->get(res_iter->first); QListWidgetItem * lw_item = new QListWidgetItem(res->name().c_str()); QString icon_path = res->icon_path().c_str(); if (!icon_path.isEmpty()) lw_item->setIcon(QIcon(icon_path)); else lw_item->setIcon(QIcon(m_default_icons[guid_].c_str())); lw_item->setData(Qt::UserRole, res->plugin_id()); lw_item->setData(Qt::UserRole+1, res->id()); m_ui.m_lw->addItem(lw_item); ++res_iter; } } ++plg_iter; } }