[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 90242] Crash by close of kdevelop if a qtdesignerpart was open.
From:       kdevelop-bugs-admin () barney ! cs ! uni-potsdam ! de
Date:       2004-09-26 10:38:08
Message-ID: 20040926103808.1050.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
        
http://bugs.kde.org/show_bug.cgi?id=90242        




------- Additional Comments From alex.kern gmx de  2004-09-26 12:38 -------
Here is a relevant piece of code:

void QtDesignerIntegration::saveSettings(QDomDocument dom, QString path)
{
    kdDebug() << "QtDesignerIntegration::saveSettings" << endl;
    QDomElement el = DomUtil::createElementByPath(dom, path + "/qtdesigner");
    for (QMap<QString, ClassDom>::const_iterator it = m_implementations.begin(); 
        it != m_implementations.end(); ++it)
    {
        QDomElement il = dom.createElement("implementation");
        el.appendChild(il);
        il.setAttribute("path", it.key());
        il.setAttribute("implementationpath", it.data()->fileName()); <----!!
        il.setAttribute("class", it.data()->name());
    }
}
It is suspect to me, that loadSettings has an exception for this attribute:

void QtDesignerIntegration::loadSettings(QDomDocument dom, QString path)
{
    QDomElement el = DomUtil::elementByPath(dom, path + "/qtdesigner");
    if (el.isNull())
        return;
    QDomNodeList impls = el.elementsByTagName("implementation");
    for (uint i = 0; i < impls.count(); ++i)
    {
        QDomElement el = impls.item(i).toElement();
        if (el.isNull())
            continue;
        FileDom file = m_part->codeModel()->fileByName(el.attribute("implementationpath")); <--!
        if (!file)                                                   <--!
            continue;                                                <--!
        ClassList cllist = file->classByName(el.attribute("class"));
        if (cllist.count() > 0)
            m_implementations[el.attribute("path")] = cllist.first();
    }
}

Cheers
Alex


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic