#include <movieplayer.h>
Inheritance diagram for MoviePlayer:


Definition at line 39 of file movieplayer.h.
Public Member Functions | |
| MoviePlayer (QWidget *parent=0) | |
| void | openFile (const QString &fileName) |
Private Slots | |
| void | open () |
| void | goToFrame (int frame) |
| void | fitToWindow () |
| void | updateButtons () |
| void | updateFrameSlider () |
Private Member Functions | |
| void | createControls () |
| void | createButtons () |
Private Attributes | |
| 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 |
| MoviePlayer::MoviePlayer | ( | QWidget * | parent = 0 |
) |
Definition at line 28 of file movieplayer.cpp.
References QBoxLayout::addLayout(), QBoxLayout::addWidget(), Qt::AlignCenter, buttonsLayout, QMovie::CacheAll, QObject::connect(), controlsLayout, createButtons(), createControls(), currentMovieDirectory, QPalette::Dark, fitCheckBox, fitToWindow(), frameSlider, goToFrame(), QSizePolicy::Ignored, mainLayout, movie, movieLabel, QWidget::resize(), QLabel::setAlignment(), QWidget::setAutoFillBackground(), QWidget::setBackgroundRole(), QMovie::setCacheMode(), QWidget::setLayout(), QWidget::setSizePolicy(), QWidget::setWindowTitle(), SIGNAL, SLOT, speedSpinBox, updateButtons(), and updateFrameSlider().
00029 : QWidget(parent) 00030 { 00031 movie = new QMovie(this); 00032 movie->setCacheMode(QMovie::CacheAll); 00033 00034 movieLabel = new QLabel(tr("No movie loaded")); 00035 movieLabel->setAlignment(Qt::AlignCenter); 00036 movieLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); 00037 movieLabel->setBackgroundRole(QPalette::Dark); 00038 movieLabel->setAutoFillBackground(true); 00039 00040 currentMovieDirectory = "movies"; 00041 00042 createControls(); 00043 createButtons(); 00044 00045 connect(movie, SIGNAL(frameChanged(int)), this, SLOT(updateFrameSlider())); 00046 connect(movie, SIGNAL(stateChanged(QMovie::MovieState)), 00047 this, SLOT(updateButtons())); 00048 connect(fitCheckBox, SIGNAL(clicked()), this, SLOT(fitToWindow())); 00049 connect(frameSlider, SIGNAL(valueChanged(int)), this, SLOT(goToFrame(int))); 00050 connect(speedSpinBox, SIGNAL(valueChanged(int)), 00051 movie, SLOT(setSpeed(int))); 00052 00053 mainLayout = new QVBoxLayout; 00054 mainLayout->addWidget(movieLabel); 00055 mainLayout->addLayout(controlsLayout); 00056 mainLayout->addLayout(buttonsLayout); 00057 setLayout(mainLayout); 00058 00059 updateFrameSlider(); 00060 updateButtons(); 00061 00062 setWindowTitle(tr("Movie Player")); 00063 resize(400, 400); 00064 }
Here is the call graph for this function:

| void MoviePlayer::openFile | ( | const QString & | fileName | ) |
Definition at line 74 of file movieplayer.cpp.
References currentMovieDirectory, movie, movieLabel, QMovie::setFileName(), QLabel::setMovie(), QMovie::start(), QMovie::stop(), updateButtons(), and updateFrameSlider().
Referenced by open().
00075 { 00076 currentMovieDirectory = QFileInfo(fileName).path(); 00077 00078 movie->stop(); 00079 movieLabel->setMovie(movie); 00080 movie->setFileName(fileName); 00081 movie->start(); 00082 00083 updateFrameSlider(); 00084 updateButtons(); 00085 }
Here is the call graph for this function:

