diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-06-09 10:51:40 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-06-12 21:22:36 +0200 |
commit | a89f575be3a410a06165dc19961b1a260a67464d (patch) | |
tree | b5439f9aac922db0085e77f3984aa9f113595f82 /examples/widgets/itemviews/storageview/storagemodel.cpp | |
parent | ce13dc8c2f73408ce2897f4bd044560955e38145 (diff) |
Move storageview example into tests/manual
The code is mostly an implementation of a model based on QStorageInfo,
shown in an otherwise uninteresting tree view.
Pick-to: 6.5 6.6
Change-Id: Id6ce70d71ddc9bcd6e82a9ee12f5e1af159eac7a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'examples/widgets/itemviews/storageview/storagemodel.cpp')
-rw-r--r-- | examples/widgets/itemviews/storageview/storagemodel.cpp | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/examples/widgets/itemviews/storageview/storagemodel.cpp b/examples/widgets/itemviews/storageview/storagemodel.cpp deleted file mode 100644 index 194f8723f6..0000000000 --- a/examples/widgets/itemviews/storageview/storagemodel.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// Copyright (C) 2016 Ivan Komissarov -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "storagemodel.h" - -#include <QDir> -#include <QLocale> - -void StorageModel::refresh() -{ - beginResetModel(); - m_volumes = QStorageInfo::mountedVolumes(); - std::sort(m_volumes.begin(), m_volumes.end(), - [](const QStorageInfo &st1, const QStorageInfo &st2) { - static const QString rootSortString = QStringLiteral(" "); - return (st1.isRoot() ? rootSortString : st1.rootPath()) - < (st2.isRoot() ? rootSortString : st2.rootPath()); - }); - endResetModel(); -} - -int StorageModel::columnCount(const QModelIndex &/*parent*/) const -{ - return ColumnCount; -} - -int StorageModel::rowCount(const QModelIndex &parent) const -{ - if (parent.isValid()) - return 0; - return m_volumes.count(); -} - -Qt::ItemFlags StorageModel::flags(const QModelIndex &index) const -{ - Qt::ItemFlags result = QAbstractTableModel::flags(index); - switch (index.column()) { - case ColumnAvailable: - case ColumnIsReady: - case ColumnIsReadOnly: - case ColumnIsValid: - result |= Qt::ItemIsUserCheckable; - break; - default: - break; - } - return result; -} - -QVariant StorageModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid()) - return QVariant(); - - if (role == Qt::DisplayRole) { - const QStorageInfo &volume = m_volumes.at(index.row()); - switch (index.column()) { - case ColumnRootPath: - return QDir::toNativeSeparators(volume.rootPath()); - case ColumnName: - return volume.name(); - case ColumnDevice: - return volume.device(); - case ColumnFileSystemName: - return volume.fileSystemType(); - case ColumnTotal: - return QLocale().formattedDataSize(volume.bytesTotal()); - case ColumnFree: - return QLocale().formattedDataSize(volume.bytesFree()); - case ColumnAvailable: - return QLocale().formattedDataSize(volume.bytesAvailable()); - default: - break; - } - } else if (role == Qt::CheckStateRole) { - const QStorageInfo &volume = m_volumes.at(index.row()); - switch (index.column()) { - case ColumnIsReady: - return volume.isReady(); - case ColumnIsReadOnly: - return volume.isReadOnly(); - case ColumnIsValid: - return volume.isValid(); - default: - break; - } - } else if (role == Qt::TextAlignmentRole) { - switch (index.column()) { - case ColumnTotal: - case ColumnFree: - case ColumnAvailable: - return Qt::AlignTrailing; - default: - break; - } - return Qt::AlignLeading; - } else if (role == Qt::ToolTipRole) { - QLocale locale; - const QStorageInfo &volume = m_volumes.at(index.row()); - return tr("Root path : %1\n" - "Name: %2\n" - "Display Name: %3\n" - "Device: %4\n" - "FileSystem: %5\n" - "Total size: %6\n" - "Free size: %7\n" - "Available size: %8\n" - "Is Ready: %9\n" - "Is Read-only: %10\n" - "Is Valid: %11\n" - "Is Root: %12" - ). - arg(QDir::toNativeSeparators(volume.rootPath())). - arg(volume.name()). - arg(volume.displayName()). - arg(QString::fromUtf8(volume.device())). - arg(QString::fromUtf8(volume.fileSystemType())). - arg(locale.formattedDataSize(volume.bytesTotal())). - arg(locale.formattedDataSize(volume.bytesFree())). - arg(locale.formattedDataSize(volume.bytesAvailable())). - arg(volume.isReady() ? tr("true") : tr("false")). - arg(volume.isReadOnly() ? tr("true") : tr("false")). - arg(volume.isValid() ? tr("true") : tr("false")). - arg(volume.isRoot() ? tr("true") : tr("false")); - } - return QVariant(); -} - -QVariant StorageModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (orientation != Qt::Horizontal) - return QVariant(); - - if (role != Qt::DisplayRole) - return QVariant(); - - switch (section) { - case ColumnRootPath: - return tr("Root Path"); - case ColumnName: - return tr("Volume Name"); - case ColumnDevice: - return tr("Device"); - case ColumnFileSystemName: - return tr("File System"); - case ColumnTotal: - return tr("Total"); - case ColumnFree: - return tr("Free"); - case ColumnAvailable: - return tr("Available"); - case ColumnIsReady: - return tr("Ready"); - case ColumnIsReadOnly: - return tr("Read-only"); - case ColumnIsValid: - return tr("Valid"); - default: - break; - } - - return QVariant(); -} |