// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include "window.h" #include "filelistmodel.h" #include Window::Window(QWidget *parent) : QWidget(parent) { model = new FileListModel(this); model->setDirPath(QDir::rootPath()); view = new QListView; view->setModel(model); logViewer = new QPlainTextEdit(this); logViewer->setReadOnly(true); logViewer->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)); connect(model, &FileListModel::numberPopulated, this, &Window::updateLog); connect(view, &QAbstractItemView::activated, this, &Window::activated); auto *layout = new QVBoxLayout(this); layout->addWidget(view); layout->addWidget(logViewer); setWindowTitle(tr("Fetch More Example")); } void Window::updateLog(const QString &path, int start, int number, int total) { const int last = start + number - 1; const QString nativePath = QDir::toNativeSeparators(path); const QString message = tr("%1..%2/%3 items from \"%4\" added.") .arg(start).arg(last).arg(total).arg(nativePath); logViewer->appendPlainText(message); } void Window::activated(const QModelIndex &index) { const QFileInfo fi = model->fileInfoAt(index); if (fi.isDir()) { logViewer->clear(); model->setDirPath(fi.absoluteFilePath()); } }