tdf#61076 string validation on creation of new dictionary.

Prevent having '/' or '\' within the dictionary name to prevent data
loss.

Change-Id: I392832c748effcdbbe58983a788ba6b38764628c
Reviewed-on: https://gerrit.libreoffice.org/71059
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Jenkins
This commit is contained in:
Rtch90 2019-04-22 01:53:09 +01:00 committed by Samuel Mehrbrodt
parent c6d27e91d9
commit c78306fb47
2 changed files with 12 additions and 0 deletions

View file

@ -258,6 +258,7 @@
#define RID_SVXSTR_CHG_SMARTART NC_("RID_SVXSTR_CHG_SMARTART", "SmartArt to %PRODUCTNAME shapes or reverse")
#define RID_SVXSTR_OPT_DOUBLE_DICTS NC_("RID_SVXSTR_OPT_DOUBLE_DICTS", "The specified name already exists.\nPlease enter a new name.")
#define RID_SVXSTR_OPT_INVALID_DICT_NAME NC_("RID_SVXSTR_OPT_INVALID_DICT_NAME", "The specified name is invalid.\nPlease enter a new name.")
/* To translators:
Please, try to find a similar *short* translation to avoid
to get narrow "New" field in the "Edit custom dictionary" window,

View file

@ -132,6 +132,17 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, weld::Button&, void)
if ( sDict.equalsIgnoreAsciiCase( pDic[i]->getName()) )
bFound = true;
if ( sDict.indexOf("/") != -1 || sDict.indexOf("\\") != -1 )
{
// Detected an invalid character.
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Info, VclButtonsType::Ok,
CuiResId(RID_SVXSTR_OPT_INVALID_DICT_NAME)));
xInfoBox->run();
m_xNameEdit->grab_focus();
return;
}
if ( bFound )
{
// duplicate names?