// Return the text value of a string property via PropertySheetStringValue static inline QString textPropertyValue(const QDesignerPropertySheetExtension *sheet, const QString &name) { const int index = sheet->indexOf(name); Q_ASSERT(index != -1); const PropertySheetStringValue ps = qvariant_cast<PropertySheetStringValue>(sheet->property(index)); return ps.value(); }
void TreeWidgetEditor::on_treeWidget_itemChanged(QTreeWidgetItem *item, int column) { if (m_updatingBrowser) return; PropertySheetStringValue val = qvariant_cast<PropertySheetStringValue>(item->data(column, Qt::DisplayPropertyRole)); val.setValue(item->text(column)); BoolBlocker block(m_updatingBrowser); item->setData(column, Qt::DisplayPropertyRole, QVariant::fromValue(val)); updateBrowser(); }
void FormWindowBase::reloadProperties() { pixmapCache()->clear(); iconCache()->clear(); QMapIterator<QDesignerPropertySheet *, QMap<int, bool> > itSheet(m_d->m_reloadableResources); while (itSheet.hasNext()) { QDesignerPropertySheet *sheet = itSheet.next().key(); QMapIterator<int, bool> itIndex(itSheet.value()); while (itIndex.hasNext()) { const int index = itIndex.next().key(); const QVariant newValue = sheet->property(index); if (qobject_cast<QLabel *>(sheet->object()) && sheet->propertyName(index) == QLatin1String("text")) { const PropertySheetStringValue newString = qvariant_cast<PropertySheetStringValue>(newValue); // optimize a bit, reset only if the text value might contain a reference to qt resources // (however reloading of icons other than taken from resources might not work here) if (newString.value().contains(QLatin1String(":/"))) { const QVariant resetValue = QVariant::fromValue(PropertySheetStringValue()); sheet->setProperty(index, resetValue); } } sheet->setProperty(index, newValue); } if (QTabWidget *tabWidget = qobject_cast<QTabWidget *>(sheet->object())) { const int count = tabWidget->count(); const int current = tabWidget->currentIndex(); const QString currentTabIcon = QLatin1String("currentTabIcon"); for (int i = 0; i < count; i++) { tabWidget->setCurrentIndex(i); const int index = sheet->indexOf(currentTabIcon); sheet->setProperty(index, sheet->property(index)); } tabWidget->setCurrentIndex(current); } else if (QToolBox *toolBox = qobject_cast<QToolBox *>(sheet->object())) { const int count = toolBox->count(); const int current = toolBox->currentIndex(); const QString currentItemIcon = QLatin1String("currentItemIcon"); for (int i = 0; i < count; i++) { toolBox->setCurrentIndex(i); const int index = sheet->indexOf(currentItemIcon); sheet->setProperty(index, sheet->property(index)); } toolBox->setCurrentIndex(current); } } QMapIterator<QDesignerPropertySheet *, QObject *> itSh(m_d->m_reloadablePropertySheets); while (itSh.hasNext()) { QObject *object = itSh.next().value(); reloadIconResources(iconCache(), object); } }
// --- StyleSheetPropertyEditorDialog StyleSheetPropertyEditorDialog::StyleSheetPropertyEditorDialog(QWidget *parent, QDesignerFormWindowInterface *fw, QWidget *widget): StyleSheetEditorDialog(fw->core(), parent), m_fw(fw), m_widget(widget) { Q_ASSERT(m_fw != 0); QPushButton *apply = buttonBox()->addButton(QDialogButtonBox::Apply); QObject::connect(apply, SIGNAL(clicked()), this, SLOT(applyStyleSheet())); QObject::connect(buttonBox(), SIGNAL(accepted()), this, SLOT(applyStyleSheet())); QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(m_fw->core()->extensionManager(), m_widget); Q_ASSERT(sheet != 0); const int index = sheet->indexOf(QLatin1String(styleSheetProperty)); const PropertySheetStringValue value = qVariantValue<PropertySheetStringValue>(sheet->property(index)); setText(value.value()); }