Kaydet (Commit) ca3fa2a2 authored tarafından Jan Holesovsky's avatar Jan Holesovsky

Personas: Now they are called 'Themes', and changed location.

Updated the URL's + the code that works with them & parses the page
accordingly.

Change-Id: Iba1414c749bdf227b3945162da83e3d35ce86244
üst e7b2b505
...@@ -34,7 +34,7 @@ using namespace com::sun::star; ...@@ -34,7 +34,7 @@ using namespace com::sun::star;
/** Dialog that will allow the user to choose a Persona to use. /** Dialog that will allow the user to choose a Persona to use.
So far there is no better possibility than just to paste the URL from So far there is no better possibility than just to paste the URL from
http://www.getpersona.com ... https://addons.mozilla.org/firefox/themes ...
*/ */
class SelectPersonaDialog : public ModalDialog class SelectPersonaDialog : public ModalDialog
{ {
...@@ -60,34 +60,24 @@ SelectPersonaDialog::SelectPersonaDialog( Window *pParent ) ...@@ -60,34 +60,24 @@ SelectPersonaDialog::SelectPersonaDialog( Window *pParent )
pButton->SetClickHdl( LINK( this, SelectPersonaDialog, VisitPersonas ) ); pButton->SetClickHdl( LINK( this, SelectPersonaDialog, VisitPersonas ) );
get( m_pEdit, "persona_url" ); get( m_pEdit, "persona_url" );
m_pEdit->SetPlaceholderText( "http://www.getpersonas.com/persona/" ); m_pEdit->SetPlaceholderText( "https://addons.mozilla.org/firefox/themes/" );
} }
OUString SelectPersonaDialog::GetPersonaURL() const OUString SelectPersonaDialog::GetPersonaURL() const
{ {
OUString aText( m_pEdit->GetText() ); OUString aText( m_pEdit->GetText() );
if ( !aText.startsWith( "http://www.getpersonas.com/" ) && if ( aText.startsWith( "https://addons.mozilla.org/" ) )
!aText.startsWith( "https://www.getpersonas.com/" ) ) return aText;
{
return OUString();
}
// canonicalize the URL
OUString aPersona( "persona/" );
sal_Int32 nPersona = aText.lastIndexOf( aPersona );
if ( nPersona < 0 )
return OUString();
return "http://www.getpersonas.com/persona/" + aText.copy( nPersona + aPersona.getLength() ); return OUString();
} }
IMPL_LINK( SelectPersonaDialog, VisitPersonas, PushButton*, /*pButton*/ ) IMPL_LINK( SelectPersonaDialog, VisitPersonas, PushButton*, /*pButton*/ )
{ {
uno::Reference< com::sun::star::system::XSystemShellExecute > xSystemShell( com::sun::star::system::SystemShellExecute::create( ::comphelper::getProcessComponentContext() ) ); uno::Reference< com::sun::star::system::XSystemShellExecute > xSystemShell( com::sun::star::system::SystemShellExecute::create( ::comphelper::getProcessComponentContext() ) );
xSystemShell->execute( "http://www.getpersonas.com", OUString(), com::sun::star::system::SystemShellExecuteFlags::URIS_ONLY ); xSystemShell->execute( "https://addons.mozilla.org/firefox/themes/", OUString(), com::sun::star::system::SystemShellExecuteFlags::URIS_ONLY );
return 0; return 0;
} }
...@@ -277,7 +267,7 @@ static OUString searchValue( const OString &rBuffer, sal_Int32 from, const OStri ...@@ -277,7 +267,7 @@ static OUString searchValue( const OString &rBuffer, sal_Int32 from, const OStri
where += rIdentifier.getLength(); where += rIdentifier.getLength();
sal_Int32 end = rBuffer.indexOf( "&quot;", where ); sal_Int32 end = rBuffer.indexOf( "&#34;", where );
if ( end < 0 ) if ( end < 0 )
return OUString(); return OUString();
...@@ -291,24 +281,24 @@ static OUString searchValue( const OString &rBuffer, sal_Int32 from, const OStri ...@@ -291,24 +281,24 @@ static OUString searchValue( const OString &rBuffer, sal_Int32 from, const OStri
static bool parsePersonaInfo( const OString &rBuffer, OUString *pHeaderURL, OUString *pFooterURL, OUString *pTextColor, OUString *pAccentColor ) static bool parsePersonaInfo( const OString &rBuffer, OUString *pHeaderURL, OUString *pFooterURL, OUString *pTextColor, OUString *pAccentColor )
{ {
// it is the first attribute that contains "persona=" // it is the first attribute that contains "persona="
sal_Int32 persona = rBuffer.indexOf( "persona=\"{" ); sal_Int32 persona = rBuffer.indexOf( "data-browsertheme=\"{" );
if ( persona < 0 ) if ( persona < 0 )
return false; return false;
// now search inside // now search inside
*pHeaderURL = searchValue( rBuffer, persona, "&quot;headerURL&quot;:&quot;" ); *pHeaderURL = searchValue( rBuffer, persona, "&#34;headerURL&#34;:&#34;" );
if ( pHeaderURL->isEmpty() ) if ( pHeaderURL->isEmpty() )
return false; return false;
*pFooterURL = searchValue( rBuffer, persona, "&quot;footerURL&quot;:&quot;" ); *pFooterURL = searchValue( rBuffer, persona, "&#34;footerURL&#34;:&#34;" );
if ( pFooterURL->isEmpty() ) if ( pFooterURL->isEmpty() )
return false; return false;
*pTextColor = searchValue( rBuffer, persona, "&quot;textcolor&quot;:&quot;" ); *pTextColor = searchValue( rBuffer, persona, "&#34;textcolor&#34;:&#34;" );
if ( pTextColor->isEmpty() ) if ( pTextColor->isEmpty() )
return false; return false;
*pAccentColor = searchValue( rBuffer, persona, "&quot;accentcolor&quot;:&quot;" ); *pAccentColor = searchValue( rBuffer, persona, "&#34;accentcolor&#34;:&#34;" );
if ( pAccentColor->isEmpty() ) if ( pAccentColor->isEmpty() )
return false; return false;
......
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