Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
0da6c8bc
Commit
0da6c8bc
authored
Apr 07, 2011
by
Pawel Polanski
Browse files
CODA: added some timeout fixes to the deployment
parent
a1e11f69
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp
View file @
0da6c8bc
...
...
@@ -105,6 +105,7 @@ static inline bool renameFile(const QString &sourceName, const QString &targetNa
S60DeployStep
::
S60DeployStep
(
ProjectExplorer
::
BuildStepList
*
bc
,
S60DeployStep
*
bs
)
:
BuildStep
(
bc
,
bs
),
m_timer
(
0
),
m_timeoutTimer
(
new
QTimer
(
this
)),
m_releaseDeviceAfterLauncherFinish
(
bs
->
m_releaseDeviceAfterLauncherFinish
),
m_handleDeviceRemoval
(
bs
->
m_handleDeviceRemoval
),
m_launcher
(
0
),
...
...
@@ -123,6 +124,7 @@ S60DeployStep::S60DeployStep(ProjectExplorer::BuildStepList *bc,
S60DeployStep
::
S60DeployStep
(
ProjectExplorer
::
BuildStepList
*
bc
)
:
BuildStep
(
bc
,
QLatin1String
(
S60_DEPLOY_STEP_ID
)),
m_timer
(
0
),
m_timeoutTimer
(
new
QTimer
(
this
)),
m_releaseDeviceAfterLauncherFinish
(
true
),
m_handleDeviceRemoval
(
true
),
m_launcher
(
0
),
...
...
@@ -143,6 +145,9 @@ void S60DeployStep::ctor()
{
//: Qt4 Deploystep display name
setDefaultDisplayName
(
tr
(
"Deploy"
));
m_timeoutTimer
->
setSingleShot
(
true
);
m_timeoutTimer
->
setInterval
(
2000
);
connect
(
m_timeoutTimer
,
SIGNAL
(
timeout
()),
this
,
SLOT
(
timeout
()));
}
S60DeployStep
::~
S60DeployStep
()
...
...
@@ -313,7 +318,7 @@ void S60DeployStep::stop()
m_launcher
->
terminate
();
}
else
{
if
(
m_codaDevice
)
{
switch
(
m_
state
)
{
switch
(
state
()
)
{
case
StateSendingData
:
closeRemoteFile
();
break
;
...
...
@@ -324,7 +329,7 @@ void S60DeployStep::stop()
SymbianUtils
::
SymbianDeviceManager
::
instance
()
->
releaseCodaDevice
(
m_codaDevice
);
}
}
m_s
tate
=
StateUninit
;
setS
tate
(
StateUninit
)
;
emit
finished
(
false
);
}
...
...
@@ -402,7 +407,7 @@ void S60DeployStep::startDeployment()
return
;
}
setupConnections
();
m_s
tate
=
StateConnecting
;
setS
tate
(
StateConnecting
)
;
m_codaDevice
->
sendSerialPing
(
false
);
}
else
{
m_codaDevice
=
QSharedPointer
<
Coda
::
CodaDevice
>
(
new
Coda
::
CodaDevice
);
...
...
@@ -410,7 +415,7 @@ void S60DeployStep::startDeployment()
const
QSharedPointer
<
QTcpSocket
>
codaSocket
(
new
QTcpSocket
);
m_codaDevice
->
setDevice
(
codaSocket
);
codaSocket
->
connectToHost
(
m_address
,
m_port
);
m_s
tate
=
StateConnecting
;
setS
tate
(
StateConnecting
)
;
appendMessage
(
tr
(
"Connecting to %1:%2..."
).
arg
(
m_address
).
arg
(
m_port
),
false
);
}
QTimer
::
singleShot
(
4000
,
this
,
SLOT
(
checkForTimeout
()));
...
...
@@ -494,9 +499,9 @@ void S60DeployStep::slotCodaEvent(const Coda::CodaEvent &event)
void
S60DeployStep
::
handleConnected
()
{
if
(
m_
state
>=
StateConnected
)
if
(
state
()
>=
StateConnected
)
return
;
m_s
tate
=
StateConnected
;
setS
tate
(
StateConnected
)
;
emit
codaConnected
();
startTransferring
();
}
...
...
@@ -518,6 +523,7 @@ void S60DeployStep::initFileSending()
m_codaDevice
->
sendFileSystemOpenCommand
(
Coda
::
CodaCallback
(
this
,
&
S60DeployStep
::
handleFileSystemOpen
),
remoteFileLocation
.
toAscii
(),
flags
);
appendMessage
(
tr
(
"Copying
\"
%1
\"
..."
).
arg
(
packageName
),
false
);
m_timeoutTimer
->
start
();
}
void
S60DeployStep
::
initFileInstallation
()
...
...
@@ -544,14 +550,14 @@ void S60DeployStep::startTransferring()
{
m_currentFileIndex
=
0
;
initFileSending
();
m_s
tate
=
StateSendingData
;
setS
tate
(
StateSendingData
)
;
}
void
S60DeployStep
::
startInstalling
()
{
m_currentFileIndex
=
0
;
initFileInstallation
();
m_s
tate
=
StateInstalling
;
setS
tate
(
StateInstalling
)
;
}
void
S60DeployStep
::
handleFileSystemOpen
(
const
Coda
::
CodaCommandResult
&
result
)
...
...
@@ -562,7 +568,7 @@ void S60DeployStep::handleFileSystemOpen(const Coda::CodaCommandResult &result)
}
if
(
result
.
values
.
size
()
<
1
||
result
.
values
.
at
(
0
).
data
().
isEmpty
())
{
reportError
(
QLatin1String
(
"Internal error: No filehandle obtained"
));
reportError
(
tr
(
"Internal error: No filehandle obtained"
));
return
;
}
...
...
@@ -582,7 +588,7 @@ void S60DeployStep::handleSymbianInstall(const Coda::CodaCommandResult &result)
if
(
result
.
type
==
Coda
::
CodaCommandResult
::
SuccessReply
)
{
appendMessage
(
tr
(
"Installation has finished"
),
false
);
if
(
++
m_currentFileIndex
>=
m_signedPackages
.
count
())
{
m_s
tate
=
StateFinished
;
setS
tate
(
StateFinished
)
;
emit
allFilesInstalled
();
}
else
initFileInstallation
();
...
...
@@ -615,6 +621,7 @@ void S60DeployStep::putSendNextChunk()
m_codaDevice
->
sendFileSystemWriteCommand
(
Coda
::
CodaCallback
(
this
,
&
S60DeployStep
::
handleFileSystemWrite
),
m_remoteFileHandle
,
data
,
unsigned
(
pos
));
setCopyProgress
((
100
*
(
m_putLastChunkSize
+
pos
))
/
size
);
m_timeoutTimer
->
start
();
}
}
...
...
@@ -630,6 +637,7 @@ void S60DeployStep::closeRemoteFile()
void
S60DeployStep
::
handleFileSystemWrite
(
const
Coda
::
CodaCommandResult
&
result
)
{
m_timeoutTimer
->
stop
();
// Close remote file even if copy fails
m_putWriteOk
=
result
;
if
(
!
m_putWriteOk
)
{
...
...
@@ -660,7 +668,7 @@ void S60DeployStep::handleFileSystemClose(const Coda::CodaCommandResult &result)
void
S60DeployStep
::
checkForTimeout
()
{
if
(
m_
state
!=
StateConnecting
)
if
(
state
()
!=
StateConnecting
)
return
;
QMessageBox
*
mb
=
CodaRunControl
::
createCodaWaitingMessageBox
(
Core
::
ICore
::
instance
()
->
mainWindow
());
connect
(
this
,
SIGNAL
(
codaConnected
()),
mb
,
SLOT
(
close
()));
...
...
@@ -754,7 +762,6 @@ void S60DeployStep::installFailed(const QString &filename, const QString &errorM
void
S60DeployStep
::
checkForCancel
()
{
if
((
m_futureInterface
->
isCanceled
()
||
m_deployCanceled
)
&&
m_timer
->
isActive
())
{
closeRemoteFile
();
m_timer
->
stop
();
stop
();
QString
canceledText
(
tr
(
"Deployment has been cancelled."
));
...
...
@@ -825,6 +832,11 @@ void S60DeployStep::updateProgress(int progress)
m_futureInterface
->
setProgressValueAndText
(
entireProgress
,
tr
(
"Copy progress: %1%"
).
arg
(
copyProgress
));
}
void
S60DeployStep
::
timeout
()
{
reportError
(
tr
(
"A timeout while deploying has occurred. CODA might not be responding. Try reconnecting the device."
));
}
// #pragma mark -- S60DeployStepWidget
BuildStepConfigWidget
*
S60DeployStep
::
createConfigWidget
()
...
...
src/plugins/qt4projectmanager/qt-s60/s60deploystep.h
View file @
0da6c8bc
...
...
@@ -125,6 +125,7 @@ private slots:
void
slotWaitingForTrkClosed
();
void
checkForCancel
();
void
checkForTimeout
();
void
timeout
();
void
slotError
(
const
QString
&
error
);
void
slotTrkLogMessage
(
const
QString
&
log
);
...
...
@@ -188,6 +189,9 @@ private:
StateFinished
};
inline
void
setState
(
State
state
)
{
m_state
=
state
;
}
inline
State
state
()
{
return
m_state
;
}
QString
m_serialPortName
;
QString
m_serialPortFriendlyName
;
QStringList
m_packageFileNamesWithTarget
;
// Support for 4.6.1
...
...
@@ -196,6 +200,7 @@ private:
unsigned
short
m_port
;
QTimer
*
m_timer
;
QTimer
*
m_timeoutTimer
;
bool
m_releaseDeviceAfterLauncherFinish
;
bool
m_handleDeviceRemoval
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment