Kaydet (Commit) e59ea346 authored tarafından Muhammet Kara's avatar Muhammet Kara

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: 's avatarMuhammet Kara <muhammet.kara@pardus.org.tr>
üst 1b8886ad
......@@ -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")
......
......@@ -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";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment