void QtGradientView::setGradientManager(QtGradientManager *manager) { if (m_manager == manager) return; if (m_manager) { disconnect(m_manager, SIGNAL(gradientAdded(QString,QGradient)), this, SLOT(slotGradientAdded(QString,QGradient))); disconnect(m_manager, SIGNAL(gradientRenamed(QString,QString)), this, SLOT(slotGradientRenamed(QString,QString))); disconnect(m_manager, SIGNAL(gradientChanged(QString,QGradient)), this, SLOT(slotGradientChanged(QString,QGradient))); disconnect(m_manager, SIGNAL(gradientRemoved(QString)), this, SLOT(slotGradientRemoved(QString))); m_ui.listWidget->clear(); m_idToItem.clear(); m_itemToId.clear(); } m_manager = manager; if (!m_manager) return; QMap<QString, QGradient> gradients = m_manager->gradients(); QMapIterator<QString, QGradient> itGrad(gradients); while (itGrad.hasNext()) { itGrad.next(); slotGradientAdded(itGrad.key(), itGrad.value()); } connect(m_manager, SIGNAL(gradientAdded(QString,QGradient)), this, SLOT(slotGradientAdded(QString,QGradient))); connect(m_manager, SIGNAL(gradientRenamed(QString,QString)), this, SLOT(slotGradientRenamed(QString,QString))); connect(m_manager, SIGNAL(gradientChanged(QString,QGradient)), this, SLOT(slotGradientChanged(QString,QGradient))); connect(m_manager, SIGNAL(gradientRemoved(QString)), this, SLOT(slotGradientRemoved(QString))); }
QString QtGradientUtils::saveState(const QtGradientManager *manager) { QDomDocument doc; QDomElement rootElem = doc.createElement(QLatin1String("gradients")); QMap<QString, QGradient> grads = manager->gradients(); QMapIterator<QString, QGradient> itGrad(grads); while (itGrad.hasNext()) { itGrad.next(); QDomElement idElem = doc.createElement(QLatin1String("gradient")); idElem.setAttribute(QLatin1String("name"), itGrad.key()); QDomElement gradElem = saveGradient(doc, itGrad.value()); idElem.appendChild(gradElem); rootElem.appendChild(idElem); } doc.appendChild(rootElem); return doc.toString(); }