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 )