From 05def66af004440d047e6b5c86caf69961539a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Jun 2023 15:02:51 +0200 Subject: Move pixelator example to manual test Change-Id: I3ce2bc269a9f77bce3dd41f0127d01091c1408f6 Reviewed-by: Volker Hilsheimer (cherry picked from commit 921337f98c54d3c4a252569acd2152a1dea8c4bb) Reviewed-by: Qt Cherry-pick Bot --- examples/widgets/itemviews/CMakeLists.txt | 1 - examples/widgets/itemviews/itemviews.pro | 1 - .../widgets/itemviews/pixelator/CMakeLists.txt | 58 ------ .../widgets/itemviews/pixelator/imagemodel.cpp | 53 ----- examples/widgets/itemviews/pixelator/imagemodel.h | 31 --- examples/widgets/itemviews/pixelator/images.qrc | 5 - examples/widgets/itemviews/pixelator/images/qt.png | Bin 1506 -> 0 bytes examples/widgets/itemviews/pixelator/main.cpp | 15 -- .../widgets/itemviews/pixelator/mainwindow.cpp | 214 --------------------- examples/widgets/itemviews/pixelator/mainwindow.h | 37 ---- examples/widgets/itemviews/pixelator/pixelator.pro | 16 -- .../widgets/itemviews/pixelator/pixeldelegate.cpp | 68 ------- .../widgets/itemviews/pixelator/pixeldelegate.h | 41 ---- 13 files changed, 540 deletions(-) delete mode 100644 examples/widgets/itemviews/pixelator/CMakeLists.txt delete mode 100644 examples/widgets/itemviews/pixelator/imagemodel.cpp delete mode 100644 examples/widgets/itemviews/pixelator/imagemodel.h delete mode 100644 examples/widgets/itemviews/pixelator/images.qrc delete mode 100644 examples/widgets/itemviews/pixelator/images/qt.png delete mode 100644 examples/widgets/itemviews/pixelator/main.cpp delete mode 100644 examples/widgets/itemviews/pixelator/mainwindow.cpp delete mode 100644 examples/widgets/itemviews/pixelator/mainwindow.h delete mode 100644 examples/widgets/itemviews/pixelator/pixelator.pro delete mode 100644 examples/widgets/itemviews/pixelator/pixeldelegate.cpp delete mode 100644 examples/widgets/itemviews/pixelator/pixeldelegate.h (limited to 'examples/widgets/itemviews') diff --git a/examples/widgets/itemviews/CMakeLists.txt b/examples/widgets/itemviews/CMakeLists.txt index 93c36368ce..02b531f932 100644 --- a/examples/widgets/itemviews/CMakeLists.txt +++ b/examples/widgets/itemviews/CMakeLists.txt @@ -9,7 +9,6 @@ qt_internal_add_example(customsortfiltermodel) qt_internal_add_example(editabletreemodel) qt_internal_add_example(fetchmore) qt_internal_add_example(frozencolumn) -qt_internal_add_example(pixelator) qt_internal_add_example(simpletreemodel) qt_internal_add_example(simplewidgetmapper) qt_internal_add_example(spinboxdelegate) diff --git a/examples/widgets/itemviews/itemviews.pro b/examples/widgets/itemviews/itemviews.pro index 3b99ff9606..9fa7e6c9c9 100644 --- a/examples/widgets/itemviews/itemviews.pro +++ b/examples/widgets/itemviews/itemviews.pro @@ -7,7 +7,6 @@ SUBDIRS = addressbook \ editabletreemodel \ fetchmore \ frozencolumn \ - pixelator \ simpledommodel \ simpletreemodel \ simplewidgetmapper \ diff --git a/examples/widgets/itemviews/pixelator/CMakeLists.txt b/examples/widgets/itemviews/pixelator/CMakeLists.txt deleted file mode 100644 index 956599973e..0000000000 --- a/examples/widgets/itemviews/pixelator/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(pixelator LANGUAGES CXX) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/itemviews/pixelator") - -find_package(Qt6 - REQUIRED COMPONENTS Core Gui Widgets - OPTIONAL_COMPONENTS PrintSupport -) - -qt_standard_project_setup() - -qt_add_executable(pixelator - imagemodel.cpp imagemodel.h - main.cpp - mainwindow.cpp mainwindow.h - pixeldelegate.cpp pixeldelegate.h -) - -set_target_properties(pixelator PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(pixelator PRIVATE - Qt6::Core - Qt6::Gui - Qt6::Widgets -) - -if(TARGET Qt6::PrintSupport) - target_link_libraries(pixelator PRIVATE Qt6::PrintSupport) -endif() - -# Resources: -set(images_resource_files - "images/qt.png" -) - -qt_add_resources(pixelator "images" - PREFIX - "/" - FILES - ${images_resource_files} -) - -install(TARGETS pixelator - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/itemviews/pixelator/imagemodel.cpp b/examples/widgets/itemviews/pixelator/imagemodel.cpp deleted file mode 100644 index 6b5b866522..0000000000 --- a/examples/widgets/itemviews/pixelator/imagemodel.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "imagemodel.h" - -//! [0] -ImageModel::ImageModel(QObject *parent) - : QAbstractTableModel(parent) -{ -} -//! [0] - -//! [1] -void ImageModel::setImage(const QImage &image) -{ - beginResetModel(); - modelImage = image; - endResetModel(); -} -//! [1] - -//! [2] -int ImageModel::rowCount(const QModelIndex & /* parent */) const -{ - return modelImage.height(); -} - -int ImageModel::columnCount(const QModelIndex & /* parent */) const -//! [2] //! [3] -{ - return modelImage.width(); -} -//! [3] - -//! [4] -QVariant ImageModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid() || role != Qt::DisplayRole) - return QVariant(); - return qGray(modelImage.pixel(index.column(), index.row())); -} -//! [4] - -//! [5] -QVariant ImageModel::headerData(int /* section */, - Qt::Orientation /* orientation */, - int role) const -{ - if (role == Qt::SizeHintRole) - return QSize(1, 1); - return QVariant(); -} -//! [5] diff --git a/examples/widgets/itemviews/pixelator/imagemodel.h b/examples/widgets/itemviews/pixelator/imagemodel.h deleted file mode 100644 index 050ac6b790..0000000000 --- a/examples/widgets/itemviews/pixelator/imagemodel.h +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef IMAGEMODEL_H -#define IMAGEMODEL_H - -#include -#include - -//! [0] -class ImageModel : public QAbstractTableModel -{ - Q_OBJECT - -public: - ImageModel(QObject *parent = nullptr); - - void setImage(const QImage &image); - - int rowCount(const QModelIndex &parent = QModelIndex()) const override; - int columnCount(const QModelIndex &parent = QModelIndex()) const override; - - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; - -private: - QImage modelImage; -}; -//! [0] - -#endif // IMAGEMODEL_H diff --git a/examples/widgets/itemviews/pixelator/images.qrc b/examples/widgets/itemviews/pixelator/images.qrc deleted file mode 100644 index c105e13895..0000000000 --- a/examples/widgets/itemviews/pixelator/images.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - images/qt.png - - diff --git a/examples/widgets/itemviews/pixelator/images/qt.png b/examples/widgets/itemviews/pixelator/images/qt.png deleted file mode 100644 index dd197cb59c..0000000000 Binary files a/examples/widgets/itemviews/pixelator/images/qt.png and /dev/null differ diff --git a/examples/widgets/itemviews/pixelator/main.cpp b/examples/widgets/itemviews/pixelator/main.cpp deleted file mode 100644 index 26783b02fc..0000000000 --- a/examples/widgets/itemviews/pixelator/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include - -#include "mainwindow.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - MainWindow window; - window.show(); - window.openImage(":/images/qt.png"); - return app.exec(); -} diff --git a/examples/widgets/itemviews/pixelator/mainwindow.cpp b/examples/widgets/itemviews/pixelator/mainwindow.cpp deleted file mode 100644 index 42f0a43844..0000000000 --- a/examples/widgets/itemviews/pixelator/mainwindow.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "mainwindow.h" -#include "imagemodel.h" -#include "pixeldelegate.h" - -#include -#if defined(QT_PRINTSUPPORT_LIB) -#include -#if QT_CONFIG(printdialog) -#include -#include -#endif -#endif - -//! [0] -MainWindow::MainWindow() -{ -//! [0] - currentPath = QDir::homePath(); - model = new ImageModel(this); - - QWidget *centralWidget = new QWidget; - -//! [1] - view = new QTableView; - view->setShowGrid(false); - view->horizontalHeader()->hide(); - view->verticalHeader()->hide(); - view->horizontalHeader()->setMinimumSectionSize(1); - view->verticalHeader()->setMinimumSectionSize(1); - view->setModel(model); -//! [1] - -//! [2] - PixelDelegate *delegate = new PixelDelegate(this); - view->setItemDelegate(delegate); -//! [2] - -//! [3] - QLabel *pixelSizeLabel = new QLabel(tr("Pixel size:")); - QSpinBox *pixelSizeSpinBox = new QSpinBox; - pixelSizeSpinBox->setMinimum(4); - pixelSizeSpinBox->setMaximum(32); - pixelSizeSpinBox->setValue(12); -//! [3] - - QMenu *fileMenu = new QMenu(tr("&File"), this); - QAction *openAction = fileMenu->addAction(tr("&Open...")); - openAction->setShortcuts(QKeySequence::Open); - - printAction = fileMenu->addAction(tr("&Print...")); - printAction->setEnabled(false); - printAction->setShortcut(QKeySequence::Print); - - QAction *quitAction = fileMenu->addAction(tr("E&xit")); - quitAction->setShortcuts(QKeySequence::Quit); - - QMenu *helpMenu = new QMenu(tr("&Help"), this); - QAction *aboutAction = helpMenu->addAction(tr("&About")); - - menuBar()->addMenu(fileMenu); - menuBar()->addSeparator(); - menuBar()->addMenu(helpMenu); - - connect(openAction, &QAction::triggered, this, &MainWindow::chooseImage); - connect(printAction, &QAction::triggered, this, &MainWindow::printImage); - connect(quitAction, &QAction::triggered, qApp, &QCoreApplication::quit); - connect(aboutAction, &QAction::triggered, this, &MainWindow::showAboutBox); -//! [4] - connect(pixelSizeSpinBox, &QSpinBox::valueChanged, - delegate, &PixelDelegate::setPixelSize); - connect(pixelSizeSpinBox, &QSpinBox::valueChanged, - this, &MainWindow::updateView); -//! [4] - - QHBoxLayout *controlsLayout = new QHBoxLayout; - controlsLayout->addWidget(pixelSizeLabel); - controlsLayout->addWidget(pixelSizeSpinBox); - controlsLayout->addStretch(1); - - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(view); - mainLayout->addLayout(controlsLayout); - centralWidget->setLayout(mainLayout); - - setCentralWidget(centralWidget); - - setWindowTitle(tr("Pixelator")); - resize(640, 480); -//! [5] -} -//! [5] - -void MainWindow::chooseImage() -{ - QString fileName = QFileDialog::getOpenFileName(this, - tr("Choose an image"), currentPath, "*"); - - if (!fileName.isEmpty()) - openImage(fileName); -} - -void MainWindow::openImage(const QString &fileName) -{ - QImage image; - - if (image.load(fileName)) { - model->setImage(image); - if (!fileName.startsWith(":/")) { - currentPath = fileName; - setWindowTitle(tr("%1 - Pixelator").arg(currentPath)); - } - - printAction->setEnabled(true); - updateView(); - } -} - -void MainWindow::printImage() -{ -#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printdialog) - if (model->rowCount(QModelIndex())*model->columnCount(QModelIndex()) > 90000) { - QMessageBox::StandardButton answer; - answer = QMessageBox::question(this, tr("Large Image Size"), - tr("The printed image may be very large. Are you sure that " - "you want to print it?"), - QMessageBox::Yes | QMessageBox::No); - if (answer == QMessageBox::No) - return; - } - - QPrinter printer(QPrinter::HighResolution); - - QPrintDialog dlg(&printer, this); - dlg.setWindowTitle(tr("Print Image")); - - if (dlg.exec() != QDialog::Accepted) { - return; - } - - QPainter painter; - painter.begin(&printer); - - int rows = model->rowCount(QModelIndex()); - int columns = model->columnCount(QModelIndex()); - int sourceWidth = (columns + 1) * ItemSize; - int sourceHeight = (rows + 1) * ItemSize; - - painter.save(); - - double xscale = printer.pageRect(QPrinter::DevicePixel).width() / double(sourceWidth); - double yscale = printer.pageRect(QPrinter::DevicePixel).height() / double(sourceHeight); - double scale = qMin(xscale, yscale); - - painter.translate(printer.paperRect(QPrinter::DevicePixel).x() + printer.pageRect(QPrinter::DevicePixel).width() / 2, - printer.paperRect(QPrinter::DevicePixel).y() + printer.pageRect(QPrinter::DevicePixel).height() / 2); - painter.scale(scale, scale); - painter.translate(-sourceWidth / 2, -sourceHeight / 2); - - QStyleOptionViewItem option; - QModelIndex parent = QModelIndex(); - - QProgressDialog progress(tr("Printing..."), tr("Cancel"), 0, rows, this); - progress.setWindowModality(Qt::ApplicationModal); - float y = ItemSize / 2; - - for (int row = 0; row < rows; ++row) { - progress.setValue(row); - qApp->processEvents(); - if (progress.wasCanceled()) - break; - - float x = ItemSize / 2; - - for (int column = 0; column < columns; ++column) { - option.rect = QRect(int(x), int(y), ItemSize, ItemSize); - view->itemDelegate()->paint(&painter, option, - model->index(row, column, parent)); - x = x + ItemSize; - } - y = y + ItemSize; - } - progress.setValue(rows); - - painter.restore(); - painter.end(); - - if (progress.wasCanceled()) { - QMessageBox::information(this, tr("Printing canceled"), - tr("The printing process was canceled."), QMessageBox::Cancel); - } -#else - QMessageBox::information(this, tr("Printing canceled"), - tr("Printing is not supported on this Qt build"), QMessageBox::Cancel); -#endif -} - -void MainWindow::showAboutBox() -{ - QMessageBox::about(this, tr("About the Pixelator example"), - tr("This example demonstrates how a standard view and a custom\n" - "delegate can be used to produce a specialized representation\n" - "of data in a simple custom model.")); -} - -//! [6] -void MainWindow::updateView() -{ - view->resizeColumnsToContents(); - view->resizeRowsToContents(); -} -//! [6] diff --git a/examples/widgets/itemviews/pixelator/mainwindow.h b/examples/widgets/itemviews/pixelator/mainwindow.h deleted file mode 100644 index 9929e2f5af..0000000000 --- a/examples/widgets/itemviews/pixelator/mainwindow.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include - -class ImageModel; -QT_BEGIN_NAMESPACE -class QAction; -class QTableView; -QT_END_NAMESPACE - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - MainWindow(); - - void openImage(const QString &fileName); - -public slots: - void chooseImage(); - void printImage(); - void showAboutBox(); - void updateView(); - -private: - ImageModel *model; - QAction *printAction; - QString currentPath; - QTableView *view; -}; - -#endif // MAINWINDOW_H diff --git a/examples/widgets/itemviews/pixelator/pixelator.pro b/examples/widgets/itemviews/pixelator/pixelator.pro deleted file mode 100644 index 421f626e28..0000000000 --- a/examples/widgets/itemviews/pixelator/pixelator.pro +++ /dev/null @@ -1,16 +0,0 @@ -QT += widgets -requires(qtConfig(tableview)) -qtHaveModule(printsupport): QT += printsupport - -HEADERS = imagemodel.h \ - mainwindow.h \ - pixeldelegate.h -SOURCES = imagemodel.cpp \ - main.cpp \ - mainwindow.cpp \ - pixeldelegate.cpp -RESOURCES += images.qrc - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/itemviews/pixelator -INSTALLS += target diff --git a/examples/widgets/itemviews/pixelator/pixeldelegate.cpp b/examples/widgets/itemviews/pixelator/pixeldelegate.cpp deleted file mode 100644 index 3a104cd2c2..0000000000 --- a/examples/widgets/itemviews/pixelator/pixeldelegate.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "pixeldelegate.h" - -#include - -//! [0] -PixelDelegate::PixelDelegate(QObject *parent) - : QAbstractItemDelegate(parent), pixelSize(12) -{} -//! [0] - -//! [1] -void PixelDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, - const QModelIndex &index) const -{ -//! [2] - if (option.state & QStyle::State_Selected) - painter->fillRect(option.rect, option.palette.highlight()); -//! [1] - -//! [3] - const int size = qMin(option.rect.width(), option.rect.height()); -//! [3] //! [4] - const int brightness = index.model()->data(index, Qt::DisplayRole).toInt(); - const double radius = (size / 2.0) - (brightness / 255.0 * size / 2.0); - if (qFuzzyIsNull(radius)) - return; -//! [4] - -//! [5] - painter->save(); -//! [5] //! [6] - painter->setRenderHint(QPainter::Antialiasing, true); -//! [6] //! [7] - painter->setPen(Qt::NoPen); -//! [7] //! [8] - if (option.state & QStyle::State_Selected) -//! [8] //! [9] - painter->setBrush(option.palette.highlightedText()); - else -//! [2] - painter->setBrush(option.palette.text()); -//! [9] - -//! [10] - painter->drawEllipse(QRectF(option.rect.x() + option.rect.width() / 2 - radius, - option.rect.y() + option.rect.height() / 2 - radius, - 2 * radius, 2 * radius)); - painter->restore(); -} -//! [10] - -//! [11] -QSize PixelDelegate::sizeHint(const QStyleOptionViewItem & /* option */, - const QModelIndex & /* index */) const -{ - return QSize(pixelSize, pixelSize); -} -//! [11] - -//! [12] -void PixelDelegate::setPixelSize(int size) -{ - pixelSize = size; -} -//! [12] diff --git a/examples/widgets/itemviews/pixelator/pixeldelegate.h b/examples/widgets/itemviews/pixelator/pixeldelegate.h deleted file mode 100644 index a4c435ce69..0000000000 --- a/examples/widgets/itemviews/pixelator/pixeldelegate.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef PIXELDELEGATE_H -#define PIXELDELEGATE_H - -#include -#include -#include - -QT_BEGIN_NAMESPACE -class QAbstractItemModel; -class QObject; -class QPainter; -QT_END_NAMESPACE - -static constexpr int ItemSize = 256; - -//! [0] -class PixelDelegate : public QAbstractItemDelegate -{ - Q_OBJECT - -public: - PixelDelegate(QObject *parent = nullptr); - - void paint(QPainter *painter, const QStyleOptionViewItem &option, - const QModelIndex &index) const override; - - QSize sizeHint(const QStyleOptionViewItem &option, - const QModelIndex &index) const override; - -public slots: - void setPixelSize(int size); - -private: - int pixelSize; -}; -//! [0] - -#endif // PIXELDELEGATE_H -- cgit v1.2.3