void ConnectDialog::populateSignalList() { QString selectedName; if (const QListWidgetItem *item = m_ui.signalList->currentItem()) selectedName = item->text(); m_ui.signalList->clear(); QMap<QString, QString> memberToClassName = getSignals(m_formWindow->core(), m_source, showAllSignalsSlots()); QFont font = QApplication::font(); font.setItalic(true); QVariant variantFont = QVariant::fromValue(font); QListWidgetItem *curr = 0; QMap<QString, QString>::ConstIterator itMember = memberToClassName.constBegin(); const QMap<QString, QString>::ConstIterator itMemberEnd = memberToClassName.constEnd(); while (itMember != itMemberEnd) { const QString member = itMember.key(); const bool qt3Signal = isQt3Signal(m_formWindow->core(), m_source, member); QListWidgetItem *item = new QListWidgetItem(m_ui.signalList); item->setText(member); if (!selectedName.isEmpty() && member == selectedName) curr = item; if (qt3Signal) { item->setData(Qt::FontRole, variantFont); item->setData(Qt::ForegroundRole, Qt::red); } ++itMember; } if (curr) { m_ui.signalList->setCurrentItem(curr); } else { selectedName.clear(); } populateSlotList(selectedName); if (!curr) m_ui.slotList->setEnabled(false); }
QVariant ConnectionModel::data(const QModelIndex &index, int role) const { if ((role != Qt::DisplayRole && role != Qt::EditRole && role != Qt::FontRole && role != Qt::ForegroundRole) || !m_editor) return QVariant(); if (index.row() < 0 || index.row() >= m_editor->connectionCount()) { return QVariant(); } const SignalSlotConnection *con = static_cast<SignalSlotConnection*>(m_editor->connection(index.row())); Q_ASSERT(con != 0); if (role == Qt::FontRole || role == Qt::ForegroundRole) { bool isQt3Member = false; if (index.column() == 1) { QDesignerFormEditorInterface *core = m_editor->formWindow()->core(); isQt3Member = isQt3Signal(core, con->object(CETypes::EndPoint::Source), con->signal()); } else if (index.column() == 3) { QDesignerFormEditorInterface *core = m_editor->formWindow()->core(); isQt3Member = isQt3Signal(core, con->object(CETypes::EndPoint::Target), con->slot()); } if (isQt3Member) { if (role == Qt::ForegroundRole) return Qt::red; QFont font = QApplication::font(); font.setItalic(true); return font; } return QVariant(); } static const QVariant senderDefault = tr("<sender>"); static const QVariant signalDefault = tr("<signal>"); static const QVariant receiverDefault = tr("<receiver>"); static const QVariant slotDefault = tr("<slot>"); switch (index.column()) { case 0: { const QString sender = con->sender(); if (sender.isEmpty()) return senderDefault; return sender; } case 1: { const QString signal = con->signal(); if (signal.isEmpty()) return signalDefault; return signal; } case 2: { const QString receiver = con->receiver(); if (receiver.isEmpty()) return receiverDefault; return receiver; } case 3: { const QString slot = con->slot(); if (slot.isEmpty()) return slotDefault; return slot; } } return QVariant(); }