Qt4

 view release on metacpan or  search on metacpan

qtcore/tools/puic/perl/plwriteinitialization.cpp  view on Meta::CPAN

    case DomProperty::Pixmap:
        type = QLatin1String("Qt::Pixmap");
        s = p->elementPixmap()->text();
        break;
    default:
        qWarning() << "Warning: Unknown icon format encountered. The ui-file was generated with a too-recent version of Designer.";
        return QLatin1String("QIcon()");
        break;
    }
    return pixCall(type, s);
}

QString WriteInitialization::pixCall(const QString &t, const QString &text) const
{
    QString type = t;
    if (text.isEmpty()) {
        type += QLatin1String("()");
        return type;
    }
    if (const DomImage *image = findImage(text)) {

        if (m_option.extractImages) {
            const QString format = image->elementData()->attributeFormat();
            const QString extension = format.left(format.indexOf(QLatin1Char('.'))).toLower();
            QString rc = QLatin1String("Qt::Pixmap(\":/");
            rc += m_generatedClass;
            rc += QLatin1String("/images/");
            rc += text;
            rc += QLatin1Char('.');
            rc += extension;
            rc += QLatin1String("\")");
            return rc;
        }

        QString rc = WriteIconInitialization::iconFromDataFunction();
        rc += QLatin1Char('(');
        rc += text;
        rc += QLatin1String("_ID)");
        return rc;
    }

    QString pixFunc = m_uic->pixmapFunction();
    type += pixFunc;
    type += QLatin1Char('(');
    type += fixString(text, m_option.indent);
    type += QLatin1String(")");
    return type;
}

void WriteInitialization::initializeComboBox(DomWidget *w)
{
    QString varNameNoSigil = m_driver->findOrInsertWidget(w);
    QString varName = toPerlIdentifier(varNameNoSigil);
    const QString className = w->attributeClass();

    const QList<DomItem*> items = w->elementItem();

    if (items.isEmpty())
        return;

    // If possible use qcombobox's addItems() which is much faster than a bunch of addItem() calls
    bool noIcons = true;
    QStringList list;
    for (int i=0; i<items.size(); ++i) {
        const DomItem *item = items.at(i);
        const DomPropertyMap properties = propertyMap(item->elementProperty());
        const DomProperty *text = properties.value(QLatin1String("text"));
        const DomProperty *pixmap = properties.value(QLatin1String("icon"));
        if (pixmap != 0) {
            noIcons = false;
            break;
        }
        list.append(trCall(text->elementString()));
    }

    if (noIcons) {
        m_refreshOut << m_option.indent << "$self->{" << varNameNoSigil << "}->insertItems(0, [" ;
        for (int i = 0; i < list.size(); ++i) {
            m_refreshOut << list.at(i);
            if (i != (list.size() - 1)) {
                m_refreshOut << ",\n" << m_option.indent << m_option.indent;
            }
        }
        m_refreshOut << "]);\n";
    } else {
        for (int i = 0; i < items.size(); ++i) {
            const DomItem *item = items.at(i);
            const DomPropertyMap properties = propertyMap(item->elementProperty());
            const DomProperty *text = properties.value(QLatin1String("text"));
            const DomProperty *icon = properties.value(QLatin1String("icon"));

            QString iconValue;
            if (icon)
                iconValue = iconCall(icon);

            m_output << m_option.indent << varName << "->addItem(";
            if (icon)
                m_output << iconValue << ", ";
            m_output << "\"\");\n";

            if (!toString(text->elementString()).isEmpty())
                m_refreshOut << m_option.indent << "$self->{" << varNameNoSigil << "}->setItemText(" << i << ", " << trCall(text->elementString()) << ");\n";
        }
        m_refreshOut << "\n";
    }
}

QString WriteInitialization::disableSorting(DomWidget *w, const QString &varName)
{
    // turn off sortingEnabled to force programmatic item order (setItem())
    QString tempName;
    if (!w->elementItem().isEmpty()) {
        tempName = toPerlIdentifier(m_driver->unique(QLatin1String("__sortingEnabled")));
        m_refreshOut << "\n";
        m_refreshOut << m_option.indent << "my " << tempName
            << " = " << "$self->{" << varName << "}->isSortingEnabled();\n";
        m_refreshOut << m_option.indent << "$self->{" << varName << "}->setSortingEnabled( 0 );\n";
    }
    return tempName;
}



( run in 0.902 second using v1.01-cache-2.11-cpan-39bf76dae61 )