From eeead68995653ab38e43e9f1494feaaa679dfd07 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Tue, 25 Mar 2025 11:58:36 +0100 Subject: [PATCH] Examples: fix a couple of nodiscard warnings from QFile::open In one case, the code simply checked for isOpen afterwards; refactor it to use QFile::open's result. In another case, a file was opened from the resource system, so add a check. Pick-to: 6.9 6.8 Change-Id: I5f4c22dd5ce678f15c9c1609c4228d50a2b32a1d Reviewed-by: Thiago Macieira --- examples/corelib/serialization/convert/main.cpp | 12 +++++++----- .../widgets/draganddrop/draggabletext/dragwidget.cpp | 7 ++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/examples/corelib/serialization/convert/main.cpp b/examples/corelib/serialization/convert/main.cpp index d3021fadca2..aae20eb4a9a 100644 --- a/examples/corelib/serialization/convert/main.cpp +++ b/examples/corelib/serialization/convert/main.cpp @@ -23,12 +23,14 @@ static const Converter *prepareConverter(QString format, Converter::Direction di : QIODevice::ReadOnly; const char *dirn = out ? "output" : "input"; - if (stream->fileName().isEmpty()) - stream->open(out ? stdout : stdin, mode); - else - stream->open(mode); + bool isOpen; - if (!stream->isOpen()) { + if (stream->fileName().isEmpty()) + isOpen = stream->open(out ? stdout : stdin, mode); + else + isOpen = stream->open(mode); + + if (!isOpen) { qFatal("Could not open \"%s\" for %s: %s", qPrintable(stream->fileName()), dirn, qPrintable(stream->errorString())); } else if (format == "auto"_L1) { diff --git a/examples/widgets/draganddrop/draggabletext/dragwidget.cpp b/examples/widgets/draganddrop/draggabletext/dragwidget.cpp index d56f91e9001..4142a564356 100644 --- a/examples/widgets/draganddrop/draggabletext/dragwidget.cpp +++ b/examples/widgets/draganddrop/draggabletext/dragwidget.cpp @@ -20,7 +20,12 @@ DragWidget::DragWidget(QWidget *parent) : QWidget(parent) { QFile dictionaryFile(QStringLiteral(":/dictionary/words.txt")); - dictionaryFile.open(QIODevice::ReadOnly); + if (!dictionaryFile.open(QIODevice::ReadOnly)) { + // This would be a build problem, as the dictionary is in the + // resource system. + qFatal("Could not open the dictionary file: %s", + qPrintable(dictionaryFile.errorString())); + } QTextStream inputStream(&dictionaryFile); int x = 5;