https://issues.apache.org/ooo/show_bug.cgi?id=121028

Ariel Constenla-Haile <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #1 from Ariel Constenla-Haile <[email protected]> ---
The bug is not in the dialog nor in sw module.

Setting a break point in SwGlossaryDlg::PathHdl,
main/sw/source/ui/misc/glossary.cxx:1194
shows that error is not there: The dialog calls SvtPathOptions::SetAutoTextPath
with a string with the path removed.

The problem is in the implementation of the service css.util.PathSettings in
the framework module. There is a bug removing paths.

See framework::PathSettings::impl_setPathValue
in main/framework/source/services/pathsettings.cxx

case IDGROUP_OLDSTYLE :
{
    ::rtl::OUString sVal;
    aVal >>= sVal;
    OUStringList lList = impl_convertOldStyle2Path(sVal);
    impl_subst(lList, fa_getSubstitution(), sal_False);
    impl_purgeKnownPaths(aChangePath, lList);
    if (! impl_isValidPath(lList))
        throw css::lang::IllegalArgumentException();

    if (aChangePath.bIsSinglePath)
    {
        LOG_ASSERT2(lList.size()>1, "PathSettings::impl_setPathValue()", "You
try to set more then path value for a defined SINGLE_PATH!")
        if ( !lList.empty() )
            aChangePath.sWritePath = *(lList.begin());
        else
            aChangePath.sWritePath = ::rtl::OUString();
    }
    else
    {
        OUStringList::const_iterator pIt;
        for (  pIt  = lList.begin();
                pIt != lList.end()  ;
                ++pIt                 )
        {
            aChangePath.lUserPaths.push_back(*pIt);
        }
    }
}
break;

The problem with that code is that it only contemplates ADDING new paths, not
removing:  impl_purgeKnownPaths(aChangePath, lList); removes from lList all
path already in aChangePath

* In the case where we are REMOVING a path, lList will remain empty
* In the case where we are ADDING a path, lList will only have the new path,
that is pushed back inside aChangePath.lUserPaths

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to