Example #1
0
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();
}