| void MoviePlayer::open | ( | ) | [private, slot] |
Definition at line 66 of file movieplayer.cpp.
References currentMovieDirectory, QFileDialog::getOpenFileName(), QString::isEmpty(), and openFile().
Referenced by createButtons().
00067 { 00068 QString fileName = QFileDialog::getOpenFileName(this, tr("Open a Movie"), 00069 currentMovieDirectory); 00070 if (!fileName.isEmpty()) 00071 openFile(fileName); 00072 }
| void MoviePlayer::goToFrame | ( | int | frame | ) | [private, slot] |
Definition at line 87 of file movieplayer.cpp.
References QMovie::jumpToFrame(), and movie.
Referenced by MoviePlayer().
00088 { 00089 movie->jumpToFrame(frame); 00090 }
| void MoviePlayer::fitToWindow | ( | ) | [private, slot] |
Definition at line 92 of file movieplayer.cpp.
References fitCheckBox, QAbstractButton::isChecked(), movieLabel, and QLabel::setScaledContents().
Referenced by MoviePlayer().
00093 { 00094 movieLabel->setScaledContents(fitCheckBox->isChecked()); 00095 }
| void MoviePlayer::updateButtons | ( | ) | [private, slot] |
Definition at line 116 of file movieplayer.cpp.
References QMovie::frameCount(), QMovie::isValid(), movie, QMovie::NotRunning, pauseButton, QMovie::Paused, playButton, QAbstractButton::setChecked(), QWidget::setEnabled(), QMovie::state(), and stopButton.
Referenced by MoviePlayer(), and openFile().
00117 { 00118 playButton->setEnabled(movie->isValid() && movie->frameCount() != 1 00119 && movie->state() == QMovie::NotRunning); 00120 pauseButton->setEnabled(movie->state() != QMovie::NotRunning); 00121 pauseButton->setChecked(movie->state() == QMovie::Paused); 00122 stopButton->setEnabled(movie->state() != QMovie::NotRunning); 00123 }
| void MoviePlayer::updateFrameSlider | ( | ) | [private, slot] |
Definition at line 97 of file movieplayer.cpp.
References QMovie::currentFrameNumber(), QMovie::frameCount(), frameLabel, frameSlider, QAbstractSlider::maximum(), movie, QWidget::setEnabled(), QAbstractSlider::setMaximum(), and QAbstractSlider::setValue().
Referenced by MoviePlayer(), and openFile().
00098 { 00099 bool hasFrames = (movie->currentFrameNumber() >= 0); 00100 00101 if (hasFrames) { 00102 if (movie->frameCount() > 0) { 00103 frameSlider->setMaximum(movie->frameCount() - 1); 00104 } else { 00105 if (movie->currentFrameNumber() > frameSlider->maximum()) 00106 frameSlider->setMaximum(movie->currentFrameNumber()); 00107 } 00108 frameSlider->setValue(movie->currentFrameNumber()); 00109 } else { 00110 frameSlider->setMaximum(0); 00111 } 00112 frameLabel->setEnabled(hasFrames); 00113 frameSlider->setEnabled(hasFrames); 00114 }
| void MoviePlayer::createControls | ( | ) | [private] |
Definition at line 125 of file movieplayer.cpp.
References QGridLayout::addWidget(), controlsLayout, fitCheckBox, frameLabel, frameSlider, Qt::Horizontal, QSpinBox::setRange(), QSpinBox::setSuffix(), QSlider::setTickInterval(), QSlider::setTickPosition(), QSpinBox::setValue(), speedLabel, speedSpinBox, and QSlider::TicksBelow.
Referenced by MoviePlayer().
00126 { 00127 fitCheckBox = new QCheckBox(tr("Fit to Window")); 00128 00129 frameLabel = new QLabel(tr("Current frame:")); 00130 00131 frameSlider = new QSlider(Qt::Horizontal); 00132 frameSlider->setTickPosition(QSlider::TicksBelow); 00133 frameSlider->setTickInterval(10); 00134 00135 speedLabel = new QLabel(tr("Speed:")); 00136 00137 speedSpinBox = new QSpinBox; 00138 speedSpinBox->setRange(1, 9999); 00139 speedSpinBox->setValue(100); 00140 speedSpinBox->setSuffix(tr("%")); 00141 00142 controlsLayout = new QGridLayout; 00143 controlsLayout->addWidget(fitCheckBox, 0, 0, 1, 2); 00144 controlsLayout->addWidget(frameLabel, 1, 0); 00145 controlsLayout->addWidget(frameSlider, 1, 1, 1, 2); 00146 controlsLayout->addWidget(speedLabel, 2, 0); 00147 controlsLayout->addWidget(speedSpinBox, 2, 1); 00148 }
Here is the call graph for this function:

