MythTV  master
Public Slots | Signals | Public Member Functions | Private Types | Private Attributes | List of all members
Slide Class Reference

A specialised image for slideshows. More...

#include <galleryslide.h>

Inheritance diagram for Slide:
Inheritance graph
[legend]
Collaboration diagram for Slide:
Collaboration graph
[legend]

Public Slots

void SlideLoaded ()
 An image has completed loading. More...
 
- Public Slots inherited from MythUIType
void LoseFocus ()
 
bool TakeFocus ()
 
void Activate ()
 
void Hide (void)
 
void Show (void)
 
void Refresh (void)
 
void UpdateDependState (bool isDefault)
 
void UpdateDependState (MythUIType *dependee, bool isDefault)
 

Signals

void ImageLoaded (Slide *)
 Generated when the last requested image has loaded. More...
 
- Signals inherited from MythUIImage
void LoadComplete ()
 
- Signals inherited from MythUIType
void RequestUpdate ()
 
void RequestRegionUpdate (const QRect &)
 
void TakingFocus ()
 
void LosingFocus ()
 
void VisibilityChanged (bool Visible)
 
void Showing ()
 
void Hiding ()
 
void Enabling ()
 
void Disabling ()
 
void FinishedMoving ()
 
void FinishedFading ()
 
void DependChanged (bool isDefault)
 

Public Member Functions

 Slide (MythUIType *parent, const QString &name, MythUIImage *image)
 Clone slide from a theme MythUIImage. More...
 
 ~Slide () override
 Destructor. More...
 
void Clear ()
 Reset slide to unused state. More...
 
bool LoadSlide (const ImagePtrK &im, int direction=0, bool notifyCompletion=false)
 Load slide with an image. More...
 
ImagePtrK GetImageData () const
 
void Zoom (int percentage)
 Initiate slide zoom. More...
 
void SetZoom (float zoom)
 Sets slide zoom. More...
 
void Pan (QPoint offset)
 Initiate pan. More...
 
void SetPan (QPoint pos)
 Sets slide pan. More...
 
bool CanZoomIn () const
 
bool CanZoomOut () const
 
bool IsEmpty () const
 
bool IsLoaded () const
 
bool FailedLoad () const
 
int GetDirection () const
 
void Pulse () override
 Update pan & zoom animations. More...
 
QChar GetDebugState () const
 Return debug status. More...
 
- Public Member Functions inherited from MythUIImage
 MythUIImage (const QString &filepattern, int low, int high, std::chrono::milliseconds delay, MythUIType *parent, const QString &name)
 
 MythUIImage (const QString &filename, MythUIType *parent, const QString &name)
 
 MythUIImage (MythUIType *parent, const QString &name)
 
 ~MythUIImage () override
 
QString GetFilename (void)
 
void SetFilename (const QString &filename)
 Must be followed by a call to Load() to load the image. More...
 
void SetFilepattern (const QString &filepattern, int low, int high)
 Must be followed by a call to Load() to load the image. More...
 
void SetImageCount (int low, int high)
 Set the integer range for an animated image pattern. More...
 
void SetImage (MythImage *img)
 Should not be used unless absolutely necessary since it bypasses the image caching and threaded loaded mechanisms. More...
 
void SetImages (QVector< MythImage * > *images)
 Should not be used unless absolutely necessary since it bypasses the image caching and threaded loaded mechanisms. More...
 
void SetDelay (std::chrono::milliseconds delayms)
 Set the delay between each image in an animation. More...
 
void SetDelays (const QVector< std::chrono::milliseconds > &delays)
 Sets the delays between each image in an animation. More...
 
void Reset (void) override
 Reset the image back to the default defined in the theme. More...
 
bool Load (bool allowLoadInBackground=true, bool forceStat=false)
 Load the image(s), wraps ImageLoader::LoadImage() More...
 
void LoadNow (void) override
 Cause images in this and child widgets to be loaded. More...
 
