KWin
Loading...
Searching...
No Matches
Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Properties | Friends | List of all members
KWin::QuickSceneEffect Class Reference

#include <quickeffect.h>

Inheritance diagram for KWin::QuickSceneEffect:
KWin::Effect KWin::OverviewEffect KWin::ScriptedQuickSceneEffect KWin::TilesEditorEffect KWin::WindowViewEffect

Signals

void itemDraggedOutOfScreen (QQuickItem *item, QList< Output * > screens)
 
void itemDroppedOutOfScreen (const QPointF &globalPos, QQuickItem *item, Output *screen)
 
void activeViewChanged (KWin::QuickSceneView *view)
 
void delegateChanged ()
 

Public Member Functions

 QuickSceneEffect (QObject *parent=nullptr)
 
 ~QuickSceneEffect () override
 
bool isRunning () const
 
void setRunning (bool running)
 
QuickSceneViewactiveView () const
 
Q_INVOKABLE QuickSceneViewviewForScreen (Output *screen) const
 
Q_INVOKABLE QuickSceneViewviewAt (const QPoint &pos) const
 
Q_INVOKABLE KWin::QuickSceneViewgetView (Qt::Edge edge)
 
Q_INVOKABLE void activateView (QuickSceneView *view)
 
QQmlComponent * delegate () const
 
void setDelegate (QQmlComponent *delegate)
 
QUrl source () const
 
void setSource (const QUrl &url)
 
bool eventFilter (QObject *watched, QEvent *event) override
 