| void MoviePlayer::createButtons | ( | ) | [private] |
Definition at line 150 of file movieplayer.cpp.
References QBoxLayout::addStretch(), QBoxLayout::addWidget(), buttonsLayout, QWidget::close(), QObject::connect(), movie, open(), openButton, pauseButton, playButton, quitButton, QAbstractButton::setCheckable(), QAbstractButton::setIcon(), QAbstractButton::setIconSize(), QWidget::setToolTip(), SIGNAL, SLOT, start, and stopButton.
Referenced by MoviePlayer().
00151 { 00152 QSize iconSize(36, 36); 00153 00154 openButton = new QToolButton; 00155 openButton->setIcon(QIcon(":/images/open.png")); 00156 openButton->setIconSize(iconSize); 00157 openButton->setToolTip(tr("Open File")); 00158 connect(openButton, SIGNAL(clicked()), this, SLOT(open())); 00159 00160 playButton = new QToolButton; 00161 playButton->setIcon(QIcon(":/images/play.png")); 00162 playButton->setIconSize(iconSize); 00163 playButton->setToolTip(tr("Play")); 00164 connect(playButton, SIGNAL(clicked()), movie, SLOT(start())); 00165 00166 pauseButton = new QToolButton; 00167 pauseButton->setCheckable(true); 00168 pauseButton->setIcon(QIcon(":/images/pause.png")); 00169 pauseButton->setIconSize(iconSize); 00170 pauseButton->setToolTip(tr("Pause")); 00171 connect(pauseButton, SIGNAL(clicked(bool)), movie, SLOT(setPaused(bool))); 00172 00173 stopButton = new QToolButton; 00174 stopButton->setIcon(QIcon(":/images/stop.png")); 00175 stopButton->setIconSize(iconSize); 00176 stopButton->setToolTip(tr("Stop")); 00177 connect(stopButton, SIGNAL(clicked()), movie, SLOT(stop())); 00178 00179 quitButton = new QToolButton; 00180 quitButton->setIcon(QIcon(":/images/quit.png")); 00181 quitButton->setIconSize(iconSize); 00182 quitButton->setToolTip(tr("Quit")); 00183 connect(quitButton, SIGNAL(clicked()), this, SLOT(close())); 00184 00185 buttonsLayout = new QHBoxLayout; 00186 buttonsLayout->addStretch(); 00187 buttonsLayout->addWidget(openButton); 00188 buttonsLayout->addWidget(playButton); 00189 buttonsLayout->addWidget(pauseButton); 00190 buttonsLayout->addWidget(stopButton); 00191 buttonsLayout->addWidget(quitButton); 00192 buttonsLayout->addStretch(); 00193 }
Here is the call graph for this function:

QString MoviePlayer::currentMovieDirectory [private] |
QLabel* MoviePlayer::movieLabel [private] |
Definition at line 59 of file movieplayer.h.
Referenced by fitToWindow(), MoviePlayer(), and openFile().
QMovie* MoviePlayer::movie [private] |
Definition at line 60 of file movieplayer.h.
Referenced by createButtons(), goToFrame(), MoviePlayer(), openFile(), updateButtons(), and updateFrameSlider().
QToolButton* MoviePlayer::openButton [private] |
QToolButton* MoviePlayer::playButton [private] |
QToolButton* MoviePlayer::pauseButton [private] |
QToolButton* MoviePlayer::stopButton [private] |
QToolButton* MoviePlayer::quitButton [private] |
QCheckBox* MoviePlayer::fitCheckBox [private] |
Definition at line 66 of file movieplayer.h.
Referenced by createControls(), fitToWindow(), and MoviePlayer().
QSlider* MoviePlayer::frameSlider [private] |
Definition at line 67 of file movieplayer.h.
Referenced by createControls(), MoviePlayer(), and updateFrameSlider().
QSpinBox* MoviePlayer::speedSpinBox [private] |
QLabel* MoviePlayer::frameLabel [private] |
Definition at line 69 of file movieplayer.h.
Referenced by createControls(), and updateFrameSlider().
QLabel* MoviePlayer::speedLabel [private] |
QGridLayout* MoviePlayer::controlsLayout [private] |
QHBoxLayout* MoviePlayer::buttonsLayout [private] |
QVBoxLayout* MoviePlayer::mainLayout [private] |
1.5.1