void SetOrientation (int orientation)
 Saves the exif orientation value of the first image in the widget. More...
 
- Public Member Functions inherited from MythUIType
 MythUIType (QObject *parent, const QString &name)
 
void AddChild (MythUIType *child)
 Add a child UIType. More...
 
MythUITypeGetChild (const QString &name) const
 Get a named child of this UIType. More...
 
MythUITypeGetChildAt (QPoint p, bool recursive=true, bool focusable=true) const
 Return the first MythUIType at the given coordinates. More...
 
QList< MythUIType * > * GetAllChildren (void)
 Return a list of all child widgets. More...
 
QList< MythUIType * > GetAllDescendants (void)
 
void DeleteChild (const QString &name)
 Delete a named child of this UIType. More...
 
void DeleteChild (MythUIType *child)
 Delete the given UIType if it is a child of this UIType. More...
 
void DeleteAllChildren (void)
 Delete all child widgets. More...
 
bool NeedsRedraw (void) const
 
void ResetNeedsRedraw (void)
 
void SetRedraw (void)
 
void SetChildNeedsRedraw (MythUIType *child)
 
bool CanTakeFocus (void) const
 Return if this widget can accept input focus. More...
 
void SetCanTakeFocus (bool set=true)
 Set whether this widget can take focus. More...
 
void SetFocusOrder (int order)
 
bool IsEnabled (void) const
 
void SetEnabled (bool enable)
 
bool MoveToTop (void)
 
bool MoveChildToTop (MythUIType *child)
 
void ActivateAnimations (MythUIAnimation::Trigger trigger)
 
QList< MythUIAnimation * > * GetAnimations (void)
 
void Draw (MythPainter *p, int xoffset, int yoffset, int alphaMod=255, QRect clipRect=QRect())
 
void SetPosition (int x, int y)
 Convenience method, calls SetPosition(const MythPoint&) Override that instead to change functionality. More...
 
void SetPosition (QPoint point)
 
virtual void SetPosition (const MythPoint &point)
 
virtual MythPoint GetPosition (void) const
 
virtual void SetMinSize (const MythPoint &size)
 Set the minimum size of this widget, for widgets which can be rescaled. More...
 
virtual QSize GetMinSize (void) const
 
virtual void SetArea (const MythRect &rect)
 
virtual void AdjustMinArea (int delta_x, int delta_y, int delta_w, int delta_h)
 Adjust the size of a sibling. More...
 
virtual void VanishSibling (void)
 
virtual void SetMinAreaParent (MythRect actual_area, MythRect allowed_area, MythUIType *child)
 Adjust the size of sibling objects within the button. More...
 
virtual void SetMinArea (const MythRect &rect)
 Set the minimum area based on the given size. More...
 
virtual MythRect GetArea (void) const
 If the object has a minimum area defined, return it, other wise return the default area. More...
 
virtual MythRect GetFullArea (void) const
 
virtual void RecalculateArea (bool recurse=true)
 
void ExpandArea (QRect rect)
 
virtual QRegion GetDirtyArea (void) const
 
bool IsVisible (bool recurse=false) const
 
virtual void SetVisible (bool visible)
 
void MoveTo (QPoint destXY, QPoint speedXY)
 
void AdjustAlpha (int mode, int alphachange, int minalpha=0, int maxalpha=255)
 
void SetAlpha (int newalpha)
 
int GetAlpha (void) const
 
virtual bool keyPressEvent (QKeyEvent *event)
 Key event handler. More...
 
virtual bool inputMethodEvent (QInputMethodEvent *event)
 Input Method event handler. More...
 
virtual bool gestureEvent (MythGestureEvent *event)
 Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop. More...
 
virtual void mediaEvent (MythMediaEvent *event)
 Media/Device status event handler, received from MythMediaMonitor. More...
 
MythFontPropertiesGetFont (const QString &text) const
 