void prePaintScreen (ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override
 
void paintScreen (const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion &region, Output *screen) override
 
bool isActive () const override
 
void windowInputMouseEvent (QEvent *event) override
 
void grabbedKeyboardEvent (QKeyEvent *keyEvent) override
 
bool touchDown (qint32 id, const QPointF &pos, std::chrono::microseconds time) override
 
bool touchMotion (qint32 id, const QPointF &pos, std::chrono::microseconds time) override
 
bool touchUp (qint32 id, std::chrono::microseconds time) override
 
Q_INVOKABLE void checkItemDraggedOutOfScreen (QQuickItem *item)
 
Q_INVOKABLE void checkItemDroppedOutOfScreen (const QPointF &globalPos, QQuickItem *item)
 
- Public Member Functions inherited from KWin::Effect
 Effect (QObject *parent=nullptr)
 
 ~Effect () override
 
virtual void reconfigure (ReconfigureFlags flags)
 
virtual void postPaintScreen ()
 
virtual void prePaintWindow (EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime)
 
virtual void paintWindow (const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, WindowPaintData &data)
 
virtual void postPaintWindow (EffectWindow *w)
 
virtual bool provides (Feature)
 
virtual bool perform (Feature feature, const QVariantList &arguments)
 
virtual void drawWindow (const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, const QRegion &region, WindowPaintData &data)
 
virtual QString debug (const QString &parameter) const
 
virtual int requestedEffectChainPosition () const
 
virtual bool tabletToolEvent (QTabletEvent *event)
 
virtual bool tabletToolButtonEvent (uint button, bool pressed, quint64 tabletToolId)
 
virtual bool tabletPadButtonEvent (uint button, bool pressed, void *tabletPadId)
 
virtual bool tabletPadStripEvent (int number, int position, bool isFinger, void *tabletPadId)
 
virtual bool tabletPadRingEvent (int number, int position, bool isFinger, void *tabletPadId)
 
template<typename T >
int animationTime (int defaultDuration)
 
virtual bool blocksDirectScanout () const
 

Static Public Member Functions

static bool supported ()
 
- Static Public Member Functions inherited from KWin::Effect
static QPointF cursorPos ()
 
static double animationTime (const KConfigGroup &cfg, const QString &key, int defaultTime)
 
static double animationTime (int defaultTime)
 
static double interpolate (double x, double y, double a)
 
static void setPositionTransformations (WindowPaintData &data, QRect &region, EffectWindow *w, const QRect &r, Qt::AspectRatioMode aspect)
 

Protected Member Functions

virtual QVariantMap initialProperties (Output *screen)
 

Properties

QuickSceneViewactiveView
 
QQmlComponent * delegate
 

Friends

class QuickSceneEffectPrivate
 

Additional Inherited Members

- Public Types inherited from KWin::Effect
enum  {
  PAINT_WINDOW_OPAQUE = 1 << 0 , PAINT_WINDOW_TRANSLUCENT = 1 << 1 , PAINT_WINDOW_TRANSFORMED = 1 << 2 , PAINT_SCREEN_REGION = 1 << 3 ,
  PAINT_SCREEN_TRANSFORMED = 1 << 4 , PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS = 1 << 5 , PAINT_SCREEN_BACKGROUND_FIRST = 1 << 6
}
 
enum  Feature {
  Nothing = 0 , ScreenInversion , Blur , Contrast ,
  HighlightWindows
}
 
enum  ReconfigureFlag { ReconfigureAll = 1 << 0 }
 
- Public Slots inherited from KWin::Effect
virtual bool borderActivated (ElectricBorder border)
 

Detailed Description

The QuickSceneEffect class provides a convenient way to write fullscreen QtQuick-based effects.

QuickSceneView objects are managed internally.

The QuickSceneEffect takes care of forwarding input events to QuickSceneView and rendering. You can override relevant hooks from the Effect class to customize input handling or rendering, although it's highly recommended that you avoid doing that.

See also
QuickSceneView

Definition at line 75 of file quickeffect.h.

Constructor & Destructor Documentation

◆ QuickSceneEffect()

KWin::QuickSceneEffect::QuickSceneEffect ( QObject * parent = nullptr)
explicit

Definition at line 172 of file quickeffect.cpp.

◆ ~QuickSceneEffect()

KWin::QuickSceneEffect::~QuickSceneEffect ( )
override

Definition at line 178 of file quickeffect.cpp.

Member Function Documentation

◆ activateView()

void KWin::QuickSceneEffect::activateView ( QuickSceneView * view)

Sets the given view as active. It will get a focusin event and all the other views will be set as inactive

Definition at line 341 of file quickeffect.cpp.

◆ activeView()

QuickSceneView * KWin::QuickSceneEffect::activeView ( ) const

Definition at line 287 of file quickeffect.cpp.

◆ activeViewChanged

void KWin::QuickSceneEffect::activeViewChanged ( KWin::QuickSceneView * view)
signal

◆ checkItemDraggedOutOfScreen()

void KWin::QuickSceneEffect::checkItemDraggedOutOfScreen ( QQuickItem * item)

Definition at line 187 of file quickeffect.cpp.

◆ checkItemDroppedOutOfScreen()

void KWin::QuickSceneEffect::checkItemDroppedOutOfScreen ( const QPointF & globalPos,
QQuickItem * item )

Definition at line 201 of file quickeffect.cpp.

◆ delegate()

QQmlComponent * KWin::QuickSceneEffect::delegate ( ) const

The delegate provides a template defining the contents of each instantiated screen view.

Definition at line 255 of file quickeffect.cpp.

◆ delegateChanged

void KWin::QuickSceneEffect::delegateChanged ( )
signal

◆ eventFilter()

bool KWin::QuickSceneEffect::eventFilter ( QObject * watched,
QEvent * event )
override

Definition at line 212 of file quickeffect.cpp.

◆ getView()

KWin::QuickSceneView * KWin::QuickSceneEffect::getView ( Qt::Edge edge)

Get a view at the given direction from the active view Returns null if no other views exist in the given direction

Definition at line 298 of file quickeffect.cpp.

◆ grabbedKeyboardEvent()

void KWin::QuickSceneEffect::grabbedKeyboardEvent ( QKeyEvent * keyEvent)
overridevirtual

Reimplemented from KWin::Effect.

Reimplemented in KWin::WindowViewEffect, and KWin::TilesEditorEffect.

Definition at line 561 of file quickeffect.cpp.

◆ initialProperties()

QVariantMap KWin::QuickSceneEffect::initialProperties ( Output * screen)
protectedvirtual

Reimplement this function to provide your initial properties for the scene view on the specified screen.

See also
QQmlComponent::createWithInitialProperties()

Reimplemented in KWin::TilesEditorEffect.

Definition at line 404 of file quickeffect.cpp.

◆ isActive()

bool KWin::QuickSceneEffect::isActive ( ) const
overridevirtual

Overwrite this method to indicate whether your effect will be doing something in the next frame to be rendered. If the method returns false the effect will be excluded from the chained methods in the next rendered frame.

This method is called always directly before the paint loop begins. So it is totally fine to e.g. react on a window event, issue a repaint to trigger an animation and change a flag to indicate that this method returns true.

As the method is called each frame, you should not perform complex calculations. Best use just a boolean flag.

The default implementation of this method returns true.

Since
4.8

Reimplemented from KWin::Effect.

Definition at line 399 of file quickeffect.cpp.

◆ isRunning()

bool KWin::QuickSceneEffect::isRunning ( ) const

Returns true if the effect is running; otherwise returns false.

Definition at line 222 of file quickeffect.cpp.

◆ itemDraggedOutOfScreen

void KWin::QuickSceneEffect::itemDraggedOutOfScreen ( QQuickItem * item,
QList< Output * > screens )
signal

◆ itemDroppedOutOfScreen

void KWin::QuickSceneEffect::itemDroppedOutOfScreen ( const QPointF & globalPos,
QQuickItem * item,
Output * screen )
signal

◆ paintScreen()

void KWin::QuickSceneEffect::paintScreen ( const RenderTarget & renderTarget,
const RenderViewport & viewport,
int mask,
const QRegion & region,
Output * screen )
overridevirtual

In this method you can:

  • paint something on top of the windows (by painting after calling effects->paintScreen())
  • paint multiple desktops and/or multiple copies of the same desktop by calling effects->paintScreen() multiple times

In OpenGL based compositing, the frameworks ensures that the context is current when this method is invoked.

Reimplemented from KWin::Effect.

Definition at line 385 of file quickeffect.cpp.

◆ prePaintScreen()

void KWin::QuickSceneEffect::prePaintScreen ( ScreenPrePaintData & data,
std::chrono::milliseconds presentTime )
overridevirtual

Called before starting to paint the screen. In this method you can:

  • set whether the windows or the entire screen will be transformed
  • change the region of the screen that will be painted
  • do various housekeeping tasks such as initing your effect's variables for the upcoming paint pass or updating animation's progress

presentTime specifies the expected monotonic time when the rendered frame will be displayed on the screen.

Reimplemented from KWin::Effect.

Definition at line 367 of file quickeffect.cpp.

◆ setDelegate()

void KWin::QuickSceneEffect::setDelegate ( QQmlComponent * delegate)

Definition at line 260 of file quickeffect.cpp.

◆ setRunning()

void KWin::QuickSceneEffect::setRunning ( bool running)

Starts or stops the effect depending on running.

Definition at line 227 of file quickeffect.cpp.

◆ setSource()

void KWin::QuickSceneEffect::setSource ( const QUrl & url)

Sets the source url to url. Note that the QML component will be loaded the next time the effect is started.

While the effect is running, the source url cannot be changed.

In order to provide your custom initial properties, you need to override the initialProperties() function.

Definition at line 243 of file quickeffect.cpp.

◆ source()

QUrl KWin::QuickSceneEffect::source ( ) const

Returns the source URL.

Definition at line 238 of file quickeffect.cpp.

◆ supported()

bool KWin::QuickSceneEffect::supported ( )
static

Definition at line 182 of file quickeffect.cpp.

◆ touchDown()

bool KWin::QuickSceneEffect::touchDown ( qint32 id,
const QPointF & pos,
std::chrono::microseconds time )
overridevirtual

A touch point was pressed.

If the effect wants to exclusively use the touch event it should return true. If false is returned the touch event is passed to further effects.

In general an Effect should only return true if it is the exclusive effect getting input events. E.g. has grabbed mouse events.

Default implementation returns false.

Parameters
idThe unique id of the touch point
posThe position of the touch point in global coordinates
timeTimestamp
See also
touchMotion
touchUp
Since
5.8

Reimplemented from KWin::Effect.

Definition at line 572 of file quickeffect.cpp.

◆ touchMotion()

bool KWin::QuickSceneEffect::touchMotion ( qint32 id,
const QPointF & pos,
std::chrono::microseconds time )
overridevirtual

A touch point moved.

If the effect wants to exclusively use the touch event it should return true. If false is returned the touch event is passed to further effects.

In general an Effect should only return true if it is the exclusive effect getting input events. E.g. has grabbed mouse events.

Default implementation returns false.

Parameters
idThe unique id of the touch point
posThe position of the touch point in global coordinates
timeTimestamp
See also
touchDown
touchUp
Since
5.8

Reimplemented from KWin::Effect.

Definition at line 583 of file quickeffect.cpp.

◆ touchUp()

bool KWin::QuickSceneEffect::touchUp ( qint32 id,
std::chrono::microseconds time )
overridevirtual

A touch point was released.

If the effect wants to exclusively use the touch event it should return true. If false is returned the touch event is passed to further effects.

In general an Effect should only return true if it is the exclusive effect getting input events. E.g. has grabbed mouse events.

Default implementation returns false.

Parameters
idThe unique id of the touch point
timeTimestamp
See also
touchDown
touchMotion
Since
5.8

Reimplemented from KWin::Effect.

Definition at line 593 of file quickeffect.cpp.

◆ viewAt()

QuickSceneView * KWin::QuickSceneEffect::viewAt ( const QPoint & pos) const

Returns the view at the specified pos in the global screen coordinates.

Definition at line 279 of file quickeffect.cpp.

◆ viewForScreen()

QuickSceneView * KWin::QuickSceneEffect::viewForScreen ( Output * screen) const

Returns the scene view on the specified screen

Definition at line 273 of file quickeffect.cpp.

◆ windowInputMouseEvent()

void KWin::QuickSceneEffect::windowInputMouseEvent ( QEvent * event)
overridevirtual

Reimplemented from KWin::Effect.

Definition at line 524 of file quickeffect.cpp.

Friends And Related Symbol Documentation

◆ QuickSceneEffectPrivate

friend class QuickSceneEffectPrivate
friend

Definition at line 182 of file quickeffect.h.

Property Documentation

◆ activeView

QuickSceneView * KWin::QuickSceneEffect::activeView
read

Definition at line 78 of file quickeffect.h.

◆ delegate

QQmlComponent * KWin::QuickSceneEffect::delegate
readwrite

Definition at line 79 of file quickeffect.h.


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