diff options
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.h | 3 | ||||
| -rw-r--r-- | src/plugins/Transports/http/settingsdialog.cpp | 32 | ||||
| -rw-r--r-- | src/plugins/Transports/http/settingsdialog.h | 6 | ||||
| -rw-r--r-- | src/plugins/Transports/http/settingsdialog.ui | 66 |
5 files changed, 78 insertions, 38 deletions
diff --git a/src/plugins/Transports/http/httpstreamreader.cpp b/src/plugins/Transports/http/httpstreamreader.cpp index 3141dce77..7d5167244 100644 --- a/src/plugins/Transports/http/httpstreamreader.cpp +++ b/src/plugins/Transports/http/httpstreamreader.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2013 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -123,6 +123,10 @@ HttpStreamReader::HttpStreamReader(const QString &url, HTTPInputSource *parent) settings.beginGroup("HTTP"); m_codec = QTextCodec::codecForName(settings.value("icy_encoding","UTF-8").toByteArray ()); m_buffer_size = settings.value("buffer_size",384).toInt() * 1000; + if(settings.value("override_user_agent",false).toBool()) + m_userAgent = settings.value("user_agent").toString(); + if(m_userAgent.isEmpty()) + m_userAgent = QString("qmmp/%1").arg(Qmmp::strVersion());; if (!m_codec) m_codec = QTextCodec::codecForName ("UTF-8"); #ifdef WITH_ENCA @@ -322,8 +326,7 @@ void HttpStreamReader::run() curl_easy_setopt(m_handle, CURLOPT_FAILONERROR, 1); curl_easy_setopt(m_handle, CURLOPT_MAXREDIRS, 15); // user agent - QString user_agent = QString("qmmp/%1").arg(Qmmp::strVersion()); - curl_easy_setopt(m_handle, CURLOPT_USERAGENT, qPrintable(user_agent)); + curl_easy_setopt(m_handle, CURLOPT_USERAGENT, qPrintable(m_userAgent)); curl_easy_setopt(m_handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // error message curl_easy_setopt(m_handle, CURLOPT_ERRORBUFFER, errorBuffer); diff --git a/src/plugins/Transports/http/httpstreamreader.h b/src/plugins/Transports/http/httpstreamreader.h index 1159dfe1f..61ea1be14 100644 --- a/src/plugins/Transports/http/httpstreamreader.h +++ b/src/plugins/Transports/http/httpstreamreader.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2012 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -99,6 +99,7 @@ private: QMutex m_mutex; HttpStreamData m_stream; QString m_url; + QString m_userAgent; int m_metacount; QString m_title; bool m_ready; diff --git a/src/plugins/Transports/http/settingsdialog.cpp b/src/plugins/Transports/http/settingsdialog.cpp index d1bc99cad..988d3a42d 100644 --- a/src/plugins/Transports/http/settingsdialog.cpp +++ b/src/plugins/Transports/http/settingsdialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2010-2012 by Ilya Kotov * + * Copyright (C) 2010-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -27,26 +27,28 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent) { - ui.setupUi(this); + m_ui.setupUi(this); setAttribute(Qt::WA_DeleteOnClose); findCodecs(); foreach (QTextCodec *codec, codecs) - ui.icyEncodingComboBox->addItem(codec->name()); + m_ui.icyEncodingComboBox->addItem(codec->name()); #ifdef WITH_ENCA size_t n = 0; const char **langs = enca_get_languages(&n); for (size_t i = 0; i < n; ++i) - ui.encaAnalyserComboBox->addItem(langs[i]); + m_ui.encaAnalyserComboBox->addItem(langs[i]); #endif QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("HTTP"); - int pos = ui.icyEncodingComboBox->findText(settings.value("icy_encoding","UTF-8").toString()); - ui.icyEncodingComboBox->setCurrentIndex(pos); - ui.bufferSizeSpinBox->setValue(settings.value("buffer_size",384).toInt()); + int pos = m_ui.icyEncodingComboBox->findText(settings.value("icy_encoding","UTF-8").toString()); + m_ui.icyEncodingComboBox->setCurrentIndex(pos); + m_ui.bufferSizeSpinBox->setValue(settings.value("buffer_size",384).toInt()); + m_ui.userAgentCheckBox->setChecked(settings.value("override_user_agent",false).toBool()); + m_ui.userAgentLineEdit->setText(settings.value("user_agent").toString()); #ifdef WITH_ENCA - ui.autoCharsetCheckBox->setChecked(settings.value("use_enca", false).toBool()); - pos = ui.encaAnalyserComboBox->findText(settings.value("enca_lang", langs[n-1]).toString()); - ui.encaAnalyserComboBox->setCurrentIndex(pos); + m_ui.autoCharsetCheckBox->setChecked(settings.value("use_enca", false).toBool()); + pos = m_ui.encaAnalyserComboBox->findText(settings.value("enca_lang", langs[n-1]).toString()); + m_ui.encaAnalyserComboBox->setCurrentIndex(pos); #else ui.autoCharsetCheckBox->setEnabled(false); #endif @@ -61,11 +63,13 @@ void SettingsDialog::accept() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("HTTP"); - settings.setValue("icy_encoding", ui.icyEncodingComboBox->currentText()); - settings.setValue("buffer_size", ui.bufferSizeSpinBox->value()); + settings.setValue("icy_encoding", m_ui.icyEncodingComboBox->currentText()); + settings.setValue("buffer_size", m_ui.bufferSizeSpinBox->value()); + settings.setValue("override_user_agent",m_ui.userAgentCheckBox->isChecked()); + settings.setValue("user_agent",m_ui.userAgentLineEdit->text()); #ifdef WITH_ENCA - settings.setValue("use_enca", ui.autoCharsetCheckBox->isChecked()); - settings.setValue("enca_lang", ui.encaAnalyserComboBox->currentText()); + settings.setValue("use_enca", m_ui.autoCharsetCheckBox->isChecked()); + settings.setValue("enca_lang", m_ui.encaAnalyserComboBox->currentText()); #endif settings.endGroup(); QDialog::accept(); diff --git a/src/plugins/Transports/http/settingsdialog.h b/src/plugins/Transports/http/settingsdialog.h index 5bb6d2d4a..98f49a3bb 100644 --- a/src/plugins/Transports/http/settingsdialog.h +++ b/src/plugins/Transports/http/settingsdialog.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2010 by Ilya Kotov * + * Copyright (C) 2010-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -24,7 +24,7 @@ #include "ui_settingsdialog.h" /** - @author Ilya Kotov <forkotov02@hotmail.ru> + @author Ilya Kotov <forkotov02@hotmail.ru> */ class SettingsDialog : public QDialog { @@ -39,7 +39,7 @@ private slots: private: void findCodecs(); - Ui::SettingsDialog ui; + Ui::SettingsDialog m_ui; QList<QTextCodec *> codecs; }; diff --git a/src/plugins/Transports/http/settingsdialog.ui b/src/plugins/Transports/http/settingsdialog.ui index c90c89ef4..003cd6607 100644 --- a/src/plugins/Transports/http/settingsdialog.ui +++ b/src/plugins/Transports/http/settingsdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>218</width> - <height>179</height> + <width>310</width> + <height>266</height> </rect> </property> <property name="windowTitle"> @@ -65,14 +65,14 @@ </property> </widget> </item> - <item row="2" column="1" colspan="2"> + <item row="4" column="1" colspan="2"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </item> - <item row="1" column="0" colspan="3"> + <item row="3" column="0" colspan="3"> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>Metadata encoding</string> @@ -131,12 +131,28 @@ </layout> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>User Agent:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QLineEdit" name="userAgentLineEdit"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="3"> + <widget class="QCheckBox" name="userAgentCheckBox"> + <property name="text"> + <string>Change User Agent</string> + </property> + </widget> + </item> </layout> - <zorder>label_17_2_2</zorder> - <zorder>bufferSizeSpinBox</zorder> - <zorder>label</zorder> - <zorder>buttonBox</zorder> - <zorder>groupBox</zorder> </widget> <resources/> <connections> @@ -147,8 +163,8 @@ <slot>reject()</slot> <hints> <hint type="sourcelabel"> - <x>222</x> - <y>172</y> + <x>303</x> + <y>259</y> </hint> <hint type="destinationlabel"> <x>70</x> @@ -163,8 +179,8 @@ <slot>accept()</slot> <hints> <hint type="sourcelabel"> - <x>222</x> - <y>172</y> + <x>303</x> + <y>259</y> </hint> <hint type="destinationlabel"> <x>61</x> @@ -179,12 +195,28 @@ <slot>setEnabled(bool)</slot> <hints> <hint type="sourcelabel"> - <x>59</x> - <y>67</y> + <x>82</x> + <y>149</y> </hint> <hint type="destinationlabel"> - <x>143</x> - <y>90</y> + <x>288</x> + <y>182</y> + </hint> + </hints> + </connection> + <connection> + <sender>userAgentCheckBox</sender> + <signal>toggled(bool)</signal> + <receiver>userAgentLineEdit</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>131</x> + <y>52</y> + </hint> + <hint type="destinationlabel"> + <x>136</x> + <y>76</y> </hint> </hints> </connection> |
