diff options
| -rw-r--r-- | amarok/src/Options1.ui | 60 | ||||
| -rw-r--r-- | amarok/src/Options1.ui.h | 13 | ||||
| -rw-r--r-- | amarok/src/amarokcore/amarok.kcfg | 4 | ||||
| -rw-r--r-- | amarok/src/configdialog.cpp | 7 | ||||
| -rw-r--r-- | amarok/src/contextbrowser.cpp | 23 |
5 files changed, 106 insertions, 1 deletions
diff --git a/amarok/src/Options1.ui b/amarok/src/Options1.ui index 10443a4e..6104159c 100644 --- a/amarok/src/Options1.ui +++ b/amarok/src/Options1.ui @@ -332,6 +332,66 @@ </spacer> </hbox> </widget> + <widget class="TQLayoutWidget"> + <property name="name"> + <cstring>layout9</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="TQLabel"> + <property name="name"> + <cstring>textLabel1_3</cstring> + </property> + <property name="minimumSize"> + <size> + <width>120</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>Search engine:</string> + </property> + <property name="buddy" stdset="0"> + <cstring>searchEngineComboBox</cstring> + </property> + </widget> + <widget class="KComboBox"> + <property name="name"> + <cstring>searchEngineComboBox</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip" stdset="0"> + <string>Choose web search engine to be used by Amarok.</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer7_3</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>150</width> + <height>21</height> + </size> + </property> + </spacer> + </hbox> + </widget> </vbox> </widget> <widget class="TQGroupBox"> diff --git a/amarok/src/Options1.ui.h b/amarok/src/Options1.ui.h index 5adf414e..6ff162ff 100644 --- a/amarok/src/Options1.ui.h +++ b/amarok/src/Options1.ui.h @@ -64,6 +64,19 @@ void Options1::init() { checkBox_customBrowser->setChecked( true ); } + + TQStringList search_engines; + search_engines << "Google" << "DuckDuckGo" << "Kagi" << "Bing" << "Qwant" + << "Ecosia" << "Brave"; + + searchEngineComboBox->insertStringList( search_engines ); + index = search_engines.findIndex( AmarokConfig::searchEngine() ); + if( index >= 0 ) { + searchEngineComboBox->setCurrentItem( index ); + } else { + // Revert to default if search engine unrecognised + searchEngineComboBox->setCurrentItem( 0 ); + } } void Options1::slotUpdateMoodFrame() diff --git a/amarok/src/amarokcore/amarok.kcfg b/amarok/src/amarokcore/amarok.kcfg index fe343414..28c2183b 100644 --- a/amarok/src/amarokcore/amarok.kcfg +++ b/amarok/src/amarokcore/amarok.kcfg @@ -295,6 +295,10 @@ <label>Filename of the external web browser to be invoked by Amarok.</label> <default>kfmclient openURL</default> </entry> + <entry key="Search Engine" type="String"> + <label>Web search engine to be used by Amarok.</label> + <default>Google</default> + </entry> <entry key="Use Custom Icon Theme" type="Bool"> <label>Whether Amarok's custom icon theme or the system icon theme is used.</label> <default>true</default> diff --git a/amarok/src/configdialog.cpp b/amarok/src/configdialog.cpp index 5286518a..d4c1b5df 100644 --- a/amarok/src/configdialog.cpp +++ b/amarok/src/configdialog.cpp @@ -205,6 +205,7 @@ AmarokConfigDialog::AmarokConfigDialog( TQWidget *parent, const char* name, TDEC connect( m_opt2->styleComboBox, TQ_SIGNAL( activated( int ) ), TQ_SLOT( updateButtons() ) ); connect( m_opt7->dbSetupFrame->databaseEngine, TQ_SIGNAL( activated( int ) ), TQ_SLOT( updateButtons() ) ); connect( m_opt1->kComboBox_browser, TQ_SIGNAL( activated( int ) ), TQ_SLOT( updateButtons() ) ); + connect( m_opt1->searchEngineComboBox, TQ_SIGNAL( activated( int ) ), TQ_SLOT( updateButtons() ) ); connect( m_opt1->kLineEdit_customBrowser, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( updateButtons() ) ); } @@ -282,6 +283,11 @@ void AmarokConfigDialog::updateSettings() soundSystemChanged(); } + if ( m_opt1->searchEngineComboBox->currentText() != AmarokConfig::searchEngine() ) { + AmarokConfig::setSearchEngine( m_opt1->searchEngineComboBox->currentText() ); + emit settingsChanged(); + } + if ( m_opt2->styleComboBox->currentText() != AmarokConfig::contextBrowserStyleSheet() ) { //can't use tdeconfigxt for the style comboxbox's since we need the string, not the index AmarokConfig::setContextBrowserStyleSheet( m_opt2->styleComboBox->currentText() ); @@ -360,6 +366,7 @@ bool AmarokConfigDialog::hasChanged() osd->alignment() != AmarokConfig::osdAlignment() || osd->alignment() != OSDWidget::Center && osd->y() != AmarokConfig::osdYOffset() || #endif + m_opt1->searchEngineComboBox->currentText() != AmarokConfig::searchEngine() || m_opt2->styleComboBox->currentText() != AmarokConfig::contextBrowserStyleSheet() || Amarok::databaseTypeCode( m_opt7->dbSetupFrame->databaseEngine->currentText() ) != AmarokConfig::databaseEngine().toInt() || m_engineConfig && m_engineConfig->hasChanged() || diff --git a/amarok/src/contextbrowser.cpp b/amarok/src/contextbrowser.cpp index b1def4a1..6cb740e4 100644 --- a/amarok/src/contextbrowser.cpp +++ b/amarok/src/contextbrowser.cpp @@ -3281,7 +3281,28 @@ void ContextBrowser::showLyrics( const TQString &url ) } } - m_lyricSearchUrl = TQString( "http://www.google.com/search?ie=UTF-8&q=lyrics+%1+%2" ) + // Construct lyrics search URL based on user selected search engine + TQString searchEngineUrl; + TQString searchEngine = AmarokConfig::searchEngine(); + + if ( searchEngine == "Kagi" ) { + searchEngineUrl = TQString( "https://kagi.com/search?q=lyrics+%1+%2" ); + } else if ( searchEngine == "DuckDuckGo" ) { + searchEngineUrl = TQString( "https://duckduckgo.com/?q=lyrics+%1+%2" ); + } else if ( searchEngine == "Bing" ) { + searchEngineUrl = TQString( "https://www.bing.com/search?q=lyrics+%1+%2" ); + } else if ( searchEngine == "Qwant" ) { + searchEngineUrl = TQString( "https://www.qwant.com/?q=lyrics+%1+%2" ); + } else if ( searchEngine == "Ecosia" ) { + searchEngineUrl = TQString( "https://www.ecosia.org/search?q=lyrics+%1+%2" ); + } else if ( searchEngine == "Brave" ) { + searchEngineUrl = TQString( "https://search.brave.com/search?q=lyrics+%1+%2" ); + } else { + // default to Google + searchEngineUrl = TQString( "https://www.google.com/search?ie=UTF-8&q=lyrics+%1+%2" ); + } + + m_lyricSearchUrl = searchEngineUrl .arg( KURL::encode_string_no_slash( '"' + artist + '"', 106 /*utf-8*/ ), KURL::encode_string_no_slash( '"' + title + '"', 106 /*utf-8*/ ) ); |
