Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 749d95b410bf3bb4e88011a8139ff957 > files > 10

lastfm-player-1.3.1.0-3mdv2008.0.src.rpm

--- a/src/libLastFmTools/browserthread.cpp
+++ b/src/libLastFmTools/browserthread.cpp
@@ -20,6 +20,7 @@
  ***************************************************************************/
 
 #include "browserthread.h"
+#include "Settings.h"
 #include <QStringList>
 
 #include <QStringList>
@@ -37,7 +38,6 @@
 void
 BrowserThread::run()
 {
-#if 0
     #ifdef WIN32
     WCHAR val[1024];
     memset( val, 0, 1024 );
@@ -61,22 +61,36 @@
     #endif
 
     #ifdef Q_WS_X11
-    QString browser = "firefox";
+    QString browser = The::settings().browser();
     QStringList params;
-    params.append( QString( QUrl::toPercentEncoding( m_url ) ) );
+    params.append( QString( QUrl( m_url ).toEncoded() ) );
 
     QStringList options;
+
+    if ( browser.trimmed() == "" )
+    #if QT_VERSION >= 0x040200 
+    {
+        QDesktopServices::openUrl( QUrl::fromEncoded( m_url.toLatin1() ) );
+        goto _end;
+    }
+    #else
+    {
+        browser = "sensible-browser";
+    }
+    #endif
+
     options = browser.split( " " );
     if ( options.size() == 0 )
         options.append( browser );
 
     for ( int i = 1; i < options.size(); i++ )
     {
-        qDebug( QString( "param: " + options.at( i ) ).toLocal8Bit() );
+        qDebug() << QString( "param: " + options.at( i ) ).toLocal8Bit();
         params.append( "\"" + options.at( i ) + "\"" );
     }
 
     QProcess::startDetached( options.at( 0 ), params );
+    _end:
+    return;
     #endif
-#endif
 }
--- a/src/libLastFmTools/browserthread.h
+++ b/src/libLastFmTools/browserthread.h
@@ -35,7 +35,7 @@
     public:
         BrowserThread( QString url ) : QThread()
         {
-            #if QT_VERSION >= 0x040200
+            #if QT_VERSION >= 0x040200 && !defined(Q_WS_X11)
             QDesktopServices::openUrl( QUrl::fromEncoded( url.toLatin1() ) );
             deleteLater();
             #else
--- a/src/settingsdialog_connection.ui
+++ b/src/settingsdialog_connection.ui
@@ -6,7 +6,7 @@
     <x>0</x>
     <y>0</y>
     <width>400</width>
-    <height>337</height>
+    <height>340</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -165,6 +165,41 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="browserBox" >
+     <property name="title" >
+      <string>Web Browser</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label" >
+          <property name="text" >
+           <string>Browser</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="browserCommandEdit" />
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="groupBox" >
      <property name="title" >
       <string>Bandwidth Usage</string>
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -75,6 +75,9 @@
 
     QWidget* connWidget = new QWidget();
     ui_connection.setupUi( connWidget );
+#ifndef Q_WS_X11
+    ui_connection.browserBox->hide();
+#endif
     ui.pageStack->addWidget( connWidget );
 
     QWidget* mediadeviceWidget = new QWidget();
@@ -203,6 +206,10 @@
 	#ifdef Q_WS_MAC
 		connect( ui_account.showInDockCheck, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) );
 	#endif
+
+    #ifdef Q_WS_X11
+    connect( ui_connection.browserCommandEdit, SIGNAL( textChanged( QString ) ), this, SLOT( configChanged() ) );
+    #endif
 }
 
 void
@@ -221,6 +228,9 @@
 int
 SettingsDialog::exec()
 {
+#ifdef Q_WS_X11
+    originalBrowserCommand = The::settings().browser();
+#endif
     originalUsername = The::settings().currentUser().username();
     originalPassword = The::settings().currentUser().password();
     originalProxyHost = The::settings().getProxyHost();
@@ -323,6 +333,9 @@
     ui_connection.proxyPasswordEdit->setText( The::settings().getProxyPassword() );
     ui_connection.downloadMetadataCheck->setChecked( The::settings().currentUser().metadataEnabled() );
     ui_connection.crashReportCheck->setChecked( The::settings().currentUser().crashReportingEnabled() );
+#ifdef Q_WS_X11
+    ui_connection.browserCommandEdit->setText( The::settings().browser() );
+#endif
 }
 
 
@@ -459,6 +472,9 @@
     The::settings().setUseProxy( ui_connection.proxyBox->isChecked() );
     The::settings().currentUser().setMetadataEnabled( ui_connection.downloadMetadataCheck->isChecked() );
     The::settings().currentUser().setCrashReportingEnabled( ui_connection.crashReportCheck->isChecked() );
+#ifdef Q_WS_X11
+    The::settings().setBrowser( ui_connection.browserCommandEdit->text() );
+#endif
 }
 
 
@@ -530,6 +546,9 @@
                      ui_connection.proxyUsernameEdit->text() != originalProxyUsername ||
                      ui_connection.proxyPasswordEdit->text() != originalProxyPassword ||
                      ui_connection.proxyPortEdit->text().toInt() != originalProxyPort ||
+                   #ifdef Q_WS_X11
+                     ui_connection.browserCommandEdit->text() != originalBrowserCommand ||
+                   #endif
                      ui_connection.proxyBox->isChecked() != originalProxyUsage;
     }
 
--- a/src/settingsdialog.h
+++ b/src/settingsdialog.h
@@ -87,6 +87,8 @@
         QString originalUsername;
         QString originalPassword;
 
+        QString originalBrowserCommand;
+
         QString originalProxyHost;
         QString originalProxyUsername;
         QString originalProxyPassword;