[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso/dialogs CDWritingDialog.cpp
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso/dialogs CDWritingDialog.cpp |
Date: |
Sat, 17 Jan 2009 20:31:04 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 09/01/17 20:31:04
Modified files:
src/traverso/dialogs: CDWritingDialog.cpp
Log message:
* more robust way of parsing standard output, right now it ended up in
an infinite loop using QIODevice::readLine()
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/CDWritingDialog.cpp?cvsroot=traverso&r1=1.7&r2=1.8
Patches:
Index: CDWritingDialog.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/CDWritingDialog.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- CDWritingDialog.cpp 28 Jan 2008 15:55:27 -0000 1.7
+++ CDWritingDialog.cpp 17 Jan 2009 20:31:04 -0000 1.8
@@ -141,6 +141,7 @@
void CDWritingDialog::query_devices()
{
+ PENTER;
if ( ! (m_burnprocess->state() == QProcess::NotRunning) ) {
printf("query_devices: burnprocess still running!\n");
return;
@@ -472,23 +473,29 @@
void CDWritingDialog::read_standard_output()
{
+ PENTER;
+
Q_ASSERT(m_burnprocess);
if (m_writingState == QUERY_DEVICE) {
char buf[1024];
- while(m_burnprocess->readLine(buf, sizeof(buf)) != -1) {
- QString data = QString(buf);
+ QByteArray output = m_burnprocess->readAllStandardOutput();
+ QList<QByteArray> lines = output.split('\n');
+
+ foreach(QByteArray data, lines) {
if (data.isEmpty()) {
continue;
}
- //printf("%s\n", QS_C(data));
+ printf("%s\n", data.data());
+
if (data.contains("trying to open")) {
update_cdburn_status(tr("Trying to access CD
Writer ..."), NORMAL_MESSAGE);
return;
}
+
if (data.contains("Cannot open") ||
data.contains("Cannot setup")) {
update_cdburn_status(tr("Cannot access CD
Writer, is it in use ?"), ERROR_MESSAGE);
return;
- [Traverso-commit] traverso/src/traverso/dialogs CDWritingDialog.cpp,
Remon Sijrier <=