forked from qt-creator/qt-creator
Symbian: Quick fix for TRK's lock problem
This commit is contained in:
@@ -338,7 +338,7 @@ void CodaRunControl::finishRunControl()
|
||||
QMessageBox *CodaRunControl::createCodaWaitingMessageBox(QWidget *parent)
|
||||
{
|
||||
const QString title = tr("Waiting for CODA");
|
||||
const QString text = tr("Qt Creator is waiting for the CODA application to connect. "
|
||||
const QString text = tr("Qt Creator is waiting for the CODA application to connect.<br>"
|
||||
"Please make sure the application is running on "
|
||||
"your mobile phone and the right IP address and port are "
|
||||
"configured in the project settings.");
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "s60runconfigbluetoothstarter.h"
|
||||
#include "codadevice.h"
|
||||
#include "trkruncontrol.h"
|
||||
#include "codaruncontrol.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <projectexplorer/buildsteplist.h>
|
||||
@@ -65,7 +66,7 @@
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Qt4ProjectManager::Internal;
|
||||
|
||||
enum {debug = 0};
|
||||
enum { debug = 0 };
|
||||
|
||||
static const quint64 DEFAULT_CHUNK_SIZE = 40000;
|
||||
|
||||
@@ -200,7 +201,7 @@ bool S60DeployStep::init()
|
||||
}
|
||||
|
||||
if (debug)
|
||||
m_launcher->setVerbose(1);
|
||||
m_launcher->setVerbose(debug);
|
||||
|
||||
// Prompt the user to start up the Bluetooth connection
|
||||
const trk::PromptStartCommunicationResult src =
|
||||
@@ -396,7 +397,6 @@ void S60DeployStep::startDeployment()
|
||||
setupConnections();
|
||||
m_state = StateConnecting;
|
||||
m_codaDevice->sendSerialPing(false);
|
||||
QTimer::singleShot(4000, this, SLOT(checkForTimeout()));
|
||||
} else {
|
||||
m_codaDevice = QSharedPointer<Coda::CodaDevice>(new Coda::CodaDevice);
|
||||
setupConnections();
|
||||
@@ -405,8 +405,8 @@ void S60DeployStep::startDeployment()
|
||||
codaSocket->connectToHost(m_address, m_port);
|
||||
m_state = StateConnecting;
|
||||
appendMessage(tr("Connecting to %1:%2...").arg(m_address).arg(m_port), false);
|
||||
QTimer::singleShot(4000, this, SLOT(checkForTimeout()));
|
||||
}
|
||||
QTimer::singleShot(4000, this, SLOT(checkForTimeout()));
|
||||
}
|
||||
|
||||
void S60DeployStep::run(QFutureInterface<bool> &fi)
|
||||
@@ -458,7 +458,7 @@ void S60DeployStep::slotError(const QString &error)
|
||||
|
||||
void S60DeployStep::slotTrkLogMessage(const QString &log)
|
||||
{
|
||||
if (debug)
|
||||
if (debug > 1)
|
||||
qDebug() << "CODA log:" << log;
|
||||
}
|
||||
|
||||
@@ -585,7 +585,7 @@ void S60DeployStep::putSendNextChunk()
|
||||
setCopyProgress(100);
|
||||
} else {
|
||||
m_putLastChunkSize = data.size();
|
||||
if (debug)
|
||||
if (debug > 1)
|
||||
qDebug("Writing %llu bytes to remote file '%s' at %llu\n",
|
||||
m_putLastChunkSize,
|
||||
m_remoteFileHandle.constData(), pos);
|
||||
@@ -636,13 +636,7 @@ void S60DeployStep::checkForTimeout()
|
||||
if (m_state != StateConnecting)
|
||||
return;
|
||||
|
||||
const QString title = tr("Waiting for CODA");
|
||||
const QString text = tr("Qt Creator is waiting for the CODA application to connect."
|
||||
"\nPlease make sure the application is running on "
|
||||
"your mobile phone and the right IP address or serial port is "
|
||||
"configured in the project settings.");
|
||||
QMessageBox *mb = new QMessageBox(QMessageBox::Information, title, text,
|
||||
QMessageBox::Cancel, Core::ICore::instance()->mainWindow());
|
||||
QMessageBox *mb = CodaRunControl::createCodaWaitingMessageBox(Core::ICore::instance()->mainWindow());
|
||||
connect(this, SIGNAL(codaConnected()), mb, SLOT(close()));
|
||||
connect(this, SIGNAL(finished()), mb, SLOT(close()));
|
||||
connect(this, SIGNAL(finishNow()), mb, SLOT(close()));
|
||||
|
||||
@@ -691,10 +691,11 @@ private:
|
||||
inline int tryRead();
|
||||
|
||||
HANDLE m_handles[HandleCount];
|
||||
bool m_terminated;
|
||||
};
|
||||
|
||||
WinReaderThread::WinReaderThread(const QSharedPointer<DeviceContext> &context) :
|
||||
ReaderThreadBase(context)
|
||||
ReaderThreadBase(context), m_terminated(false)
|
||||
{
|
||||
m_handles[FileHandle] = NULL;
|
||||
m_handles[TerminateEventHandle] = CreateEvent(NULL, FALSE, FALSE, NULL);
|
||||
@@ -720,10 +721,18 @@ int WinReaderThread::tryRead()
|
||||
// Trigger read
|
||||
DWORD bytesRead = 0;
|
||||
if (ReadFile(m_context->device, &buffer, bytesToRead, &bytesRead, &m_context->readOverlapped)) {
|
||||
if (bytesRead == 1) {
|
||||
if (m_terminated)
|
||||
return 1;
|
||||
switch (bytesRead) {
|
||||
case 0:
|
||||
Sleep(100);
|
||||
break;
|
||||
case 1:
|
||||
processData(buffer[0]);
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
processData(QByteArray(buffer, bytesRead));
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -762,6 +771,7 @@ void WinReaderThread::run()
|
||||
|
||||
void WinReaderThread::terminate()
|
||||
{
|
||||
m_terminated = true;
|
||||
SetEvent(m_handles[TerminateEventHandle]);
|
||||
wait();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user