diff options
Diffstat (limited to 'examples/assistant/simpletextviewer/findfiledialog.cpp')
-rw-r--r-- | examples/assistant/simpletextviewer/findfiledialog.cpp | 98 |
1 files changed, 21 insertions, 77 deletions
diff --git a/examples/assistant/simpletextviewer/findfiledialog.cpp b/examples/assistant/simpletextviewer/findfiledialog.cpp index fec9e6e43..7dccfb074 100644 --- a/examples/assistant/simpletextviewer/findfiledialog.cpp +++ b/examples/assistant/simpletextviewer/findfiledialog.cpp @@ -1,52 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include "assistant.h" #include "findfiledialog.h" @@ -67,9 +20,9 @@ //! [0] FindFileDialog::FindFileDialog(TextEdit *editor, Assistant *assistant) : QDialog(editor) + , currentEditor(editor) + , currentAssistant(assistant) { - currentAssistant = assistant; - currentEditor = editor; //! [0] createButtons(); @@ -89,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)); @@ -108,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(); @@ -122,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() @@ -131,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; @@ -149,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)); @@ -178,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() @@ -201,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() |