bool AddFont (const QString &text, MythFontProperties *fontProp)
 
void SetHelpText (const QString &text)
 
QString GetHelpText (void) const
 
void SetXMLLocation (const QString &filename, int where)
 
QString GetXMLLocation (void) const
 
void SetXMLName (const QString &name)
 
QString GetXMLName (void) const
 
bool IsDeferredLoading (bool recurse=false) const
 
void SetDeferLoad (bool defer)
 
bool ContainsPoint (QPoint point) const
 Check if the given point falls within this widgets area. More...
 
virtual MythPainterGetPainter (void)
 
void SetPainter (MythPainter *painter)
 
void SetCentre (UIEffects::Centre centre)
 
void SetZoom (float zoom)
 
void SetHorizontalZoom (float zoom)
 
void SetVerticalZoom (float zoom)
 
void SetAngle (float angle)
 
void SetDependIsDefault (bool isDefault)
 
void SetReverseDependence (MythUIType *dependee, bool reverse)
 
void SetDependsMap (QMap< QString, QString > dependsMap)
 
QMap< QString, QString > GetDependsMap () const
 

Private Types

enum  SlideState { kEmpty, kLoading, kLoaded, kFailed }
 

Private Attributes

SlideState m_state {kEmpty}
 Slide validity. More...
 
ImagePtrK m_data {nullptr}
 The image currently loading/loaded. More...
 
ImagePtrK m_waitingFor {nullptr}
 The most recently requested image. Null for preloads. Differs from m_data when skipping. More...
 
float m_zoom {1.0F}
 Current zoom, 1.0 = fullsize. More...
 
int m_direction {0}
 Navigation that created this image, -1 = Prev, 0 = Update, 1 = Next. More...
 
Animationm_zoomAnimation {nullptr}
 Dedicated animation for zoom, if supported. More...
 
PanAnimationm_panAnimation {nullptr}
 Dedicated animation for panning, if supported. More...
 
QPoint m_pan {0,0}
 Pan position (0,0) = no pan. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from XMLParseBase
static QString getFirstText (QDomElement &element)
 
static bool parseBool (const QString &text)
 
static bool parseBool (QDomElement &element)
 
static MythPoint parsePoint (const QString &text, bool normalize=true)
 
static MythPoint parsePoint (QDomElement &element, bool normalize=true)
 
static QSize parseSize (const QString &text, bool normalize=true)
 
static QSize parseSize (QDomElement &element, bool normalize=true)
 
static MythRect parseRect (const QString &text, bool normalize=true)
 
static MythRect parseRect (QDomElement &element, bool normalize=true)
 
static int parseAlignment (const QString &text)
 
static int parseAlignment (QDomElement &element)
 
static QBrush parseGradient (const QDomElement &element)
 
static QString parseText (QDomElement &element)
 
static MythUITypeGetGlobalObjectStore (void)
 
static void ClearGlobalObjectStore (void)
 
static void ParseChildren (const QString &filename, QDomElement &element, MythUIType *parent, bool showWarnings)
 
static MythUITypeParseUIType (const QString &filename, QDomElement &element, const QString &type, MythUIType *parent, MythScreenType *screen, bool showWarnings, QMap< QString, QString > &parentDependsMap)
 
static bool WindowExists (const QString &xmlfile, const QString &windowname)
 
static bool LoadWindowFromXML (const QString &xmlfile, const QString &windowname, MythUIType *parent)
 
static bool LoadBaseTheme (void)
 
static bool LoadBaseTheme (const QString &baseTheme)
 
static bool CopyWindowFromBase (const QString &windowname, MythScreenType *win)
 
- Protected Types inherited from MythUIImage
enum  AnimationCycle { kCycleStart, kCycleReverse }
 
- Protected Member Functions inherited from MythUIImage
void DrawSelf (MythPainter *p, int xoffset, int yoffset, int alphaMod, QRect clipRect) override
 
