summaryrefslogtreecommitdiffstats
path: root/examples/widgets
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2023-06-09 10:51:40 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2023-06-12 21:22:36 +0200
commita89f575be3a410a06165dc19961b1a260a67464d (patch)
treeb5439f9aac922db0085e77f3984aa9f113595f82 /examples/widgets
parentce13dc8c2f73408ce2897f4bd044560955e38145 (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')
-rw-r--r--examples/widgets/itemviews/CMakeLists.txt1
-rw-r--r--examples/widgets/itemviews/itemviews.pro3
-rw-r--r--examples/widgets/itemviews/storageview/CMakeLists.txt37
-rw-r--r--examples/widgets/itemviews/storageview/main.cpp32
-rw-r--r--examples/widgets/itemviews/storageview/storagemodel.cpp164
-rw-r--r--examples/widgets/itemviews/storageview/storagemodel.h46
-rw-r--r--examples/widgets/itemviews/storageview/storageview.pro12
7 files changed, 1 insertions, 294 deletions
diff --git a/examples/widgets/itemviews/CMakeLists.txt b/examples/widgets/itemviews/CMakeLists.txt
index 8a6a448924..4a30dc3729 100644
--- a/examples/widgets/itemviews/CMakeLists.txt
+++ b/examples/widgets/itemviews/CMakeLists.txt
@@ -18,7 +18,6 @@ qt_internal_add_example(simplewidgetmapper)
qt_internal_add_example(spinboxdelegate)
qt_internal_add_example(spreadsheet)
qt_internal_add_example(stardelegate)
-qt_internal_add_example(storageview)
if(QT_FEATURE_draganddrop)
qt_internal_add_example(puzzle)
endif()
diff --git a/examples/widgets/itemviews/itemviews.pro b/examples/widgets/itemviews/itemviews.pro
index 68ffd21b74..3f941679c7 100644
--- a/examples/widgets/itemviews/itemviews.pro
+++ b/examples/widgets/itemviews/itemviews.pro
@@ -17,7 +17,6 @@ SUBDIRS = addressbook \
simplewidgetmapper \
spinboxdelegate \
spreadsheet \
- stardelegate \
- storageview
+ stardelegate
!qtConfig(draganddrop): SUBDIRS -= puzzle
!qtHaveModule(xml): SUBDIRS -= simpledommodel
diff --git a/examples/widgets/itemviews/storageview/CMakeLists.txt b/examples/widgets/itemviews/storageview/CMakeLists.txt
deleted file mode 100644
index a2ac260938..0000000000
--- a/examples/widgets/itemviews/storageview/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: BSD-3-Clause
-
-cmake_minimum_required(VERSION 3.16)
-project(storageview LANGUAGES CXX)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/itemviews/storageview")
-
-find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
-
-qt_standard_project_setup()
-
-qt_add_executable(storageview
- main.cpp
- storagemodel.cpp storagemodel.h
-)
-
-set_target_properties(storageview PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-
-target_link_libraries(storageview PRIVATE
- Qt6::Core
- Qt6::Gui
- Qt6::Widgets
-)
-
-install(TARGETS storageview
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/widgets/itemviews/storageview/main.cpp b/examples/widgets/itemviews/storageview/main.cpp
deleted file mode 100644
index 3bd5392736..0000000000
--- a/examples/widgets/itemviews/storageview/main.cpp
+++ /dev/null
@@ -1,32 +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 <QApplication>
-#include <QShortcut>
-#include <QTreeView>
-
-#include "storagemodel.h"
-
-int main(int argc, char *argv[])
-{
- QApplication a(argc, argv);
-
- QTreeView view;
- view.resize(640, 480);
- view.setWindowTitle("Storage View");
- view.setSelectionBehavior(QAbstractItemView::SelectRows);
-
- StorageModel *model = new StorageModel(&view);
- model->refresh();
- QShortcut *refreshShortcut = new QShortcut(QKeySequence::Refresh, &view);
- QObject::connect(refreshShortcut, &QShortcut::activated, model, &StorageModel::refresh);
- view.setModel(model);
-
- int columnCount = view.model()->columnCount();
- for (int c = 0; c < columnCount; ++c)
- view.resizeColumnToContents(c);
- view.show();
-
- return a.exec();
-}
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();
-}
diff --git a/examples/widgets/itemviews/storageview/storagemodel.h b/examples/widgets/itemviews/storageview/storagemodel.h
deleted file mode 100644
index f8cc3289c8..0000000000
--- a/examples/widgets/itemviews/storageview/storagemodel.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// Copyright (C) 2016 Ivan Komissarov
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef STORAGEMODEL_H
-#define STORAGEMODEL_H
-
-#include <QAbstractTableModel>
-#include <QStorageInfo>
-
-class StorageModel : public QAbstractTableModel
-{
- Q_OBJECT
- Q_DISABLE_COPY(StorageModel)
-public:
- enum Column {
- ColumnRootPath = 0,
- ColumnName,
- ColumnDevice,
- ColumnFileSystemName,
- ColumnTotal,
- ColumnFree,
- ColumnAvailable,
- ColumnIsReady,
- ColumnIsReadOnly,
- ColumnIsValid,
- ColumnCount
- };
-
- using QAbstractTableModel::QAbstractTableModel;
-
- int columnCount(const QModelIndex &parent) const override;
- int rowCount(const QModelIndex &parent) const override;
-
- QVariant data(const QModelIndex &index, int role) const override;
- Qt::ItemFlags flags(const QModelIndex &index) const override;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
-
-public slots:
- void refresh();
-
-private:
- QList<QStorageInfo> m_volumes;
-};
-
-#endif // STORAGEMODEL_H
diff --git a/examples/widgets/itemviews/storageview/storageview.pro b/examples/widgets/itemviews/storageview/storageview.pro
deleted file mode 100644
index 2fdb78e7b8..0000000000
--- a/examples/widgets/itemviews/storageview/storageview.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-QT += core gui widgets
-requires(qtConfig(treeview))
-TARGET = storageview
-TEMPLATE = app
-SOURCES += storagemodel.cpp \
- main.cpp
-HEADERS += \
- storagemodel.h
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/widgets/itemviews/storageview
-INSTALLS += target