diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-08-27 14:35:18 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-08-27 14:42:24 +0100 |
commit | 68dea1c1b61a99cdef556ba7d8ccfdad1be8a663 (patch) | |
tree | 8a342345b1bb1d948b95fbd1b98d80b9fef44234 /editeng | |
parent | 8763c77c39507284d45eb79c29977eb0174b66f1 (diff) |
Resolves: fdo#67743 ensure user autocorr config dir exists
We try and copy the shared one to the user location the first time we create a
customized user file. If the dir doesn't exist then that migration doesn't
happen. The new autocorr file is then written, creating the dir, and any
further operations will reattempt the skipped share copy, and this time succeed
because the dir now exists. Which overwrites the previously written customized
content.
This is similar to fdo#65501 "ensure configured backup dir exists before using
it", so reuse that code and move it into unotools.
Change-Id: I38fa621b8d7295d70b09172a028569ea95404120
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/misc/acorrcfg.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/editeng/source/misc/acorrcfg.cxx b/editeng/source/misc/acorrcfg.cxx index 04a9bdf5ffa2..af4d5bde0d9a 100644 --- a/editeng/source/misc/acorrcfg.cxx +++ b/editeng/source/misc/acorrcfg.cxx @@ -17,11 +17,13 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ - +#include <comphelper/processfactory.hxx> #include <editeng/acorrcfg.hxx> #include <tools/debug.hxx> #include <tools/urlobj.hxx> +#include <ucbhelper/content.hxx> #include <unotools/pathoptions.hxx> +#include <unotools/ucbhelper.hxx> #include <svl/urihelper.hxx> #include <editeng/svxacorr.hxx> @@ -31,6 +33,7 @@ #include <rtl/instance.hxx> using namespace utl; +using namespace com::sun::star; using namespace com::sun::star::uno; @@ -47,10 +50,18 @@ SvxAutoCorrCfg::SvxAutoCorrCfg() : SvtPathOptions aPathOpt; String sSharePath, sUserPath, sAutoPath( aPathOpt.GetAutoCorrectPath() ); + sSharePath = sAutoPath.GetToken(0, ';'); + sUserPath = sAutoPath.GetToken(1, ';'); + + //fdo#67743 ensure the userdir exists so that any later attempt to copy the + //shared autocorrect file into the user dir will succeed + ::ucbhelper::Content aContent; + Reference < ucb::XCommandEnvironment > xEnv; + ::utl::UCBContentHelper::ensureFolder(comphelper::getProcessComponentContext(), xEnv, sUserPath, aContent); + String* pS = &sSharePath; for( sal_uInt16 n = 0; n < 2; ++n, pS = &sUserPath ) { - *pS = sAutoPath.GetToken( n, ';' ); INetURLObject aPath( *pS ); aPath.insertName(OUString("acor")); *pS = aPath.GetMainURL(INetURLObject::DECODE_TO_IURI); |