コード例 #1
0
ファイル: AbstractConfig.cpp プロジェクト: arntanguy/fotowall
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);
    }
コード例 #2
0
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;
}