bool SignalSlotDialog::editPromotedClass(QDesignerFormEditorInterface *core, const QString &promotedClassName, QObject *object, QWidget *parent, FocusMode mode) { WidgetDataBase *db = qobject_cast<WidgetDataBase *>(core->widgetDataBase()); if (!db) return false; const int index = core->widgetDataBase()->indexOfClassName(promotedClassName); if (index == -1) return false; WidgetDataBaseItem* item = static_cast<WidgetDataBaseItem*>(db->item(index)); SignalSlotDialogData slotData; SignalSlotDialogData signalData; existingMethodsFromMemberSheet(core, object, slotData.m_existingMethods, signalData.m_existingMethods); slotData.m_fakeMethods = item->fakeSlots(); signalData.m_fakeMethods = item->fakeSignals(); const QStringList oldSlots = slotData.m_fakeMethods; const QStringList oldSignals = signalData.m_fakeMethods; SignalSlotDialog dlg(core->dialogGui(), parent, mode); dlg.setWindowTitle(tr("Signals/Slots of %1").arg(promotedClassName)); if (dlg.showDialog(slotData, signalData) == QDialog::Rejected) return false; if (oldSlots == slotData.m_fakeMethods && oldSignals == signalData.m_fakeMethods) return false; item->setFakeSlots(slotData.m_fakeMethods); item->setFakeSignals(signalData.m_fakeMethods); return true; }