MythTV
master
|
A specialised image for slideshows. More...
#include <mythfrontend/galleryslide.h>
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... | |
MythUIType * | GetChild (const QString &name) const |
Get a named child of this UIType. More... | |
MythUIType * | GetChildAt (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... | |
MythFontProperties * | GetFont (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 MythPainter * | GetPainter (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 : std::uint8_t { 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... | |
Animation * | m_zoomAnimation {nullptr} |
Dedicated animation for zoom, if supported. More... | |
PanAnimation * | m_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 MythUIType * | GetGlobalObjectStore (void) |
static void | ClearGlobalObjectStore (void) |
static void | ParseChildren (const QString &filename, QDomElement &element, MythUIType *parent, bool showWarnings) |
static MythUIType * | ParseUIType (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 : std::uint8_t { 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} |
MythUIImagePrivate * | d {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 *, bool > | m_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} |
FontMap * | m_fonts {nullptr} |
MythUIType * | m_parent {nullptr} |
MythPainter * | m_painter {nullptr} |
QList< MythUIAnimation * > | m_animations |
QString | m_helptext |
QString | m_xmlName |
QString | m_xmlLocation |
bool | m_deferload {false} |
QColor | m_borderColor {Qt::black} |
A specialised image for slideshows.
Definition at line 156 of file galleryslide.h.
|
private |
Enumerator | |
---|---|
kEmpty | |
kLoading | |
kLoaded | |
kFailed |
Definition at line 188 of file galleryslide.h.
Slide::Slide | ( | MythUIType * | parent, |
const QString & | name, | ||
MythUIImage * | image | ||
) |
Clone slide from a theme MythUIImage.
parent | Parent widget |
name | Slide name |
image | Theme MythUIImage to clone |
Definition at line 294 of file galleryslide.cpp.
|
override |
Destructor.
Definition at line 326 of file galleryslide.cpp.
void Slide::Clear | ( | ) |
Reset slide to unused state.
Definition at line 337 of file galleryslide.cpp.
Referenced by SlideBuffer::ReleaseCurrent(), and GallerySlideView::ShowNextSlide().
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.
im | The image to load |
direction | Navigation that caused this load. Determines transition direction |
notifyCompletion | if True, emits a signal when the last requested image has loaded |
Definition at line 376 of file galleryslide.cpp.
Referenced by SlideBuffer::Load(), SlideBuffer::Preload(), and SlideLoaded().
|
inline |
Definition at line 165 of file galleryslide.h.
Referenced by GallerySlideView::ClearStatus(), SlideBuffer::Flush(), GallerySlideView::MenuMain(), GallerySlideView::MenuTransforms(), GallerySlideView::PlayVideo(), GallerySlideView::ShowInfo(), and GallerySlideView::TransitionComplete().
void Slide::Zoom | ( | int | percentage | ) |
Initiate slide zoom.
percentage | Factor of current zoom, ie. 100% = double-size. Sentinel 0% = Reset to default/fullscreen |
Definition at line 464 of file galleryslide.cpp.
Referenced by GallerySlideView::Zoom().
void Slide::SetZoom | ( | float | zoom | ) |
Sets slide zoom.
Applies zoom immediately
zoom | New zoom level, 1.0 = full-size |
Definition at line 491 of file galleryslide.cpp.
Referenced by TransitionZoom::Finalise(), TransitionSpin::Finalise(), TransitionZoom::Initialise(), Animation::updateCurrentValue(), and Zoom().
void Slide::Pan | ( | QPoint | offset | ) |
Initiate pan.
offset | Offset to apply to current position. Sentinel (0,0) resets pan. |
Definition at line 509 of file galleryslide.cpp.
Referenced by GallerySlideView::Pan().
void Slide::SetPan | ( | QPoint | pos | ) |
Sets slide pan.
Applies pan immediately
pos | New pan offset |
Definition at line 541 of file galleryslide.cpp.
Referenced by Pan(), SetZoom(), and PanAnimation::updateCurrentValue().
|
inline |
Definition at line 170 of file galleryslide.h.
Referenced by GallerySlideView::MenuTransforms().
|
inline |
Definition at line 171 of file galleryslide.h.
Referenced by GallerySlideView::MenuTransforms().
|
inline |
Definition at line 172 of file galleryslide.h.
|
inline |
Definition at line 173 of file galleryslide.h.
|
inline |
Definition at line 174 of file galleryslide.h.
Referenced by GallerySlideView::ClearStatus(), and GallerySlideView::PlayVideo().
|
inline |
Definition at line 175 of file galleryslide.h.
Referenced by GallerySlideView::SlideAvailable().
|
overridevirtual |
Update pan & zoom animations.
Reimplemented from MythUIImage.
Definition at line 578 of file galleryslide.cpp.
QChar Slide::GetDebugState | ( | ) | const |
Return debug status.
Definition at line 351 of file galleryslide.cpp.
|
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 435 of file galleryslide.cpp.
Referenced by Slide().
|
signal |
Generated when the last requested image has loaded.
Referenced by SlideBuffer::Initialise(), LoadSlide(), and SlideLoaded().
|
private |
Slide validity.
Definition at line 190 of file galleryslide.h.
Referenced by Clear(), FailedLoad(), GetDebugState(), IsEmpty(), IsLoaded(), LoadSlide(), SetPan(), and SlideLoaded().
|
private |
The image currently loading/loaded.
Definition at line 191 of file galleryslide.h.
Referenced by Clear(), GetImageData(), LoadSlide(), and SlideLoaded().
|
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().
|
private |
Current zoom, 1.0 = fullsize.
Definition at line 194 of file galleryslide.h.
Referenced by CanZoomIn(), CanZoomOut(), Pan(), SetPan(), SetZoom(), and Zoom().
|
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().
|
private |
|
private |
|
private |
Pan position (0,0) = no pan.
Definition at line 199 of file galleryslide.h.