void Clear (void)
 Remove all images from the widget. More...
 
void SetAnimationFrames (const AnimationFrames &frames)
 
void customEvent (QEvent *event) override
 
bool ParseElement (const QString &filename, QDomElement &element, bool showWarnings) override
 Parse the xml definition of this widget setting the state of the object accordingly. More...
 
void CopyFrom (MythUIType *base) override
 Copy this widgets state from another. More...
 
void CreateCopy (MythUIType *parent) override
 Copy the state of this widget to the one given, it must be of the same type. More...
 
void Finalize (void) override
 Perform any post-xml parsing initialisation tasks. More...
 
void SetSize (int width, int height)
 Set the size of the widget. More...
 
void SetSize (QSize size) override
 Set the size of the widget. More...
 
void ForceSize (QSize size)
 Force the dimensions of the widget and image to the given size. More...
 
void SetCropRect (int x, int y, int width, int height)
 Crop the image using the given rectangle, useful for removing unsightly edges from imported images or zoom effects. More...
 
void SetCropRect (const MythRect &rect)
 Crop the image using the given rectangle, useful for removing unsightly edges from imported images or zoom effects. More...
 
void FindRandomImage (void)
 
- Protected Member Functions inherited from MythUIType
 ~MythUIType () override
 
void customEvent (QEvent *event) override
 
void AddFocusableChildrenToList (FocusInfoType &focusList)
 
void HandleAlphaPulse ()
 Handle one frame of an alpha (transparency) change animation. More...
 
void HandleMovementPulse ()
 Handle one frame of a movement animation. More...
 
int CalcAlpha (int alphamod) const
 
void ConnectDependants (bool recurse=false)
 
- Static Protected Member Functions inherited from MythUIType
static int NormX (int width)
 
static int NormY (int height)
 
- Protected Attributes inherited from MythUIImage
QString m_filename
 
QString m_origFilename
 
QHash< int, MythImage * > m_images
 
QHash< int, std::chrono::milliseconds > m_delays
 
QMutex m_imagesLock
 
std::chrono::milliseconds m_delay { -1ms }
 
int m_lowNum {0}
 
int m_highNum {0}
 
unsigned int m_curPos {0}
 
QTime m_lastDisplay {QTime::currentTime()}
 
bool m_needLoad {false}
 
ImageProperties m_imageProperties
 
int m_runningThreads {0}
 
bool m_showingRandomImage {false}
 
QString m_imageDirectory
 
QStringList m_imageList
 
int m_imageListIndex {0}
 
MythUIImagePrivated {nullptr}
 
AnimationCycle m_animationCycle {kCycleStart}
 
bool m_animationReverse {false}
 
bool m_animatedImage {false}
 
- Protected Attributes inherited from MythUIType
QList< MythUIType * > m_childrenList
 
QMap< QString, QString > m_dependsMap
 
QList< QPair< MythUIType *, bool > > m_dependsValue
 
QList< int > m_dependOperator
 
bool m_visible {true}
 
bool m_hasFocus {false}
 
bool m_canHaveFocus {false}
 
bool m_enabled {true}
 
bool m_enableInitiator {false}
 
bool m_initiator {false}
 
bool m_vanish {false}
 
bool m_vanished {false}
 
bool m_isDependDefault {false}
 
QMap< MythUIType *, boolm_reverseDepend
 
int m_focusOrder {0}
 
MythRect m_area {0,0,0,0}
 
MythRect m_minArea {0,0,0,0}
 
MythPoint m_minSize
 
QRegion m_dirtyRegion {0,0,0,0}
 
bool m_needsRedraw {false}
 
UIEffects m_effects
 
int m_alphaChangeMode {0}
 
int m_alphaChange {0}
 
int m_alphaMin {0}
 
int m_alphaMax {255}
 
bool m_moving {false}
 
QPoint m_xyDestination {0,0}
 
QPoint m_xySpeed {0,0}
 
