OSDN Git Service

Fixed USB detach related bug on Symbian
authorPawel Polanski <pawel.3.polanski@nokia.com>
Mon, 22 Nov 2010 09:47:39 +0000 (10:47 +0100)
committerPawel Polanski <pawel.3.polanski@nokia.com>
Mon, 22 Nov 2010 10:53:06 +0000 (11:53 +0100)
Task-Number: QTCREATORBUG-3100
Reviewed-by: Tobias Hunger
src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h

index 128a963..19f823f 100644 (file)
@@ -468,7 +468,6 @@ RunConfiguration *S60DeviceRunConfigurationFactory::clone(Target *parent, RunCon
 S60DeviceRunControl::S60DeviceRunControl(RunConfiguration *runConfiguration, QString mode) :
     RunControl(runConfiguration, mode),
     m_toolChain(ProjectExplorer::ToolChain_INVALID),
-    m_handleDeviceRemoval(true),
     m_launcher(0)
 {
     // connect for automatically reporting the "finished deploy" state to the progress manager
@@ -606,7 +605,6 @@ void S60DeviceRunControl::printConnectFailed(const QString &errorMessage)
 
 void S60DeviceRunControl::launcherFinished()
 {
-    m_handleDeviceRemoval = false;
     trk::Launcher::releaseToDeviceManager(m_launcher);
     m_launcher->deleteLater();
     m_launcher = 0;
@@ -672,7 +670,10 @@ void S60DeviceRunControl::printApplicationOutput(const QString &output, bool onS
 
 void S60DeviceRunControl::deviceRemoved(const SymbianUtils::SymbianDevice &d)
 {
-    if (m_handleDeviceRemoval && d.portName() == m_serialPortName) {
+    if (m_launcher && d.portName() == m_serialPortName) {
+        trk::Launcher::releaseToDeviceManager(m_launcher);
+        m_launcher->deleteLater();
+        m_launcher = 0;
         appendMessage(this, tr("The device '%1' has been disconnected").arg(d.friendlyName()), true);
         emit finished();
     }
index 8e0b479..151ed67 100644 (file)
@@ -188,7 +188,6 @@ private:
     QString m_executableFileName;
     QString m_qtDir;
     QString m_qtBinPath;
-    bool m_handleDeviceRemoval;
     trk::Launcher *m_launcher;
     char m_installationDrive;
 };