Mercurial > retraceit
view src/pngplayer.h @ 38:26e1521b9afd
Add the possibility to detach the picture label on doubleclick
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 06 May 2015 18:09:34 +0200 |
parents | 0c05958d254c |
children | 73e6b6b12412 |
line wrap: on
line source
#ifndef PNGPLAYER_H #define PNGPLAYER_H /* Copyright (C) 2015 by ETH Zürich * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=2) * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ #include <QWidget> #include <QDir> #include <QTimer> #include <QDateTime> class QSlider; class QLabel; class QPushButton; class ImageLabel; class PNGPlayer: public QWidget { Q_OBJECT public: PNGPlayer (QWidget * parent = 0, Qt::WindowFlags f = 0); /**@brief close the player * * This function makes sure that the png label is also * closed when detached. **/ void close(); protected: void setupGUI(); protected slots: /**@brief the view slider was changed manually */ void sliderChanged(); /**@brief the view slider was pressed */ void sliderPressed(); /**@brief the view slider was released */ void sliderReleased(); /**@brief jump to the first frame */ void firstClicked(); /**@brief jump to the last frame */ void lastClicked(); public slots: /**@brief show a PNG in the viewer. * * @param fileName: The picture file to show. * @param current: The row index of the currently shown image. * @param max: The row count. * @param timestamp: The timestamp of the image. * @param number: The index number of the picture to show. */ void showPicture(const QString& fileName, int current, int max, const QDateTime& timestamp, int number); /**@brief set the base dir to which filenames will be relative. */ void setBaseDir(const QString& dirName) { mBaseDir.setPath(dirName); } /**@brief update positional information / slider current / max info. */ void updatePositions(int current, int max, const QDateTime& timestamp, int number); /**@brief set the replay speed */ void setSpeed(int mSecsPerPicture); /**@brief start or pause the replay */ void togglePlay(); /**@brief the speed bar was changed */ void speedChanged(); /**@brief detach the actual picture as fullscreen */ void togglePicFullscreen(); Q_SIGNALS: /** @brief Emited if something went wrong. e.g. file not readable */ void error(const QString& msg); /** @brief Emited if the player wants to advance to the next picture */ void advance(); /** @brief Emited if the player wants to go back to the last picture */ void back(); /** @brief Emited it the player wants to advance to a specific frame. */ void jumpToFrame(int frame); protected: ImageLabel *mPNGLabel; QLabel *mPositionLabel, *mCurSpeedLabel; int mCurSpeed; int mMax; QDir mBaseDir; QTimer mAdvanceTimer; QSlider *mSlider, *mSpeedSlider; QPushButton *mPlayBtn; }; #endif // PNGPLAYER_H