aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp')
-rw-r--r--sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp227
1 files changed, 0 insertions, 227 deletions
diff --git a/sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp b/sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp
deleted file mode 100644
index 5f0bd6f4d..000000000
--- a/sources/pyside2/doc/codesnippets/doc/src/snippets/separations/screenwidget.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of Qt for Python.
-**
-** $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$
-**
-****************************************************************************/
-
-/*
-screenwidget.cpp
-
-A widget to display colour components from an image using independently
-selected colors. Controls are provided to allow the image to be inverted, and
-the color to be selection via a standard dialog. The image is displayed in a
-label widget.
-*/
-
-#include <QApplication>
-#include <QColorDialog>
-#include <QGridLayout>
-#include <QImage>
-#include <QLabel>
-#include <QMenu>
-#include <QMimeData>
-#include <QMouseEvent>
-#include <QPixmap>
-#include <QPushButton>
-#include <QWidget>
-
-#include "screenwidget.h"
-
-/*!
-Initializes the paint color, the mask color (cyan, magenta,
-or yellow), connects the color selector and invert checkbox to functions,
-and creates a two-by-two grid layout.
-*/
-
-ScreenWidget::ScreenWidget(QWidget *parent, QColor initialColor,
- const QString &name, Separation mask,
- const QSize &labelSize)
- : QFrame(parent)
-{
- paintColor = initialColor;
- maskColor = mask;
- inverted = false;
-
- imageLabel = new QLabel;
- imageLabel->setFrameShadow(QFrame::Sunken);
- imageLabel->setFrameShape(QFrame::StyledPanel);
- imageLabel->setMinimumSize(labelSize);
-
- nameLabel = new QLabel(name);
- colorButton = new QPushButton(tr("Modify..."));
- colorButton->setBackgroundRole(QPalette::Button);
- colorButton->setMinimumSize(32, 32);
-
- QPalette palette(colorButton->palette());
- palette.setColor(QPalette::Button, initialColor);
- colorButton->setPalette(palette);
-
- invertButton = new QPushButton(tr("Invert"));
- //invertButton->setToggleButton(true);
- //invertButton->setOn(inverted);
- invertButton->setEnabled(false);
-
- connect(colorButton, SIGNAL(clicked()), this, SLOT(setColor()));
- connect(invertButton, SIGNAL(clicked()), this, SLOT(invertImage()));
-
- QGridLayout *gridLayout = new QGridLayout;
- gridLayout->addWidget(imageLabel, 0, 0, 1, 2);
- gridLayout->addWidget(nameLabel, 1, 0);
- gridLayout->addWidget(colorButton, 1, 1);
- gridLayout->addWidget(invertButton, 2, 1, 1, 1);
- setLayout(gridLayout);
-}
-
-/*!
- Creates a new image by separating out the cyan, magenta, or yellow
- component, depending on the mask color specified in the constructor.
-
- The amount of the component found in each pixel of the image is used
- to determine how much of a user-selected ink is used for each pixel
- in the new image for the label widget.
-*/
-
-void ScreenWidget::createImage()
-{
- newImage = originalImage.copy();
-
- // Create CMY components for the ink being used.
- float cyanInk = (255 - paintColor.red())/255.0;
- float magentaInk = (255 - paintColor.green())/255.0;
- float yellowInk = (255 - paintColor.blue())/255.0;
-
- int (*convert)(QRgb);
-
- switch (maskColor) {
- case Cyan:
- convert = qRed;
- break;
- case Magenta:
- convert = qGreen;
- break;
- case Yellow:
- convert = qBlue;
- break;
- }
-
- for (int y = 0; y < newImage.height(); ++y) {
- for (int x = 0; x < newImage.width(); ++x) {
- QRgb p(originalImage.pixel(x, y));
-
- // Separate the source pixel into its cyan component.
- int amount;
-
- if (inverted)
- amount = convert(p);
- else
- amount = 255 - convert(p);
-
- QColor newColor(
- 255 - qMin(int(amount * cyanInk), 255),
- 255 - qMin(int(amount * magentaInk), 255),
- 255 - qMin(int(amount * yellowInk), 255));
-
- newImage.setPixel(x, y, newColor.rgb());
- }
- }
-
- imageLabel->setPixmap(QPixmap::fromImage(newImage));
-}
-
-/*!
- Returns a pointer to the modified image.
-*/
-
-QImage* ScreenWidget::image()
-{
- return &newImage;
-}
-
-/*!
- Sets whether the amount of ink applied to the canvas is to be inverted
- (subtracted from the maximum value) before the ink is applied.
-*/
-
-void ScreenWidget::invertImage()
-{
- //inverted = invertButton->isOn();
- inverted = !inverted;
- createImage();
- emit imageChanged();
-}
-
-/*!
- Separate the current image into cyan, magenta, and yellow components.
- Create a representation of how each component might appear when applied
- to a blank white piece of paper.
-*/
-
-void ScreenWidget::setColor()
-{
- QColor newColor = QColorDialog::getColor(paintColor);
-
- if (newColor.isValid()) {
- paintColor = newColor;
- QPalette palette(colorButton->palette());
- palette.setColor(QPalette::Button, paintColor);
- colorButton->setPalette(palette);
- createImage();
- emit imageChanged();
- }
-}
-
-/*!
- Records the original image selected by the user, creates a color
- separation, and enables the invert image checkbox.
-*/
-
-void ScreenWidget::setImage(QImage &image)
-{
- originalImage = image;
- createImage();
- invertButton->setEnabled(true);
-}