KSelectionOwner

Search for usage in LXR

#include <kselectionowner.h>

Inheritance diagram for KSelectionOwner:

Signals

void claimedOwnership ()
 
void failedToClaimOwnership ()
 
void lostOwnership ()
 

Public Member Functions

 KSelectionOwner (const char *selection, int screen=-1, QObject *parent=nullptr)
 
 KSelectionOwner (const char *selection, xcb_connection_t *c, xcb_window_t root, QObject *parent=nullptr)
 
 KSelectionOwner (xcb_atom_t selection, int screen=-1, QObject *parent=nullptr)
 
 KSelectionOwner (xcb_atom_t selection, xcb_connection_t *c, xcb_window_t root, QObject *parent=nullptr)
 
 ~KSelectionOwner () override
 
void claim (bool force, bool force_kill=true)
 
bool filterEvent (void *ev_P)
 
xcb_window_t ownerWindow () const
 
void release ()
 
void timerEvent (QTimerEvent *event) override
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo () const const
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

virtual bool genericReply (xcb_atom_t target, xcb_atom_t property, xcb_window_t requestor)
 
virtual void getAtoms ()
 
virtual void replyTargets (xcb_atom_t property, xcb_window_t requestor)
 
void setData (uint32_t extra1, uint32_t extra2)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QObject
typedef QObjectList
 

Detailed Description

This class implements claiming and owning manager selections, as described in the ICCCM, section 2.8.

The selection atom is passed to the constructor, claim() attempts to claim ownership of the selection, release() gives up the selection ownership. Signal lostOwnership() is emitted when the selection is claimed by another owner.

ICCCM manager selection owner

This class is only useful on the xcb platform. On other platforms the code is only functional if the constructor overloads taking an xcb_connection_t are used. In case you inherit from this class ensure that you don't use xcb and/or XLib without verifying the platform.

Definition at line 29 of file kselectionowner.h.

Constructor & Destructor Documentation

◆ KSelectionOwner() [1/4]

KSelectionOwner::KSelectionOwner ( xcb_atom_t selection,
int screen = -1,
QObject * parent = nullptr )
explicit

This constructor initializes the object, but doesn't perform any operation on the selection.

Parameters
selectionatom representing the manager selection
screenX screen, or -1 for default
parentparent object, or nullptr if there is none

Definition at line 132 of file kselectionowner.cpp.

◆ KSelectionOwner() [2/4]

KSelectionOwner::KSelectionOwner ( const char * selection,
int screen = -1,
QObject * parent = nullptr )
explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. This constructor accepts the selection name and creates the appropriate atom for it automatically.

Parameters
selectionname of the manager selection
screenX screen, or -1 for default
parentparent object, or nullptr if there is none

Definition at line 138 of file kselectionowner.cpp.

◆ KSelectionOwner() [3/4]

KSelectionOwner::KSelectionOwner ( xcb_atom_t selection,
xcb_connection_t * c,
xcb_window_t root,
QObject * parent = nullptr )
explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. This constructor accepts the xcb_connection_t and root window and doesn't depend on running on the xcb platform.

Otherwise this constructor behaves like the similar one without the xcb_connection_t.

Parameters
selectionatom representing the manager selection
cthe xcb connection this KSelectionWatcher should use
rootthe root window this KSelectionWatcher should use
parentparent object, or nullptr if there is none
Since
5.8

Definition at line 144 of file kselectionowner.cpp.

◆ KSelectionOwner() [4/4]

KSelectionOwner::KSelectionOwner ( const char * selection,
xcb_connection_t * c,
xcb_window_t root,
QObject * parent = nullptr )
explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. This constructor accepts the xcb_connection_t and root window and doesn't depend on running on the xcb platform.

Otherwise this constructor behaves like the similar one without the xcb_connection_t.

Parameters
selectionname of the manager selection
cthe xcb connection this KSelectionWatcher should use
rootthe root window this KSelectionWatcher should use
parentparent object, or nullptr if there is none
Since
5.8

Definition at line 150 of file kselectionowner.cpp.

◆ ~KSelectionOwner()

KSelectionOwner::~KSelectionOwner ( )
override

Destructor.

Calls release().

Definition at line 156 of file kselectionowner.cpp.

Member Function Documentation

◆ claim()

void KSelectionOwner::claim ( bool force,
bool force_kill = true )

Try to claim ownership of the manager selection using the current X timestamp.

This function returns immediately, but it may take up to one second for the claim to succeed or fail, at which point either the claimedOwnership() or failedToClaimOwnership() signal is emitted. The claim will not be completed until the caller has returned to the event loop.

If force is false, and the selection is already owned, the selection is not claimed, and failedToClaimOwnership() is emitted. If force is true and the selection is owned by another client, the client will be given one second to relinquish ownership of the selection. If force_kill is true, and the previous owner fails to disown the selection in time, it will be forcibly killed.

Definition at line 244 of file kselectionowner.cpp.

◆ claimedOwnership

void KSelectionOwner::claimedOwnership ( )
signal

This signal is emitted when claim() was successful in claiming ownership of the selection.

◆ failedToClaimOwnership

void KSelectionOwner::failedToClaimOwnership ( )
signal

This signal is emitted when claim() failed to claim ownership of the selection.

◆ filterEvent()

bool KSelectionOwner::filterEvent ( void * ev_P)

Definition at line 340 of file kselectionowner.cpp.

◆ genericReply()

bool KSelectionOwner::genericReply ( xcb_atom_t target,
xcb_atom_t property,
xcb_window_t requestor )
protectedvirtual

Called for every X event received on the window used for owning the selection.

If true is returned, the event is filtered out. Called when a SelectionRequest event is received. A reply should be sent using the selection handling mechanism described in the ICCCM section 2.

Parameters
targetrequested target type
propertyproperty to use for the reply data
requestorrequestor window

Definition at line 570 of file kselectionowner.cpp.

◆ getAtoms()

void KSelectionOwner::getAtoms ( )
protectedvirtual

Called to create atoms needed for claiming the selection and communication using the selection handling mechanism.

The default implementation must be called if reimplemented. This method may be called repeatedly.

Definition at line 575 of file kselectionowner.cpp.

◆ lostOwnership

void KSelectionOwner::lostOwnership ( )
signal

This signal is emitted if the selection was owned and the ownership has been lost due to another client claiming it, this signal is emitted.

IMPORTANT: It's not safe to delete the instance in a slot connected to this signal.

◆ ownerWindow()

xcb_window_t KSelectionOwner::ownerWindow ( ) const

If the selection is owned, returns the window used internally for owning the selection.

Definition at line 319 of file kselectionowner.cpp.

◆ release()

void KSelectionOwner::release ( )

If the selection is owned, the ownership is given up.

Definition at line 302 of file kselectionowner.cpp.

◆ replyTargets()

void KSelectionOwner::replyTargets ( xcb_atom_t property,
xcb_window_t requestor )
protectedvirtual

Called to announce the supported targets, as described in the ICCCM section 2.6.

The default implementation announces the required targets MULTIPLE, TIMESTAMP and TARGETS.

Definition at line 551 of file kselectionowner.cpp.

◆ setData()

void KSelectionOwner::setData ( uint32_t extra1,
uint32_t extra2 )
protected

Sets extra data to be sent in the message sent to root window after successfully claiming a selection.

These extra data are in data.l[3] and data.l[4] fields of the XClientMessage.

Definition at line 331 of file kselectionowner.cpp.

◆ timerEvent()

void KSelectionOwner::timerEvent ( QTimerEvent * event)
overridevirtual

Reimplemented from QObject.

Definition at line 424 of file kselectionowner.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:15:04 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.