forked from qt-creator/qt-creator
add disk full error handling to consoleprocess
This commit is contained in:
@@ -65,6 +65,11 @@ QString ConsoleProcess::msgCannotCreateTempFile(const QString &why)
|
|||||||
return tr("Cannot create temporary file: %1").arg(why);
|
return tr("Cannot create temporary file: %1").arg(why);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ConsoleProcess::msgCannotWriteTempFile()
|
||||||
|
{
|
||||||
|
return tr("Cannot write temporary file. Disk full?");
|
||||||
|
}
|
||||||
|
|
||||||
QString ConsoleProcess::msgCannotCreateTempDir(const QString & dir, const QString &why)
|
QString ConsoleProcess::msgCannotCreateTempDir(const QString & dir, const QString &why)
|
||||||
{
|
{
|
||||||
return tr("Cannot create temporary directory '%1': %2").arg(dir, why);
|
return tr("Cannot create temporary directory '%1': %2").arg(dir, why);
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ private:
|
|||||||
static QString msgCommChannelFailed(const QString &error);
|
static QString msgCommChannelFailed(const QString &error);
|
||||||
static QString msgPromptToClose();
|
static QString msgPromptToClose();
|
||||||
static QString msgCannotCreateTempFile(const QString &why);
|
static QString msgCannotCreateTempFile(const QString &why);
|
||||||
|
static QString msgCannotWriteTempFile();
|
||||||
static QString msgCannotCreateTempDir(const QString & dir, const QString &why);
|
static QString msgCannotCreateTempDir(const QString & dir, const QString &why);
|
||||||
static QString msgUnexpectedOutput(const QByteArray &what);
|
static QString msgUnexpectedOutput(const QByteArray &what);
|
||||||
static QString msgCannotChangeToWorkDir(const QString & dir, const QString &why);
|
static QString msgCannotChangeToWorkDir(const QString & dir, const QString &why);
|
||||||
|
|||||||
@@ -173,11 +173,18 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
|
|||||||
d->m_tempFile = 0;
|
d->m_tempFile = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
QByteArray contents;
|
||||||
foreach (const QString &var, env) {
|
foreach (const QString &var, env) {
|
||||||
d->m_tempFile->write(var.toLocal8Bit());
|
QByteArray l8b = var.toLocal8Bit();
|
||||||
d->m_tempFile->write("", 1);
|
contents.append(l8b.constData(), l8b.size() + 1);
|
||||||
|
}
|
||||||
|
if (d->m_tempFile->write(contents) != contents.size() || !d->m_tempFile->flush()) {
|
||||||
|
stubServerShutdown();
|
||||||
|
emit processMessage(msgCannotWriteTempFile(), true);
|
||||||
|
delete d->m_tempFile;
|
||||||
|
d->m_tempFile = 0;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
d->m_tempFile->flush();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xtermArgs
|
xtermArgs
|
||||||
|
|||||||
@@ -157,6 +157,16 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
|
|||||||
foreach (const QString &var, fixWinEnvironment(env))
|
foreach (const QString &var, fixWinEnvironment(env))
|
||||||
out << var << QChar(0);
|
out << var << QChar(0);
|
||||||
out << QChar(0);
|
out << QChar(0);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
|
||||||
|
out.flush();
|
||||||
|
if (out.status() != QTextStream::Ok) {
|
||||||
|
stubServerShutdown();
|
||||||
|
emit processMessage(msgCannotWriteTempFile(), true);
|
||||||
|
delete d->m_tempFile;
|
||||||
|
d->m_tempFile = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
STARTUPINFO si;
|
STARTUPINFO si;
|
||||||
|
|||||||
Reference in New Issue
Block a user