[Libreoffice-commits] core.git: cui/inc cui/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Oct 9 17:41:31 UTC 2018
cui/inc/strings.hrc | 1 +
cui/source/options/personalization.cxx | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
New commits:
commit e59ea346d31d416e61b963648e78c5c7f13d8551
Author: Muhammet Kara <muhammet.kara at pardus.org.tr>
AuthorDate: Mon Oct 8 14:43:12 2018 +0300
Commit: Muhammet Kara <muhammet.kara at pardus.org.tr>
CommitDate: Tue Oct 9 19:41:09 2018 +0200
tdf#101629: Handle invalid urls and search strings for Personas
Change-Id: I9666aa9f323e53ef394121acdef146866d2cc696
Reviewed-on: https://gerrit.libreoffice.org/61529
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara at pardus.org.tr>
diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 06347dea6bcc..71ff45488568 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -371,6 +371,7 @@
#define RID_SVXSTR_SEARCHERROR NC_("RID_SVXSTR_SEARCHERROR", "Cannot open %1, please try again later.")
#define RID_SVXSTR_NORESULTS NC_("RID_SVXSTR_NORESULTS", "No results found.")
#define RID_SVXSTR_APPLYPERSONA NC_("RID_SVXSTR_APPLYPERSONA", "Applying Theme...")
+#define RID_SVXSTR_INVALIDPERSONAURL NC_("RID_SVXSTR_INVALIDPERSONAURL", "Please enter a valid theme address or a search term.")
#define RID_SVXSTR_TABLE_PRESET_NONE NC_("RID_SVXSTR_TABLE_PRESET_NONE", "Set No Borders")
#define RID_SVXSTR_TABLE_PRESET_ONLYOUTER NC_("RID_SVXSTR_TABLE_PRESET_ONLYOUTER", "Set Outer Border Only")
diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx
index 0c88f9adf325..ae314e1019c8 100644
--- a/cui/source/options/personalization.cxx
+++ b/cui/source/options/personalization.cxx
@@ -284,14 +284,35 @@ IMPL_LINK( SelectPersonaDialog, SearchPersonas, Button*, pButton, void )
if( searchTerm.isEmpty( ) )
return;
+ // Direct url of a persona given
if ( searchTerm.startsWith( "https://addons.mozilla.org/" ) )
{
OUString sSlug = searchTerm.getToken( 6, '/' );
+ // Check if we got the slug
+ if ( sSlug.isEmpty() )
+ {
+ SolarMutexGuard aGuard;
+ OUString sError = CuiResId( RID_SVXSTR_INVALIDPERSONAURL );
+ std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(nullptr,
+ VclMessageType::Error, VclButtonsType::Ok,
+ sError));
+ xBox->run();
+ return;
+ }
+
+ // Remove invalid characters
+ searchTerm = searchTerm.replaceAll("?", "");
+
m_pSearchThread = new SearchAndParseThread( this, sSlug, true );
}
+ // Search term given
else
{
+ // Remove invalid characters
+ searchTerm = searchTerm.replaceAll("/", "");
+ searchTerm = searchTerm.replaceAll("?", "");
+
// 15 results so that invalid and duplicate search results whose names, textcolors etc. are null can be skipped
OUString rSearchURL = "https://addons.mozilla.org/api/v3/addons/search/?q=" + searchTerm + "&type=persona&page_size=15";
More information about the Libreoffice-commits
mailing list