summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-07-18 08:56:51 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-07-24 07:10:35 +0000
commit160ec0ada4d41c62c915092305b6e26df892a91b (patch)
treeaecf41a142fb8d994afe918734e7235e937b45b1
parent1909f6d4ee9f259afeb10ac05dcdae26441a4b79 (diff)
SimpleTextViewer: Revamp the example
Fix const correctness. Fix code formatting. Fix error message on crash. Use initializer lists in c'tors. Limit the start assistant timeout to 3 seconds, like it's done for termination. Change-Id: Idfafa35834fba725b03d80e6252be8ac3eaf489f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit cbcd71aeac7c092c52de3d55f0f303d1cf4cab65) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/assistant/simpletextviewer/assistant.cpp32
-rw-r--r--examples/assistant/simpletextviewer/assistant.h2
-rw-r--r--examples/assistant/simpletextviewer/findfiledialog.cpp47
-rw-r--r--examples/assistant/simpletextviewer/findfiledialog.h3
-rw-r--r--examples/assistant/simpletextviewer/mainwindow.cpp5
-rw-r--r--examples/assistant/simpletextviewer/mainwindow.h2
-rw-r--r--examples/assistant/simpletextviewer/textedit.cpp4
7 files changed, 39 insertions, 56 deletions
diff --git a/examples/assistant/simpletextviewer/assistant.cpp b/examples/assistant/simpletextviewer/assistant.cpp
index 69e9b2d06..5b6b0bba4 100644
--- a/examples/assistant/simpletextviewer/assistant.cpp
+++ b/examples/assistant/simpletextviewer/assistant.cpp
@@ -10,8 +10,6 @@
#include <QMessageBox>
#include <QStandardPaths>
-Assistant::Assistant() = default;
-
//! [0]
Assistant::~Assistant()
{
@@ -36,7 +34,7 @@ void Assistant::showDocumentation(const QString &page)
}
//! [1]
-QString documentationDirectory()
+static QString documentationDirectory()
{
QStringList paths;
#ifdef SRCDIR
@@ -50,18 +48,18 @@ QString documentationDirectory()
if (QFileInfo::exists(path))
return path;
}
- return QString();
+ return {};
}
//! [2]
bool Assistant::startAssistant()
{
if (m_process.isNull()) {
- m_process.reset(new QProcess());
+ m_process.reset(new QProcess);
QObject::connect(m_process.data(), &QProcess::finished,
m_process.data(), [this](int exitCode, QProcess::ExitStatus status) {
- this->finished(exitCode, status);
- });
+ finished(exitCode, status);
+ });
}
if (m_process->state() != QProcess::Running) {
@@ -78,15 +76,15 @@ bool Assistant::startAssistant()
return false;
}
- QStringList args{QLatin1String("-collectionFile"),
- collectionDirectory + QLatin1String("/simpletextviewer.qhc"),
- QLatin1String("-enableRemoteControl")};
+ const QStringList args{QLatin1String("-collectionFile"),
+ collectionDirectory + QLatin1String("/simpletextviewer.qhc"),
+ QLatin1String("-enableRemoteControl")};
m_process->start(app, args);
- if (!m_process->waitForStarted()) {
+ if (!m_process->waitForStarted(3000)) {
showError(tr("Unable to launch Qt Assistant (%1): %2")
- .arg(QDir::toNativeSeparators(app), m_process->errorString()));
+ .arg(QDir::toNativeSeparators(app), m_process->errorString()));
return false;
}
}
@@ -96,16 +94,14 @@ bool Assistant::startAssistant()
void Assistant::showError(const QString &message)
{
- QMessageBox::critical(QApplication::activeWindow(),
- tr("Simple Text Viewer"), message);
+ QMessageBox::critical(QApplication::activeWindow(), tr("Simple Text Viewer"), message);
}
void Assistant::finished(int exitCode, QProcess::ExitStatus status)
{
const QString stdErr = QString::fromLocal8Bit(m_process->readAllStandardError());
- if (status != QProcess::NormalExit) {
- showError(tr("Assistant crashed: ").arg(stdErr));
- } else if (exitCode != 0) {
+ if (status != QProcess::NormalExit)
+ showError(tr("Assistant crashed: %1").arg(stdErr));
+ else if (exitCode != 0)
showError(tr("Assistant exited with %1: %2").arg(exitCode).arg(stdErr));
- }
}
diff --git a/examples/assistant/simpletextviewer/assistant.h b/examples/assistant/simpletextviewer/assistant.h
index 9c881f93c..1cbc8b9e2 100644
--- a/examples/assistant/simpletextviewer/assistant.h
+++ b/examples/assistant/simpletextviewer/assistant.h
@@ -9,13 +9,11 @@
#include <QScopedPointer>
#include <QString>
-
class Assistant
{
Q_DECLARE_TR_FUNCTIONS(Assistant)
public:
- Assistant();
~Assistant();
void showDocumentation(const QString &file);
diff --git a/examples/assistant/simpletextviewer/findfiledialog.cpp b/examples/assistant/simpletextviewer/findfiledialog.cpp
index 78087a3e0..7dccfb074 100644
--- a/examples/assistant/simpletextviewer/findfiledialog.cpp
+++ b/examples/assistant/simpletextviewer/findfiledialog.cpp
@@ -20,9 +20,9 @@
//! [0]
FindFileDialog::FindFileDialog(TextEdit *editor, Assistant *assistant)
: QDialog(editor)
+ , currentEditor(editor)
+ , currentAssistant(assistant)
{
- currentAssistant = assistant;
- currentEditor = editor;
//! [0]
createButtons();
@@ -42,8 +42,8 @@ FindFileDialog::FindFileDialog(TextEdit *editor, Assistant *assistant)
void FindFileDialog::browse()
{
- QString currentDirectory = directoryComboBox->currentText();
- QString newDirectory = QFileDialog::getExistingDirectory(this,
+ const QString currentDirectory = directoryComboBox->currentText();
+ const QString newDirectory = QFileDialog::getExistingDirectory(this,
tr("Select Directory"), currentDirectory);
if (!newDirectory.isEmpty()) {
directoryComboBox->addItem(QDir::toNativeSeparators(newDirectory));
@@ -61,12 +61,12 @@ void FindFileDialog::help()
void FindFileDialog::openFile()
{
- auto item = foundFilesTree->currentItem();
+ QTreeWidgetItem *item = foundFilesTree->currentItem();
if (!item)
return;
- QString fileName = item->text(0);
- QString path = QDir(directoryComboBox->currentText()).filePath(fileName);
+ const QString fileName = item->text(0);
+ const QString path = QDir(directoryComboBox->currentText()).filePath(fileName);
currentEditor->setContents(path);
close();
@@ -75,8 +75,7 @@ void FindFileDialog::openFile()
void FindFileDialog::update()
{
findFiles();
- buttonBox->button(QDialogButtonBox::Open)->setEnabled(
- foundFilesTree->topLevelItemCount() > 0);
+ buttonBox->button(QDialogButtonBox::Open)->setEnabled(foundFilesTree->topLevelItemCount() > 0);
}
void FindFileDialog::findFiles()
@@ -84,9 +83,9 @@ void FindFileDialog::findFiles()
QString wildCard = fileNameComboBox->currentText();
if (!wildCard.endsWith('*'))
wildCard += '*';
- QRegularExpression filePattern(QRegularExpression::wildcardToRegularExpression(wildCard));
+ const QRegularExpression filePattern(QRegularExpression::wildcardToRegularExpression(wildCard));
- QDir directory(directoryComboBox->currentText());
+ const QDir directory(directoryComboBox->currentText());
const QStringList allFiles = directory.entryList(QDir::Files | QDir::NoSymLinks);
QStringList matchingFiles;
@@ -102,10 +101,8 @@ void FindFileDialog::showFiles(const QStringList &files)
{
foundFilesTree->clear();
- for (int i = 0; i < files.count(); ++i) {
- QTreeWidgetItem *item = new QTreeWidgetItem(foundFilesTree);
- item->setText(0, files[i]);
- }
+ for (const QString &file : files)
+ new QTreeWidgetItem(foundFilesTree, {file});
if (files.count() > 0)
foundFilesTree->setCurrentItem(foundFilesTree->topLevelItem(0));
@@ -131,19 +128,14 @@ void FindFileDialog::createComboBoxes()
fileNameComboBox = new QComboBox;
fileNameComboBox->setEditable(true);
- fileNameComboBox->setSizePolicy(QSizePolicy::Expanding,
- QSizePolicy::Preferred);
+ fileNameComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
directoryComboBox->setMinimumContentsLength(30);
- directoryComboBox->setSizeAdjustPolicy(
- QComboBox::AdjustToContents);
- directoryComboBox->setSizePolicy(QSizePolicy::Expanding,
- QSizePolicy::Preferred);
-
- connect(fileNameComboBox, &QComboBox::editTextChanged,
- this, &FindFileDialog::update);
- connect(directoryComboBox, &QComboBox::currentTextChanged,
- this, &FindFileDialog::update);
+ directoryComboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+ directoryComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+
+ connect(fileNameComboBox, &QComboBox::editTextChanged, this, &FindFileDialog::update);
+ connect(directoryComboBox, &QComboBox::currentTextChanged, this, &FindFileDialog::update);
}
void FindFileDialog::createFilesTree()
@@ -154,8 +146,7 @@ void FindFileDialog::createFilesTree()
foundFilesTree->setRootIsDecorated(false);
foundFilesTree->setSelectionMode(QAbstractItemView::SingleSelection);
- connect(foundFilesTree, &QTreeWidget::itemActivated,
- this, &FindFileDialog::openFile);
+ connect(foundFilesTree, &QTreeWidget::itemActivated, this, &FindFileDialog::openFile);
}
void FindFileDialog::createLabels()
diff --git a/examples/assistant/simpletextviewer/findfiledialog.h b/examples/assistant/simpletextviewer/findfiledialog.h
index 6dcd15d9b..7e77938dd 100644
--- a/examples/assistant/simpletextviewer/findfiledialog.h
+++ b/examples/assistant/simpletextviewer/findfiledialog.h
@@ -12,7 +12,6 @@ class QDialogButtonBox;
class QLabel;
class QToolButton;
class QTreeWidget;
-class QTreeWidgetItem;
QT_END_NAMESPACE
class Assistant;
@@ -42,8 +41,8 @@ private:
void createLabels();
void createLayout();
- Assistant *currentAssistant;
TextEdit *currentEditor;
+ Assistant *currentAssistant;
QTreeWidget *foundFilesTree;
QComboBox *directoryComboBox;
diff --git a/examples/assistant/simpletextviewer/mainwindow.cpp b/examples/assistant/simpletextviewer/mainwindow.cpp
index 321e46ddd..3709ae7df 100644
--- a/examples/assistant/simpletextviewer/mainwindow.cpp
+++ b/examples/assistant/simpletextviewer/mainwindow.cpp
@@ -15,10 +15,10 @@
// ![0]
MainWindow::MainWindow()
+ : textViewer(new TextEdit)
+ , assistant(new Assistant)
{
- assistant = new Assistant;
// ![0]
- textViewer = new TextEdit;
textViewer->setContents(QLibraryInfo::path(QLibraryInfo::ExamplesPath)
+ QLatin1String("/assistant/simpletextviewer/documentation/intro.html"));
setCentralWidget(textViewer);
@@ -103,7 +103,6 @@ void MainWindow::createMenus()
helpMenu->addAction(aboutAct);
helpMenu->addAction(aboutQtAct);
-
menuBar()->addMenu(fileMenu);
menuBar()->addMenu(helpMenu);
}
diff --git a/examples/assistant/simpletextviewer/mainwindow.h b/examples/assistant/simpletextviewer/mainwindow.h
index 81a5dd10e..59b5472f0 100644
--- a/examples/assistant/simpletextviewer/mainwindow.h
+++ b/examples/assistant/simpletextviewer/mainwindow.h
@@ -33,8 +33,8 @@ private:
void createActions();
void createMenus();
- Assistant *assistant;
TextEdit *textViewer;
+ Assistant *assistant;
QMenu *fileMenu;
QMenu *helpMenu;
diff --git a/examples/assistant/simpletextviewer/textedit.cpp b/examples/assistant/simpletextviewer/textedit.cpp
index 4a1f7159f..2f52f73a1 100644
--- a/examples/assistant/simpletextviewer/textedit.cpp
+++ b/examples/assistant/simpletextviewer/textedit.cpp
@@ -14,11 +14,11 @@ TextEdit::TextEdit(QWidget *parent)
void TextEdit::setContents(const QString &fileName)
{
- QFileInfo fi(fileName);
+ const QFileInfo fi(fileName);
srcUrl = QUrl::fromLocalFile(fi.absoluteFilePath());
QFile file(fileName);
if (file.open(QIODevice::ReadOnly)) {
- QString data(file.readAll());
+ const QString data(QString::fromUtf8(file.readAll()));
if (fileName.endsWith(".html"))
setHtml(data);
else