diff options
Diffstat (limited to 'examples/widgets/widgets/movie')
-rw-r--r-- | examples/widgets/widgets/movie/CMakeLists.txt | 40 | ||||
-rw-r--r-- | examples/widgets/widgets/movie/animation.gif | bin | 42629 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/widgets/movie/main.cpp | 62 | ||||
-rw-r--r-- | examples/widgets/widgets/movie/movie.pro | 12 | ||||
-rw-r--r-- | examples/widgets/widgets/movie/movieplayer.cpp | 227 | ||||
-rw-r--r-- | examples/widgets/widgets/movie/movieplayer.h | 106 |
6 files changed, 0 insertions, 447 deletions
diff --git a/examples/widgets/widgets/movie/CMakeLists.txt b/examples/widgets/widgets/movie/CMakeLists.txt deleted file mode 100644 index a990a98f48..0000000000 --- a/examples/widgets/widgets/movie/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -# Generated from movie.pro. - -cmake_minimum_required(VERSION 3.14) -project(movie LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/widgets/movie") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) - -qt_add_executable(movie - main.cpp - movieplayer.cpp movieplayer.h -) -set_target_properties(movie PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(movie PUBLIC - Qt::Core - Qt::Gui - Qt::Widgets -) - -install(TARGETS movie - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/widgets/movie/animation.gif b/examples/widgets/widgets/movie/animation.gif Binary files differdeleted file mode 100644 index f674369efc..0000000000 --- a/examples/widgets/widgets/movie/animation.gif +++ /dev/null diff --git a/examples/widgets/widgets/movie/main.cpp b/examples/widgets/widgets/movie/main.cpp deleted file mode 100644 index 7e5a07a394..0000000000 --- a/examples/widgets/widgets/movie/main.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $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$ -** -****************************************************************************/ - -#include <QApplication> - -#include "movieplayer.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - MoviePlayer player; - player.show(); - player.show(); - return app.exec(); -} diff --git a/examples/widgets/widgets/movie/movie.pro b/examples/widgets/widgets/movie/movie.pro deleted file mode 100644 index f9f89109e4..0000000000 --- a/examples/widgets/widgets/movie/movie.pro +++ /dev/null @@ -1,12 +0,0 @@ -QT += widgets -requires(qtConfig(filedialog)) - -HEADERS = movieplayer.h -SOURCES = main.cpp \ - movieplayer.cpp - -EXAMPLE_FILES = animation.gif - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/movie -INSTALLS += target diff --git a/examples/widgets/widgets/movie/movieplayer.cpp b/examples/widgets/widgets/movie/movieplayer.cpp deleted file mode 100644 index 76849268ab..0000000000 --- a/examples/widgets/widgets/movie/movieplayer.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 the Qt Toolkit. -** -** $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$ -** -****************************************************************************/ - -#include "movieplayer.h" - -#include <QCheckBox> -#include <QFileDialog> -#include <QLabel> -#include <QMovie> -#include <QSlider> -#include <QSpinBox> -#include <QStyle> -#include <QToolButton> -#include <QVBoxLayout> - -MoviePlayer::MoviePlayer(QWidget *parent) - : QWidget(parent) -{ - movie = new QMovie(this); - movie->setCacheMode(QMovie::CacheAll); - - movieLabel = new QLabel(tr("No movie loaded")); - movieLabel->setAlignment(Qt::AlignCenter); - movieLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); - movieLabel->setBackgroundRole(QPalette::Dark); - movieLabel->setAutoFillBackground(true); - - currentMovieDirectory = "movies"; - - createControls(); - createButtons(); - - connect(movie, &QMovie::frameChanged, this, &MoviePlayer::updateFrameSlider); - connect(movie, &QMovie::stateChanged, this, &MoviePlayer::updateButtons); - connect(fitCheckBox, &QCheckBox::clicked, this, &MoviePlayer::fitToWindow); - connect(frameSlider, &QSlider::valueChanged, this, &MoviePlayer::goToFrame); - connect(speedSpinBox, &QSpinBox::valueChanged, - movie, &QMovie::setSpeed); - - mainLayout = new QVBoxLayout; - mainLayout->addWidget(movieLabel); - mainLayout->addLayout(controlsLayout); - mainLayout->addLayout(buttonsLayout); - setLayout(mainLayout); - - updateFrameSlider(); - updateButtons(); - - setWindowTitle(tr("Movie Player")); - resize(400, 400); -} - -void MoviePlayer::open() -{ - QString fileName = QFileDialog::getOpenFileName(this, tr("Open a Movie"), - currentMovieDirectory); - if (!fileName.isEmpty()) - openFile(fileName); -} - -void MoviePlayer::openFile(const QString &fileName) -{ - currentMovieDirectory = QFileInfo(fileName).path(); - - movie->stop(); - movieLabel->setMovie(movie); - movie->setFileName(fileName); - movie->start(); - - updateFrameSlider(); - updateButtons(); -} - -void MoviePlayer::goToFrame(int frame) -{ - movie->jumpToFrame(frame); -} - -void MoviePlayer::fitToWindow() -{ - movieLabel->setScaledContents(fitCheckBox->isChecked()); -} - -void MoviePlayer::updateFrameSlider() -{ - bool hasFrames = (movie->currentFrameNumber() >= 0); - - if (hasFrames) { - if (movie->frameCount() > 0) { - frameSlider->setMaximum(movie->frameCount() - 1); - } else { - if (movie->currentFrameNumber() > frameSlider->maximum()) - frameSlider->setMaximum(movie->currentFrameNumber()); - } - frameSlider->setValue(movie->currentFrameNumber()); - } else { - frameSlider->setMaximum(0); - } - frameLabel->setEnabled(hasFrames); - frameSlider->setEnabled(hasFrames); -} - -void MoviePlayer::updateButtons() -{ - playButton->setEnabled(movie->isValid() && movie->frameCount() != 1 - && movie->state() == QMovie::NotRunning); - pauseButton->setEnabled(movie->state() != QMovie::NotRunning); - pauseButton->setChecked(movie->state() == QMovie::Paused); - stopButton->setEnabled(movie->state() != QMovie::NotRunning); -} - -void MoviePlayer::createControls() -{ - fitCheckBox = new QCheckBox(tr("Fit to Window")); - - frameLabel = new QLabel(tr("Current frame:")); - - frameSlider = new QSlider(Qt::Horizontal); - frameSlider->setTickPosition(QSlider::TicksBelow); - frameSlider->setTickInterval(10); - - speedLabel = new QLabel(tr("Speed:")); - - speedSpinBox = new QSpinBox; - speedSpinBox->setRange(1, 9999); - speedSpinBox->setValue(100); - speedSpinBox->setSuffix(tr("%")); - - controlsLayout = new QGridLayout; - controlsLayout->addWidget(fitCheckBox, 0, 0, 1, 2); - controlsLayout->addWidget(frameLabel, 1, 0); - controlsLayout->addWidget(frameSlider, 1, 1, 1, 2); - controlsLayout->addWidget(speedLabel, 2, 0); - controlsLayout->addWidget(speedSpinBox, 2, 1); -} - -void MoviePlayer::createButtons() -{ - QSize iconSize(36, 36); - - openButton = new QToolButton; - openButton->setIcon(style()->standardIcon(QStyle::SP_DialogOpenButton)); - openButton->setIconSize(iconSize); - openButton->setToolTip(tr("Open File")); - connect(openButton, &QToolButton::clicked, this, &MoviePlayer::open); - - playButton = new QToolButton; - playButton->setIcon(style()->standardIcon(QStyle::SP_MediaPlay)); - playButton->setIconSize(iconSize); - playButton->setToolTip(tr("Play")); - connect(playButton, &QToolButton::clicked, movie, &QMovie::start); - - pauseButton = new QToolButton; - pauseButton->setCheckable(true); - pauseButton->setIcon(style()->standardIcon(QStyle::SP_MediaPause)); - pauseButton->setIconSize(iconSize); - pauseButton->setToolTip(tr("Pause")); - connect(pauseButton, &QToolButton::clicked, movie, &QMovie::setPaused); - - stopButton = new QToolButton; - stopButton->setIcon(style()->standardIcon(QStyle::SP_MediaStop)); - stopButton->setIconSize(iconSize); - stopButton->setToolTip(tr("Stop")); - connect(stopButton, &QToolButton::clicked, movie, &QMovie::stop); - - quitButton = new QToolButton; - quitButton->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton)); - quitButton->setIconSize(iconSize); - quitButton->setToolTip(tr("Quit")); - connect(quitButton, &QToolButton::clicked, this, &MoviePlayer::close); - - buttonsLayout = new QHBoxLayout; - buttonsLayout->addStretch(); - buttonsLayout->addWidget(openButton); - buttonsLayout->addWidget(playButton); - buttonsLayout->addWidget(pauseButton); - buttonsLayout->addWidget(stopButton); - buttonsLayout->addWidget(quitButton); - buttonsLayout->addStretch(); -} diff --git a/examples/widgets/widgets/movie/movieplayer.h b/examples/widgets/widgets/movie/movieplayer.h deleted file mode 100644 index 7d143bd37c..0000000000 --- a/examples/widgets/widgets/movie/movieplayer.h +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $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$ -** -****************************************************************************/ - -#ifndef MOVIEPLAYER_H -#define MOVIEPLAYER_H - -#include <QWidget> - -QT_BEGIN_NAMESPACE -class QCheckBox; -class QGridLayout; -class QHBoxLayout; -class QLabel; -class QMovie; -class QSlider; -class QSpinBox; -class QToolButton; -class QVBoxLayout; -QT_END_NAMESPACE - -class MoviePlayer : public QWidget -{ - Q_OBJECT - -public: - MoviePlayer(QWidget *parent = nullptr); - void openFile(const QString &fileName); - -private slots: - void open(); - void goToFrame(int frame); - void fitToWindow(); - void updateButtons(); - void updateFrameSlider(); - -private: - void createControls(); - void createButtons(); - - QString currentMovieDirectory; - QLabel *movieLabel; - QMovie *movie; - QToolButton *openButton; - QToolButton *playButton; - QToolButton *pauseButton; - QToolButton *stopButton; - QToolButton *quitButton; - QCheckBox *fitCheckBox; - QSlider *frameSlider; - QSpinBox *speedSpinBox; - QLabel *frameLabel; - QLabel *speedLabel; - - QGridLayout *controlsLayout; - QHBoxLayout *buttonsLayout; - QVBoxLayout *mainLayout; -}; - -#endif |