FontMapm_fonts {nullptr}
 
MythUITypem_parent {nullptr}
 
MythPainterm_painter {nullptr}
 
QList< MythUIAnimation * > m_animations
 
QString m_helptext
 
QString m_xmlName
 
QString m_xmlLocation
 
bool m_deferload {false}
 
QColor m_borderColor {Qt::black}
 

Detailed Description

A specialised image for slideshows.

Definition at line 156 of file galleryslide.h.

Member Enumeration Documentation

◆ SlideState

enum Slide::SlideState
private
Enumerator
kEmpty 
kLoading 
kLoaded 
kFailed 

Definition at line 188 of file galleryslide.h.

Constructor & Destructor Documentation

◆ Slide()

Slide::Slide ( MythUIType parent,
const QString &  name,
MythUIImage image 
)

Clone slide from a theme MythUIImage.

Parameters
parentParent widget
nameSlide name
imageTheme MythUIImage to clone

Definition at line 282 of file galleryslide.cpp.

◆ ~Slide()

Slide::~Slide ( )
override

Destructor.

Definition at line 314 of file galleryslide.cpp.

Member Function Documentation

◆ Clear()

void Slide::Clear ( )

Reset slide to unused state.

Definition at line 325 of file galleryslide.cpp.

Referenced by SlideBuffer::ReleaseCurrent(), and GallerySlideView::ShowNextSlide().

◆ LoadSlide()

bool Slide::LoadSlide ( const ImagePtrK im,
int  direction = 0,
bool  notifyCompletion = false 
)

Load slide with an image.

If the requested image is already loaded (due to pre-load) then returns immediately. Otherwise it initiates an image load in a child thread, provided an image is not already loading (multiple requests due to skipping). If loader is busy then the most recent request is queued. Intervening requests are discarded.

Parameters
imThe image to load
directionNavigation that caused this load. Determines transition direction
notifyCompletionif True, emits a signal when the last requested image has loaded
Returns
bool True if the requested image is already loaded

Definition at line 364 of file galleryslide.cpp.

Referenced by SlideBuffer::Load(), SlideBuffer::Preload(), and SlideLoaded().

◆ GetImageData()

ImagePtrK Slide::GetImageData ( ) const
inline

◆ Zoom()

void Slide::Zoom ( int  percentage)

Initiate slide zoom.

Parameters
percentageFactor of current zoom, ie. 100% = double-size. Sentinel 0% = Reset to default/fullscreen

Definition at line 452 of file galleryslide.cpp.

Referenced by GallerySlideView::Zoom().

◆ SetZoom()

void Slide::SetZoom ( float  zoom)

Sets slide zoom.

Applies zoom immediately

See also
Slide::Zoom
Parameters
zoomNew zoom level, 1.0 = full-size

Definition at line 477 of file galleryslide.cpp.

Referenced by TransitionZoom::Finalise(), TransitionSpin::Finalise(), TransitionZoom::Initialise(), Animation::updateCurrentValue(), and Zoom().

◆ Pan()

void Slide::Pan ( QPoint  offset)

Initiate pan.

Parameters
offsetOffset to apply to current position. Sentinel (0,0) resets pan.

Definition at line 495 of file galleryslide.cpp.

Referenced by GallerySlideView::Pan().

◆ SetPan()

void Slide::SetPan ( QPoint  pos)

Sets slide pan.

Applies pan immediately

See also
Slide::Pan
Parameters
posNew pan offset

Definition at line 525 of file galleryslide.cpp.

Referenced by Pan(), SetZoom(), and PanAnimation::updateCurrentValue().

◆ CanZoomIn()

bool Slide::CanZoomIn ( ) const
inline

Definition at line 170 of file galleryslide.h.

Referenced by GallerySlideView::MenuTransforms().

◆ CanZoomOut()

bool Slide::CanZoomOut ( ) const
inline

