scp2/source/ooo/directory_ooo.scp | 11 +++++ scp2/source/ooo/module_lang_template.scp | 3 + sw/source/ui/inc/glosdoc.hxx | 3 - sw/source/ui/misc/glosdoc.cxx | 60 ++++++++++++++++--------------- 4 files changed, 46 insertions(+), 31 deletions(-)
New commits: commit 16a0badd3ec3588d4a6561a3cba7992cbef6b5da Author: David Tardon <[email protected]> Date: Tue May 14 15:53:23 2013 +0200 always create dirs for autotext files ... thus avoiding an annoing warning when a user tries to use autotext. I think we can drop DEFAULT_TO_ENGLISH_FOR_PACKING now. Change-Id: I230341c8bf1c925c51a4059b93153d5cd83d5310 diff --git a/scp2/source/ooo/directory_ooo.scp b/scp2/source/ooo/directory_ooo.scp index 08ea22d..fda0f9c 100644 --- a/scp2/source/ooo/directory_ooo.scp +++ b/scp2/source/ooo/directory_ooo.scp @@ -156,6 +156,17 @@ End #endif +Directory gid_Dir_Share_Autotext + ParentID = gid_Brand_Dir_Share; + DosName = "autotext"; +End + +Directory gid_Dir_Autotext_Language + ParentID = gid_Dir_Share_Autotext; + DIR_ISOLANGUAGE_ALL_LANG_2; + Styles = (CREATE); +End + Directory gid_Dir_Share_Xslt ParentID = gid_Brand_Dir_Share; DosName = "xslt"; diff --git a/scp2/source/ooo/module_lang_template.scp b/scp2/source/ooo/module_lang_template.scp index 1b8e45f..0b51889 100644 --- a/scp2/source/ooo/module_lang_template.scp +++ b/scp2/source/ooo/module_lang_template.scp @@ -62,7 +62,8 @@ Module gid_Module_Langpack_Basis_Template gid_File_Share_Registry_Ctl_Xcd, gid_File_Share_Registry_Ctlseqcheck_Xcd, gid_File_InfoPlist_Lang); - Dirs = (gid_Dir_Samples_Language); + Dirs = (gid_Dir_Samples_Language, + gid_Dir_Autotext_Language); End Module gid_Module_Langpack_Resource_Template commit fbed11a411eb3c013f465660c5cd3e6db0508806 Author: David Tardon <[email protected]> Date: Tue May 14 14:32:08 2013 +0200 don't accumulate dirs in error string Change-Id: Ied7437026009f07052dd07d41ba08c82bb6db295 diff --git a/sw/source/ui/inc/glosdoc.hxx b/sw/source/ui/inc/glosdoc.hxx index 6ab31ac..a3a6c79 100644 --- a/sw/source/ui/inc/glosdoc.hxx +++ b/sw/source/ui/inc/glosdoc.hxx @@ -50,8 +50,7 @@ class SW_DLLPUBLIC SwGlossaries UnoAutoTextEntries m_aGlossaryEntries; String m_aPath; - String m_sOldErrPath; - String m_sErrPath; + std::vector<rtl::OUString> m_aInvalidPaths; std::vector<String> m_PathArr; std::vector<String> m_GlosArr; sal_Bool m_bError; diff --git a/sw/source/ui/misc/glosdoc.cxx b/sw/source/ui/misc/glosdoc.cxx index e869643..681be51 100644 --- a/sw/source/ui/misc/glosdoc.cxx +++ b/sw/source/ui/misc/glosdoc.cxx @@ -397,6 +397,20 @@ SwGlossaries::SwGlossaries() Description: set new path and recreate internal array ------------------------------------------------------------------------*/ +rtl::OUString lcl_makePath(const std::vector<rtl::OUString>& rPaths) +{ + std::vector<rtl::OUString>::const_iterator aIt(rPaths.begin()); + const std::vector<rtl::OUString>::const_iterator aEnd(rPaths.end()); + rtl::OUStringBuffer aPath(*aIt); + for (++aIt; aIt != aEnd; ++aIt) + { + aPath.append(SVT_SEARCHPATH_DELIMITER); + const INetURLObject aTemp(*aIt); + aPath.append(aTemp.GetFull()); + } + return aPath.getStr(); +} + void SwGlossaries::UpdateGlosPath(sal_Bool bFull) { SvtPathOptions aPathOpt; @@ -410,6 +424,7 @@ void SwGlossaries::UpdateGlosPath(sal_Bool bFull) sal_uInt16 nTokenCount = comphelper::string::getTokenCount(m_aPath, SVT_SEARCHPATH_DELIMITER); std::vector<String> aDirArr; + std::vector<rtl::OUString> aInvalidPaths; for( sal_uInt16 i = 0; i < nTokenCount; i++ ) { String sPth(m_aPath.GetToken(i, SVT_SEARCHPATH_DELIMITER)); @@ -422,26 +437,27 @@ void SwGlossaries::UpdateGlosPath(sal_Bool bFull) } aDirArr.push_back(sPth); if( !FStatHelper::IsFolder( sPth ) ) - { - if( m_sErrPath.Len() ) - m_sErrPath += SVT_SEARCHPATH_DELIMITER; - INetURLObject aTemp( sPth ); - m_sErrPath += String(aTemp.GetFull()); - } + aInvalidPaths.push_back(sPth); else m_PathArr.push_back(sPth); } - if(!nTokenCount || - (m_sErrPath.Len() && (bPathChanged || m_sOldErrPath != m_sErrPath)) ) + if(!nTokenCount || !aInvalidPaths.empty()) { - m_sOldErrPath = m_sErrPath; - // wrong path, that means AutoText directory doesn't exist + std::sort(aInvalidPaths.begin(), aInvalidPaths.end()); + aInvalidPaths.erase(std::unique(aInvalidPaths.begin(), aInvalidPaths.end()), aInvalidPaths.end()); + if (bPathChanged || (m_aInvalidPaths != aInvalidPaths)) + { + m_aInvalidPaths = aInvalidPaths; + // wrong path, that means AutoText directory doesn't exist - ErrorHandler::HandleError( *new StringErrorInfo( - ERR_AUTOPATH_ERROR, m_sErrPath, - ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR )); - m_bError = sal_True; + ErrorHandler::HandleError( *new StringErrorInfo( + ERR_AUTOPATH_ERROR, lcl_makePath(m_aInvalidPaths), + ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR )); + m_bError = sal_True; + } + else + m_bError = sal_False; } else m_bError = sal_False; @@ -457,7 +473,7 @@ void SwGlossaries::UpdateGlosPath(sal_Bool bFull) void SwGlossaries::ShowError() { sal_uInt32 nPathError = *new StringErrorInfo(ERR_AUTOPATH_ERROR, - m_sErrPath, ERRCODE_BUTTON_OK ); + lcl_makePath(m_aInvalidPaths), ERRCODE_BUTTON_OK ); ErrorHandler::HandleError( nPathError ); } commit c55b08547e7f30ad76ddcdeb7cb8ed7725b2d322 Author: David Tardon <[email protected]> Date: Tue May 14 14:09:18 2013 +0200 bin dynamic alloc. nonsense Change-Id: Iaed4e27a92937ddbdb0cde783c0e3be611eec7ca diff --git a/sw/source/ui/misc/glosdoc.cxx b/sw/source/ui/misc/glosdoc.cxx index 38be8d4..e869643 100644 --- a/sw/source/ui/misc/glosdoc.cxx +++ b/sw/source/ui/misc/glosdoc.cxx @@ -18,6 +18,7 @@ */ +#include <algorithm> #include <memory> #include <com/sun/star/container/XNamed.hpp> @@ -396,17 +397,6 @@ SwGlossaries::SwGlossaries() Description: set new path and recreate internal array ------------------------------------------------------------------------*/ -/* -------------------------------------------------- -* #61050# double paths cause irritation - get rid of it - * --------------------------------------------------*/ -static bool lcl_FindSameEntry(const std::vector<String*>& rDirArr, const String& rEntryURL) -{ - for(std::vector<String*>::const_iterator it(rDirArr.begin()); it != rDirArr.end(); ++it) - if( **it == rEntryURL ) - return true; - return false; -} - void SwGlossaries::UpdateGlosPath(sal_Bool bFull) { SvtPathOptions aPathOpt; @@ -419,18 +409,18 @@ void SwGlossaries::UpdateGlosPath(sal_Bool bFull) m_PathArr.clear(); sal_uInt16 nTokenCount = comphelper::string::getTokenCount(m_aPath, SVT_SEARCHPATH_DELIMITER); - std::vector<String*> aDirArr; + std::vector<String> aDirArr; for( sal_uInt16 i = 0; i < nTokenCount; i++ ) { String sPth(m_aPath.GetToken(i, SVT_SEARCHPATH_DELIMITER)); sPth = URIHelper::SmartRel2Abs( INetURLObject(), sPth, URIHelper::GetMaybeFileHdl()); - if(i && lcl_FindSameEntry(aDirArr, sPth)) + if(i && std::find(aDirArr.begin(), aDirArr.end(), sPth) != aDirArr.end()) { continue; } - aDirArr.push_back(new String(sPth)); + aDirArr.push_back(sPth); if( !FStatHelper::IsFolder( sPth ) ) { if( m_sErrPath.Len() ) @@ -441,8 +431,6 @@ void SwGlossaries::UpdateGlosPath(sal_Bool bFull) else m_PathArr.push_back(sPth); } - for(std::vector<String*>::const_iterator it(aDirArr.begin()); it != aDirArr.end(); ++it) - delete *it; if(!nTokenCount || (m_sErrPath.Len() && (bPathChanged || m_sOldErrPath != m_sErrPath)) ) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
