kdeui: format and indent kxmessages source and header files

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-10-19 03:36:22 +03:00
parent 17cef65ed7
commit 92f104fc52
2 changed files with 213 additions and 201 deletions

View file

@ -24,12 +24,10 @@ DEALINGS IN THE SOFTWARE.
#include "kxmessages.h"
#ifdef Q_WS_X11 // FIXME(E): Figure out what parts we can/should emulate in QT/E
#include <qx11info_x11.h>
#include <X11/Xlib.h>
#include <fixx11h.h>
#include <kapplication.h>
#include "kapplication.h"
class KXMessagesPrivate
{
@ -37,7 +35,7 @@ public:
QWidget* handle;
Atom accept_atom2;
Atom accept_atom1;
QMap< WId, QByteArray > incoming_messages;
QMap<WId, QByteArray> incoming_messages;
};
@ -45,14 +43,14 @@ public:
const long BROADCAST_MASK = PropertyChangeMask;
// CHECKME
KXMessages::KXMessages( const char* accept_broadcast_P, QWidget* parent_P )
: QWidget( parent_P )
, d( new KXMessagesPrivate )
KXMessages::KXMessages(const char* accept_broadcast_P, QWidget* parent_P)
: QWidget(parent_P)
, d(new KXMessagesPrivate())
{
if( accept_broadcast_P != NULL ) {
( void ) qApp->desktop(); //trigger desktop widget creation to select root window events
kapp->installX11EventFilter( this ); // i.e. PropertyChangeMask
d->accept_atom1 = XInternAtom( QX11Info::display(), accept_broadcast_P, false );
if ( accept_broadcast_P != NULL ) {
(void)qApp->desktop(); //trigger desktop widget creation to select root window events
kapp->installX11EventFilter(this); // i.e. PropertyChangeMask
d->accept_atom1 = XInternAtom(QX11Info::display(), accept_broadcast_P, false);
d->accept_atom2 = d->accept_atom1;
} else {
d->accept_atom1 = d->accept_atom2 = None;
@ -60,20 +58,19 @@ KXMessages::KXMessages( const char* accept_broadcast_P, QWidget* parent_P )
d->handle = new QWidget( this );
}
KXMessages::KXMessages( const char* accept_broadcast_P, QWidget* parent_P, bool obsolete_P )
: QWidget( parent_P )
, d( new KXMessagesPrivate )
KXMessages::KXMessages(const char* accept_broadcast_P, QWidget* parent_P, bool obsolete_P)
: QWidget(parent_P)
, d(new KXMessagesPrivate())
{
if( accept_broadcast_P != NULL ) {
( void ) qApp->desktop(); //trigger desktop widget creation to select root window events
kapp->installX11EventFilter( this ); // i.e. PropertyChangeMask
d->accept_atom2 = XInternAtom( QX11Info::display(), accept_broadcast_P, false );
d->accept_atom1 = obsolete_P ? d->accept_atom2
: XInternAtom( QX11Info::display(), QByteArray(QByteArray( accept_broadcast_P ) + "_BEGIN").constData(), false );
if (accept_broadcast_P != NULL) {
(void)qApp->desktop(); //trigger desktop widget creation to select root window events
kapp->installX11EventFilter(this); // i.e. PropertyChangeMask
d->accept_atom2 = XInternAtom(QX11Info::display(), accept_broadcast_P, false);
d->accept_atom1 = obsolete_P ? d->accept_atom2 : XInternAtom( QX11Info::display(), QByteArray(QByteArray(accept_broadcast_P) + "_BEGIN").constData(), false);
} else {
d->accept_atom1 = d->accept_atom2 = None;
}
d->handle = new QWidget( this );
d->handle = new QWidget(this);
}
KXMessages::~KXMessages()
@ -81,19 +78,18 @@ KXMessages::~KXMessages()
delete d;
}
void KXMessages::broadcastMessage( const char* msg_type_P, const QString& message_P )
void KXMessages::broadcastMessage(const char* msg_type_P, const QString& message_P)
{
broadcastMessage( msg_type_P, message_P, -1, true );
broadcastMessage(msg_type_P, message_P, -1, true);
}
void KXMessages::broadcastMessage( const char* msg_type_P, const QString& message_P,
int screen_P, bool obsolete_P )
void KXMessages::broadcastMessage(const char* msg_type_P, const QString& message_P, int screen_P, bool obsolete_P)
{
Atom a2 = XInternAtom( QX11Info::display(), msg_type_P, false );
Atom a1 = obsolete_P ? a2 : XInternAtom( QX11Info::display(), QByteArray(QByteArray( msg_type_P ) + "_BEGIN").constData(), false );
Atom a1 = obsolete_P ? a2 : XInternAtom(QX11Info::display(), QByteArray(QByteArray(msg_type_P) + "_BEGIN").constData(), false);
Window root = screen_P == -1 ? QX11Info::appRootWindow() : QX11Info::appRootWindow( screen_P );
send_message_internal( root, message_P, BROADCAST_MASK, QX11Info::display(),
a1, a2, d->handle->winId());
send_message_internal(root, message_P, BROADCAST_MASK, QX11Info::display(), a1, a2, d->handle->winId());
}
void KXMessages::sendMessage( WId w_P, const char* msg_type_P, const QString& message_P )
@ -101,64 +97,71 @@ void KXMessages::sendMessage( WId w_P, const char* msg_type_P, const QString& me
sendMessage( w_P, msg_type_P, message_P, true );
}
void KXMessages::sendMessage( WId w_P, const char* msg_type_P, const QString& message_P,
bool obsolete_P )
void KXMessages::sendMessage(WId w_P, const char* msg_type_P, const QString& message_P, bool obsolete_P)
{
Atom a2 = XInternAtom( QX11Info::display(), msg_type_P, false );
Atom a1 = obsolete_P ? a2 : XInternAtom( QX11Info::display(), QByteArray(QByteArray( msg_type_P ) + "_BEGIN").constData(), false );
send_message_internal( w_P, message_P, 0, QX11Info::display(), a1, a2, d->handle->winId());
Atom a2 = XInternAtom(QX11Info::display(), msg_type_P, false);
Atom a1 = obsolete_P ? a2 : XInternAtom(QX11Info::display(), QByteArray(QByteArray( msg_type_P ) + "_BEGIN").constData(), false);
send_message_internal(w_P, message_P, 0, QX11Info::display(), a1, a2, d->handle->winId());
}
bool KXMessages::broadcastMessageX( Display* disp, const char* msg_type_P,
const QString& message_P )
bool KXMessages::broadcastMessageX(Display* disp, const char* msg_type_P, const QString& message_P )
{
return broadcastMessageX( disp, msg_type_P, message_P, -1, true );
return broadcastMessageX(disp, msg_type_P, message_P, -1, true);
}
bool KXMessages::broadcastMessageX( Display* disp, const char* msg_type_P,
const QString& message_P, int screen_P, bool obsolete_P )
{
if( disp == NULL )
if (disp == NULL) {
return false;
Atom a2 = XInternAtom( disp, msg_type_P, false );
Atom a1 = obsolete_P ? a2 : XInternAtom( disp, QByteArray(QByteArray( msg_type_P ) + "_BEGIN").constData(), false );
Window root = screen_P == -1 ? DefaultRootWindow( disp ) : RootWindow( disp, screen_P );
Window win = XCreateSimpleWindow( disp, root, 0, 0, 1, 1,
0, BlackPixel( disp, screen_P == -1 ? DefaultScreen( disp ) : screen_P ),
BlackPixel( disp, screen_P == -1 ? DefaultScreen( disp ) : screen_P ));
send_message_internal( root, message_P, BROADCAST_MASK, disp,
a1, a2, win );
XDestroyWindow( disp, win );
}
Atom a2 = XInternAtom(disp, msg_type_P, false);
Atom a1 = obsolete_P ? a2 : XInternAtom(disp, QByteArray(QByteArray(msg_type_P) + "_BEGIN").constData(), false);
Window root = screen_P == -1 ? DefaultRootWindow(disp) : RootWindow(disp, screen_P);
Window win = XCreateSimpleWindow(
disp, root, 0, 0, 1, 1,
0, BlackPixel(disp, screen_P == -1 ? DefaultScreen(disp) : screen_P),
BlackPixel(disp, screen_P == -1 ? DefaultScreen( disp ) : screen_P)
);
send_message_internal(root, message_P, BROADCAST_MASK, disp, a1, a2, win);
XDestroyWindow(disp, win);
return true;
}
bool KXMessages::sendMessageX( Display* disp, WId w_P, const char* msg_type_P,
const QString& message_P )
bool KXMessages::sendMessageX( Display* disp, WId w_P, const char* msg_type_P, const QString& message_P)
{
return sendMessageX( disp, w_P, msg_type_P, message_P, true );
return sendMessageX(disp, w_P, msg_type_P, message_P, true);
}
bool KXMessages::sendMessageX( Display* disp, WId w_P, const char* msg_type_P,
const QString& message_P, bool obsolete_P )
bool KXMessages::sendMessageX(Display* disp, WId w_P, const char* msg_type_P, const QString& message_P, bool obsolete_P)
{
if( disp == NULL )
if (disp == NULL) {
return false;
Atom a2 = XInternAtom( disp, msg_type_P, false );
Atom a1 = obsolete_P ? a2 : XInternAtom( disp, QByteArray(QByteArray( msg_type_P ) + "_BEGIN").constData(), false );
Window win = XCreateSimpleWindow( disp, DefaultRootWindow( disp ), 0, 0, 1, 1,
0, BlackPixelOfScreen( DefaultScreenOfDisplay( disp )),
BlackPixelOfScreen( DefaultScreenOfDisplay( disp )));
send_message_internal( w_P, message_P, 0, disp, a1, a2, win );
XDestroyWindow( disp, win );
}
Atom a2 = XInternAtom(disp, msg_type_P, false);
Atom a1 = obsolete_P ? a2 : XInternAtom(disp, QByteArray(QByteArray(msg_type_P) + "_BEGIN").constData(), false);
Window win = XCreateSimpleWindow(
disp, DefaultRootWindow(disp), 0, 0, 1, 1,
0, BlackPixelOfScreen( DefaultScreenOfDisplay(disp)),
BlackPixelOfScreen(DefaultScreenOfDisplay(disp))
);
send_message_internal(w_P, message_P, 0, disp, a1, a2, win);
XDestroyWindow(disp, win);
return true;
}
void KXMessages::send_message_internal( WId w_P, const QString& msg_P, long mask_P,
Display* disp, Atom atom1_P, Atom atom2_P, Window handle_P )
void KXMessages::send_message_internal(WId w_P, const QString& msg_P, long mask_P,
Display* disp, Atom atom1_P, Atom atom2_P, Window handle_P)
{
unsigned int pos = 0;
QByteArray msg = msg_P.toUtf8();
unsigned int len = strlen( msg );
unsigned int len = strlen(msg);
XEvent e;
e.xclient.type = ClientMessage;
e.xclient.message_type = atom1_P; // leading message
@ -167,42 +170,55 @@ void KXMessages::send_message_internal( WId w_P, const QString& msg_P, long mask
e.xclient.format = 8;
do {
unsigned int i;
for( i = 0; i < 20 && i + pos <= len; ++i )
e.xclient.data.b[ i ] = msg[ i + pos ];
XSendEvent( disp, w_P, false, mask_P, &e );
for(i = 0; i < 20 && i + pos <= len; ++i) {
e.xclient.data.b[i] = msg[i + pos];
}
XSendEvent( disp, w_P, false, mask_P, &e);
e.xclient.message_type = atom2_P; // following messages
pos += i;
} while( pos <= len );
XFlush( disp );
} while(pos <= len);
XFlush(disp);
}
bool KXMessages::x11Event( XEvent* ev_P )
{
if( ev_P->type != ClientMessage || ev_P->xclient.format != 8 )
return QWidget::x11Event( ev_P );
if( ev_P->xclient.message_type != d->accept_atom1 && ev_P->xclient.message_type != d->accept_atom2 )
return QWidget::x11Event( ev_P );
char buf[ 21 ]; // can't be longer
if (ev_P->type != ClientMessage || ev_P->xclient.format != 8) {
return QWidget::x11Event(ev_P);
}
if (ev_P->xclient.message_type != d->accept_atom1 && ev_P->xclient.message_type != d->accept_atom2) {
return QWidget::x11Event(ev_P);
}
char buf[21]; // can't be longer
int i;
for( i = 0; i < 20 && ev_P->xclient.data.b[ i ] != '\0'; ++i )
buf[ i ] = ev_P->xclient.data.b[ i ];
buf[ i ] = '\0';
if( d->incoming_messages.contains( ev_P->xclient.window )) {
if( ev_P->xclient.message_type == d->accept_atom1 && d->accept_atom1 != d->accept_atom2 )
for (i = 0; i < 20 && ev_P->xclient.data.b[i] != '\0'; ++i) {
buf[i] = ev_P->xclient.data.b[i];
}
buf[i] = '\0';
if (d->incoming_messages.contains(ev_P->xclient.window)) {
if (ev_P->xclient.message_type == d->accept_atom1 && d->accept_atom1 != d->accept_atom2) {
// two different messages on the same window at the same time shouldn't happen anyway
d->incoming_messages[ ev_P->xclient.window ] = QByteArray();
d->incoming_messages[ ev_P->xclient.window ] += buf;
d->incoming_messages[ev_P->xclient.window] = QByteArray();
}
d->incoming_messages[ev_P->xclient.window] += buf;
} else {
if( ev_P->xclient.message_type == d->accept_atom2 && d->accept_atom1 != d->accept_atom2 )
return false; // middle of message, but we don't have the beginning
d->incoming_messages[ ev_P->xclient.window ] = buf;
if (ev_P->xclient.message_type == d->accept_atom2 && d->accept_atom1 != d->accept_atom2) {
// middle of message, but we don't have the beginning
return false;
}
d->incoming_messages[ev_P->xclient.window] = buf;
}
if( i < 20 ) { // last message fragment
emit gotMessage( QString::fromUtf8( d->incoming_messages[ ev_P->xclient.window ] ));
d->incoming_messages.remove( ev_P->xclient.window );
if (i < 20) {
// last message fragment
emit gotMessage(QString::fromUtf8(d->incoming_messages[ev_P->xclient.window]));
d->incoming_messages.remove(ev_P->xclient.window);
}
return false; // lets other KXMessages instances get the event too
// lets other KXMessages instances get the event too
return false;
}
#include "moc_kxmessages.cpp"
#endif

View file

@ -28,10 +28,9 @@ DEALINGS IN THE SOFTWARE.
#include <kdeui_export.h>
#include <QtGui/QWidget>
#include <QtCore/QMap>
#ifdef Q_WS_X11
#include <X11/X.h>
#include <QtCore/QString>
#include <QString>
#include <X11/X.h>
class KXMessagesPrivate;
/**
@ -43,120 +42,117 @@ class KXMessagesPrivate;
* @author Lubos Lunak <l.lunak@kde.org>
*/
// KDE4 - make this internal for KStartupInfo only?
class KDEUI_EXPORT KXMessages
: public QWidget
{
class KDEUI_EXPORT KXMessages : public QWidget
{
Q_OBJECT
public:
/**
* Creates an instance which will receive X messages.
*
* @param accept_broadcast if non-NULL, all broadcast messages with
* this message type will be received.
* @param parent the parent of this widget
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
KXMessages( const char* accept_broadcast, QWidget* parent, bool obsolete );
/**
* @deprecated
* This method is equivalent to the other constructor with obsolete = true.
*/
explicit KXMessages( const char* accept_broadcast = NULL, QWidget* parent = NULL );
public:
/**
* Creates an instance which will receive X messages.
*
* @param accept_broadcast if non-NULL, all broadcast messages with
* this message type will be received.
* @param parent the parent of this widget
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
KXMessages(const char* accept_broadcast, QWidget* parent, bool obsolete);
virtual ~KXMessages();
/**
* Sends the given message with the given message type only to given
* window.
*
* @param w X11 handle for the destination window
* @param msg_type the type of the message
* @param message the message itself
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
void sendMessage( WId w, const char* msg_type, const QString& message,
bool obsolete );
/**
* @deprecated
* This method is equivalent to sendMessage() with obsolete = true.
*/
void sendMessage( WId w, const char* msg_type, const QString& message );
/**
* Broadcasts the given message with the given message type.
* @param msg_type the type of the message
* @param message the message itself
* @param screen X11 screen to use, -1 for the default
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
void broadcastMessage( const char* msg_type, const QString& message,
int screen, bool obsolete );
/**
* @deprecated
* This method is equivalent to broadcastMessage() with obsolete = true.
*/
void broadcastMessage( const char* msg_type, const QString& message );
/**
* @deprecated
* This method is equivalent to the other constructor with obsolete = true.
*/
explicit KXMessages(const char* accept_broadcast = NULL, QWidget* parent = NULL);
/**
* Sends the given message with the given message type only to given
* window.
*
* @param disp X11 connection which will be used instead of
* qt_x11display()
* @param w X11 handle for the destination window
* @param msg_type the type of the message
* @param message the message itself
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
* @return false when an error occurred, true otherwise
*/
static bool sendMessageX( Display* disp, WId w, const char* msg_type,
const QString& message, bool obsolete );
/**
* @deprecated
* This method is equivalent to sendMessageX() with obsolete = true.
*/
static bool sendMessageX( Display* disp, WId w, const char* msg_type,
const QString& message );
virtual ~KXMessages();
/**
* Broadcasts the given message with the given message type.
*
* @param disp X11 connection which will be used instead of
* qt_x11display()
* @param msg_type the type of the message
* @param message the message itself
* @param screen X11 screen to use, -1 for the default
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
* @return false when an error occurred, true otherwise
*/
static bool broadcastMessageX( Display* disp, const char* msg_type,
const QString& message, int screen, bool obsolete );
/**
* @deprecated
* This method is equivalent to broadcastMessageX() with obsolete = true.
*/
static bool broadcastMessageX( Display* disp, const char* msg_type,
const QString& message );
Q_SIGNALS:
/**
* Emitted when a message was received.
* @param message the message that has been received
*/
void gotMessage( const QString& message );
protected:
/**
* @internal
*/
virtual bool x11Event( XEvent* ev );
private:
static void send_message_internal( WId w_P, const QString& msg_P, long mask_P,
Display* disp, Atom atom1_P, Atom atom2_P, Window handle_P );
KXMessagesPrivate * const d;
};
/**
* Sends the given message with the given message type only to given
* window.
*
* @param w X11 handle for the destination window
* @param msg_type the type of the message
* @param message the message itself
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
void sendMessage(WId w, const char* msg_type, const QString& message, bool obsolete);
/**
* @deprecated
* This method is equivalent to sendMessage() with obsolete = true.
*/
void sendMessage(WId w, const char* msg_type, const QString& message);
#endif
#endif
/**
* Broadcasts the given message with the given message type.
* @param msg_type the type of the message
* @param message the message itself
* @param screen X11 screen to use, -1 for the default
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
*/
void broadcastMessage(const char* msg_type, const QString& message, int screen, bool obsolete);
/**
* @deprecated
* This method is equivalent to broadcastMessage() with obsolete = true.
*/
void broadcastMessage(const char* msg_type, const QString& message);
/**
* Sends the given message with the given message type only to given
* window.
*
* @param disp X11 connection which will be used instead of
* qt_x11display()
* @param w X11 handle for the destination window
* @param msg_type the type of the message
* @param message the message itself
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
* @return false when an error occurred, true otherwise
*/
static bool sendMessageX(Display* disp, WId w, const char* msg_type, const QString& message, bool obsolete);
/**
* @deprecated
* This method is equivalent to sendMessageX() with obsolete = true.
*/
static bool sendMessageX(Display* disp, WId w, const char* msg_type, const QString& message);
/**
* Broadcasts the given message with the given message type.
*
* @param disp X11 connection which will be used instead of
* qt_x11display()
* @param msg_type the type of the message
* @param message the message itself
* @param screen X11 screen to use, -1 for the default
* @param obsolete always set to false (needed for backwards compatibility
* with KDE3.1 and older)
* @return false when an error occurred, true otherwise
*/
static bool broadcastMessageX(Display* disp, const char* msg_type, const QString& message, int screen, bool obsolete);
/**
* @deprecated
* This method is equivalent to broadcastMessageX() with obsolete = true.
*/
static bool broadcastMessageX(Display* disp, const char* msg_type, const QString& message);
Q_SIGNALS:
/**
* Emitted when a message was received.
* @param message the message that has been received
*/
void gotMessage(const QString& message);
protected:
/**
* @internal
*/
virtual bool x11Event(XEvent* ev);
private:
static void send_message_internal(WId w_P, const QString& msg_P, long mask_P,
Display* disp, Atom atom1_P, Atom atom2_P, Window handle_P);
KXMessagesPrivate* const d;
};
#endif // KXMESSAGES_H