Definition at line 171 of file galleryslide.h.

Referenced by GallerySlideView::MenuTransforms().

◆ IsEmpty()

bool Slide::IsEmpty ( ) const
inline

Definition at line 172 of file galleryslide.h.

◆ IsLoaded()

bool Slide::IsLoaded ( ) const
inline

Definition at line 173 of file galleryslide.h.

◆ FailedLoad()

bool Slide::FailedLoad ( ) const
inline

Definition at line 174 of file galleryslide.h.

Referenced by GallerySlideView::ClearStatus(), and GallerySlideView::PlayVideo().

◆ GetDirection()

int Slide::GetDirection ( ) const
inline

Definition at line 175 of file galleryslide.h.

Referenced by GallerySlideView::SlideAvailable().

◆ Pulse()

void Slide::Pulse ( )
overridevirtual

Update pan & zoom animations.

Reimplemented from MythUIImage.

Definition at line 562 of file galleryslide.cpp.

◆ GetDebugState()

QChar Slide::GetDebugState ( ) const

Return debug status.

Returns
Char representing state

Definition at line 339 of file galleryslide.cpp.

◆ SlideLoaded

void Slide::SlideLoaded ( )
slot

An image has completed loading.

If the loaded image matches the most recently requested and client is waiting then signals that the slide is ready. Otherwise starts loading the latest requested image, if different. Superseded loads are discarded.

Definition at line 423 of file galleryslide.cpp.

Referenced by Slide().

◆ ImageLoaded

void Slide::ImageLoaded ( Slide )
signal

Generated when the last requested image has loaded.

Referenced by SlideBuffer::Initialise(), LoadSlide(), and SlideLoaded().

Member Data Documentation

◆ m_state

SlideState Slide::m_state {kEmpty}
private

Slide validity.

Definition at line 190 of file galleryslide.h.

Referenced by Clear(), FailedLoad(), GetDebugState(), IsEmpty(), IsLoaded(), LoadSlide(), SetPan(), and SlideLoaded().

◆ m_data

ImagePtrK Slide::m_data {nullptr}
private

The image currently loading/loaded.

Definition at line 191 of file galleryslide.h.

Referenced by Clear(), GetImageData(), LoadSlide(), and SlideLoaded().

◆ m_waitingFor

ImagePtrK Slide::m_waitingFor {nullptr}
private

The most recently requested image. Null for preloads. Differs from m_data when skipping.

Definition at line 193 of file galleryslide.h.

Referenced by Clear(), GetDebugState(), IsEmpty(), IsLoaded(), LoadSlide(), and SlideLoaded().

◆ m_zoom

float Slide::m_zoom {1.0F}
private

Current zoom, 1.0 = fullsize.

Definition at line 194 of file galleryslide.h.

Referenced by CanZoomIn(), CanZoomOut(), Pan(), SetPan(), SetZoom(), and Zoom().

◆ m_direction

int Slide::m_direction {0}
private

Navigation that created this image, -1 = Prev, 0 = Update, 1 = Next.

Definition at line 196 of file galleryslide.h.

Referenced by GetDirection(), LoadSlide(), and SlideLoaded().

◆ m_zoomAnimation

Animation* Slide::m_zoomAnimation {nullptr}
private

Dedicated animation for zoom, if supported.

Definition at line 197 of file galleryslide.h.

Referenced by Pulse(), Slide(), Zoom(), and ~Slide().

◆ m_panAnimation

PanAnimation* Slide::m_panAnimation {nullptr}
private

Dedicated animation for panning, if supported.

Definition at line 198 of file galleryslide.h.

Referenced by Pan(), Pulse(), Slide(), and ~Slide().

◆ m_pan

QPoint Slide::m_pan {0,0}
private

Pan position (0,0) = no pan.

Definition at line 199 of file galleryslide.h.

Referenced by Pan(), SetPan(), and SetZoom().


The documentation for this class was generated from the following files: