void AbstractConfig::populateFrameList() { m_commonUi->framesList->clear(); // add frame items to the listview foreach (quint32 frameClass, FrameFactory::classes()) { // make icon from frame preview QIcon icon; Frame * frame = FrameFactory::createFrame(frameClass); if (!frame) { // generate the 'empty frame' preview QPixmap emptyPixmap(32, 32); emptyPixmap.fill(Qt::transparent); QPainter pixPainter(&emptyPixmap); pixPainter.drawLine(4, 4, 27, 27); pixPainter.drawLine(4, 27, 27, 4); pixPainter.end(); icon = emptyPixmap; } else { icon = frame->preview(32, 32); delete frame; } // add the item to the list (and attach it the class) QListWidgetItem * item = new QListWidgetItem(icon, QString(), m_commonUi->framesList); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->setData(Qt::UserRole, frameClass); }
void AddLayoutDialog::languageChanged(int langIdx) { QString lang = layoutDialogUi->languageComboBox->itemData(langIdx).toString(); if( lang == selectedLanguage ) return; QPixmap emptyPixmap(layoutDialogUi->layoutComboBox->iconSize()); emptyPixmap.fill(Qt::transparent); layoutDialogUi->layoutComboBox->clear(); int defaultIndex = -1; int i = 0; foreach(const LayoutInfo* layoutInfo, rules->layoutInfos) { if( lang.isEmpty() || layoutInfo->isLanguageSupportedByLayout(lang) ) { if( flags ) { QIcon icon(flags->getIcon(layoutInfo->name)); if( icon.isNull() ) { icon = QIcon(emptyPixmap); // align text with no icons } layoutDialogUi->layoutComboBox->addItem(icon, layoutInfo->description, layoutInfo->name); } else { layoutDialogUi->layoutComboBox->addItem(layoutInfo->description, layoutInfo->name); } // try to guess best default layout selection for given language if( ! lang.isEmpty() && defaultIndex == -1 && layoutInfo->isLanguageSupportedByDefaultVariant(lang) ) { defaultIndex = i; } i++; } } if( defaultIndex == -1 ) { defaultIndex = 0; } layoutDialogUi->layoutComboBox->model()->sort(0); layoutDialogUi->layoutComboBox->setCurrentIndex(defaultIndex); layoutChanged(defaultIndex); selectedLanguage = lang; }