pull in upstream fixes for wikipedia plugin (kde#349313)

This commit is contained in:
Rex Dieter 2015-06-28 11:27:40 -05:00
commit fa50109140
2 changed files with 172 additions and 2 deletions

View file

@ -0,0 +1,165 @@
From 284342b48dc32341c3553fd2b0ee5069d75b58f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Frank=20Meerk=C3=B6tter?= <frank@meerkoetter.org>
Date: Thu, 12 Sep 2013 21:44:03 +0200
Subject: [PATCH 055/471] Enable Wikipedia over SSL.
This patch makes SSL the default. It also adds a checkbox to disable
it so if there would be a problem a fallback to HTTP is possible.
BUG: 322249
REVIEW: 112706
FIXED-IN: 2.9
---
src/context/applets/wikipedia/WikipediaApplet.cpp | 6 ++++++
src/context/applets/wikipedia/WikipediaApplet_p.h | 1 +
.../applets/wikipedia/wikipediaGeneralSettings.ui | 11 +++++++++--
src/context/engines/wikipedia/WikipediaEngine.cpp | 18 +++++++++++++++---
4 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/src/context/applets/wikipedia/WikipediaApplet.cpp b/src/context/applets/wikipedia/WikipediaApplet.cpp
index 507db96..21365f2 100644
--- a/src/context/applets/wikipedia/WikipediaApplet.cpp
+++ b/src/context/applets/wikipedia/WikipediaApplet.cpp
@@ -250,11 +250,14 @@ WikipediaAppletPrivate::_loadSettings()
}
langList = list;
useMobileWikipedia = (generalSettingsUi.mobileCheckBox->checkState() == Qt::Checked);
+ useSSL = (generalSettingsUi.sslCheckBox->checkState() == Qt::Checked);
Amarok::config("Wikipedia Applet").writeEntry( "PreferredLang", list );
Amarok::config("Wikipedia Applet").writeEntry( "UseMobile", useMobileWikipedia );
+ Amarok::config( "Wikipedia Applet" ).writeEntry( "UseSSL", useSSL );
_paletteChanged( App::instance()->palette() );
dataContainer->setData( "lang", langList );
dataContainer->setData( "mobile", useMobileWikipedia );
+ dataContainer->setData( "ssl", useSSL );
scheduleEngineUpdate();
}
@@ -656,9 +659,11 @@ WikipediaApplet::init()
// Read config and inform the engine.
d->langList = Amarok::config("Wikipedia Applet").readEntry( "PreferredLang", QStringList() << "en" );
d->useMobileWikipedia = Amarok::config("Wikipedia Applet").readEntry( "UseMobile", false );
+ d->useSSL = Amarok::config( "Wikipedia Applet" ).readEntry( "UseSSL", true );
d->_paletteChanged( App::instance()->palette() );
d->dataContainer->setData( "lang", d->langList );
d->dataContainer->setData( "mobile", d->useMobileWikipedia );
+ d->dataContainer->setData( "ssl", d->useSSL );
d->scheduleEngineUpdate();
updateConstraints();
@@ -787,6 +792,7 @@ WikipediaApplet::createConfigurationInterface( KConfigDialog *parent )
QWidget *genSettings = new QWidget;
d->generalSettingsUi.setupUi( genSettings );
d->generalSettingsUi.mobileCheckBox->setCheckState( d->useMobileWikipedia ? Qt::Checked : Qt::Unchecked );
+ d->generalSettingsUi.sslCheckBox->setCheckState( d->useSSL ? Qt::Checked : Qt::Unchecked );
connect( d->languageSettingsUi.downloadButton, SIGNAL(clicked()), this, SLOT(_getLangMap()) );
connect( parent, SIGNAL(okClicked()), this, SLOT(_loadSettings()) );
diff --git a/src/context/applets/wikipedia/WikipediaApplet_p.h b/src/context/applets/wikipedia/WikipediaApplet_p.h
index c52a0bf..df5ddc3 100644
--- a/src/context/applets/wikipedia/WikipediaApplet_p.h
+++ b/src/context/applets/wikipedia/WikipediaApplet_p.h
@@ -143,6 +143,7 @@ public:
bool isForwardHistory;
bool isBackwardHistory;
bool useMobileWikipedia;
+ bool useSSL;
};
class WikipediaSearchLineEdit : public Plasma::LineEdit
diff --git a/src/context/applets/wikipedia/wikipediaGeneralSettings.ui b/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
index a615dee..84cb5df 100644
--- a/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
+++ b/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>244</width>
- <height>23</height>
+ <width>253</width>
+ <height>62</height>
</rect>
</property>
<property name="sizePolicy">
@@ -32,6 +32,13 @@
</property>
</widget>
</item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="sslCheckBox">
+ <property name="text">
+ <string>Use &amp;SSL</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
</layout>
diff --git a/src/context/engines/wikipedia/WikipediaEngine.cpp b/src/context/engines/wikipedia/WikipediaEngine.cpp
index f22e443..982d3fd 100644
--- a/src/context/engines/wikipedia/WikipediaEngine.cpp
+++ b/src/context/engines/wikipedia/WikipediaEngine.cpp
@@ -45,6 +45,7 @@ public:
: q_ptr( parent )
, currentSelection( Artist )
, useMobileVersion( false )
+ , useSSL( true )
, dataContainer( 0 )
{}
~WikipediaEnginePrivate() {}
@@ -88,6 +89,7 @@ public:
}
} m_previousTrackMetadata;
bool useMobileVersion;
+ bool useSSL;
Plasma::DataContainer *dataContainer;
@@ -169,6 +171,16 @@ WikipediaEnginePrivate::_dataContainerUpdated( const QString &source, const Plas
}
}
+ if( data.contains( QLatin1String("ssl") ) )
+ {
+ const bool ssl = data.value( QLatin1String("ssl") ).toBool();
+ if( ssl != useSSL )
+ {
+ useSSL = ssl;
+ updateEngine();
+ }
+ }
+
if( data.contains( QLatin1String("lang") ) )
{
QStringList langList = data.value( QLatin1String("lang") ).toStringList();
@@ -532,7 +544,7 @@ WikipediaEnginePrivate::fetchWikiUrl( const QString &title, const QString &urlPr
Q_Q( WikipediaEngine );
KUrl pageUrl;
QString host( ".wikipedia.org" );
- pageUrl.setScheme( QLatin1String("http") );
+ pageUrl.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
if( useMobileVersion )
{
@@ -570,7 +582,7 @@ WikipediaEnginePrivate::fetchLangLinks( const QString &title,
{
Q_Q( WikipediaEngine );
KUrl url;
- url.setScheme( QLatin1String("http") );
+ url.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
url.setHost( hostLang + QLatin1String(".wikipedia.org") );
url.setPath( QLatin1String("/w/api.php") );
url.addQueryItem( QLatin1String("action"), QLatin1String("query") );
@@ -592,7 +604,7 @@ WikipediaEnginePrivate::fetchListing( const QString &title, const QString &hostL
{
Q_Q( WikipediaEngine );
KUrl url;
- url.setScheme( QLatin1String("http") );
+ url.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
url.setHost( hostLang + QLatin1String(".wikipedia.org") );
url.setPath( QLatin1String("/w/api.php") );
url.addQueryItem( QLatin1String("action"), QLatin1String("query") );
--
2.4.3

View file

@ -8,7 +8,7 @@
Name: amarok
Summary: Media player
Version: 2.8.0
Release: 16%{?dist}
Release: 17%{?dist}
# KDE e.V. may determine that future GPL versions are accepted
License: GPLv2 or GPLv3
@ -28,7 +28,7 @@ Source1: amarok.appdata.xml
Patch0: amarok-2.8.0-onlinedoc.patch
# try to allow build without kdewebkit (like rhel), use QWeb* instead of KWeb*
#Patch1: amarok-2.8.0-no_kdewebkit.patch
Patch1: amarok-2.8.0-no_kdewebkit.patch
## upstreamable patches
@ -36,6 +36,7 @@ Patch0: amarok-2.8.0-onlinedoc.patch
Patch0004: 0004-Code-cleanup-and-added-comments.patch
Patch0014: 0014-Fix-compilation-and-linking-issues.patch
Patch0039: 0039-Optimization-Don-t-draw-more-than-necessary.patch
Patch0055: 0055-Enable-Wikipedia-over-SSL.patch
Patch0070: 0070-Rewrite-Block-Analyzer-to-use-pure-OpenGL-instead-of.patch
Patch0071: 0071-Fix-rendering-glitch-introduced-with-commit-f4a3f4f.patch
@ -148,6 +149,7 @@ Requires: %{name} = %{version}-%{release}
%patch0004 -p1 -b .0004
%patch0014 -p1 -b .0014
%patch0039 -p1 -b .0039
%patch0055 -p1 -b .0055
%patch0070 -p1 -b .0070
%patch0071 -p1 -b .0071
@ -288,6 +290,9 @@ fi
%changelog
* Sun Jun 28 2015 Rex Dieter <rdieter@fedoraproject.org> 2.8.0-17
- pull in upstream fixes for wikipedia plugin (kde#349313)
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.0-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild