mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 02:42:48 +00:00
kdeui: log KPixmap and KSelectionOwner debug/warning messages to the kdeui (kdelibs) debug area
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
a5734faf0f
commit
a4c80f09d2
3 changed files with 25 additions and 19 deletions
|
@ -66,7 +66,7 @@ KPixmap::KPixmap(const Qt::HANDLE pixmap)
|
|||
);
|
||||
d->size = QSize(x11width, x11height);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
// in the worst case the pixmap will be leaked
|
||||
d->handle = XNone;
|
||||
d->size = QSize();
|
||||
|
@ -81,7 +81,7 @@ KPixmap::KPixmap(const QPixmap &pixmap)
|
|||
KXErrorHandler kx11errorhandler;
|
||||
d->handle = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), pixmap.width(), pixmap.height(), 32);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
d->handle = XNone;
|
||||
return;
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ KPixmap::KPixmap(const QSize &size)
|
|||
KXErrorHandler kx11errorhandler;
|
||||
d->handle = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), size.width(), size.height(), 32);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
d->handle = XNone;
|
||||
return;
|
||||
}
|
||||
|
@ -142,14 +142,14 @@ Qt::HANDLE KPixmap::handle() const
|
|||
void KPixmap::release()
|
||||
{
|
||||
if (d->handle == XNone) {
|
||||
kDebug() << "No handle";
|
||||
kDebug(240) << "No handle";
|
||||
return;
|
||||
}
|
||||
// NOTE: catching errors here is done to not get fatal I/O
|
||||
KXErrorHandler kx11errorhandler;
|
||||
XFreePixmap(QX11Info::display(), d->handle);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
}
|
||||
d->handle = XNone;
|
||||
d->size = QSize();
|
||||
|
@ -157,6 +157,10 @@ void KPixmap::release()
|
|||
|
||||
QImage KPixmap::toImage() const
|
||||
{
|
||||
if (isNull()) {
|
||||
kWarning(240) << "Null pixmap";
|
||||
return QImage();
|
||||
}
|
||||
// TODO: optimize
|
||||
return QPixmap::fromX11Pixmap(d->handle).toImage();
|
||||
}
|
||||
|
@ -166,4 +170,4 @@ KPixmap& KPixmap::operator=(const KPixmap &other)
|
|||
delete d;
|
||||
d = new KPixmapPrivate(*other.d);
|
||||
return *this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ class KPixmapPrivate;
|
|||
|
||||
/*!
|
||||
Class to deal with X11 pixmaps.
|
||||
|
||||
@since 4.22
|
||||
*/
|
||||
class KDEUI_EXPORT KPixmap
|
||||
{
|
||||
|
|
|
@ -68,7 +68,7 @@ KSelectionOwner::~KSelectionOwner()
|
|||
|
||||
Window KSelectionOwner::ownerWindow() const
|
||||
{
|
||||
kDebug() << "Current selection owner is" << d->x11window;
|
||||
kDebug(240) << "Current selection owner is" << d->x11window;
|
||||
return d->x11window;
|
||||
}
|
||||
|
||||
|
@ -76,15 +76,15 @@ bool KSelectionOwner::claim(const bool force)
|
|||
{
|
||||
Window currentowner = XGetSelectionOwner(d->x11display, d->x11atom);
|
||||
if (currentowner != None && !force) {
|
||||
kDebug() << "Selection is owned";
|
||||
kDebug(240) << "Selection is owned";
|
||||
return false;
|
||||
}
|
||||
if (currentowner != None) {
|
||||
kDebug() << "Selection is owned, clearing owner";
|
||||
kDebug(240) << "Selection is owned, clearing owner";
|
||||
XSetSelectionOwner(d->x11display, d->x11atom, None, CurrentTime);
|
||||
XFlush(d->x11display);
|
||||
ushort counter = 0;
|
||||
kDebug() << "Waiting for owner";
|
||||
kDebug(240) << "Waiting for owner";
|
||||
while (currentowner != None && counter < 10) {
|
||||
currentowner = XGetSelectionOwner(d->x11display, d->x11atom);
|
||||
QCoreApplication::processEvents(QEventLoop::AllEvents, KSELECTIONOWNER_TIMEOUT);
|
||||
|
@ -93,16 +93,16 @@ bool KSelectionOwner::claim(const bool force)
|
|||
}
|
||||
}
|
||||
if (currentowner != None) {
|
||||
kDebug() << "Selection is owned, killing owner";
|
||||
kDebug(240) << "Selection is owned, killing owner";
|
||||
KXErrorHandler kx11errorhandler;
|
||||
XKillClient(d->x11display, currentowner);
|
||||
XFlush(d->x11display);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
kDebug() << "Creating selection owner";
|
||||
kDebug(240) << "Creating selection owner";
|
||||
KXErrorHandler kx11errorhandler;
|
||||
d->x11window = XCreateSimpleWindow(
|
||||
d->x11display, RootWindow(d->x11display, d->x11screen),
|
||||
|
@ -111,7 +111,7 @@ bool KSelectionOwner::claim(const bool force)
|
|||
0, 0, 0 // border width, border and background pixels
|
||||
);
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kWarning() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kWarning(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
return false;
|
||||
}
|
||||
XSetSelectionOwner(d->x11display, d->x11atom, d->x11window, CurrentTime);
|
||||
|
@ -123,14 +123,14 @@ bool KSelectionOwner::claim(const bool force)
|
|||
void KSelectionOwner::release()
|
||||
{
|
||||
if (d->x11window == None) {
|
||||
kDebug() << "No owner";
|
||||
kDebug(240) << "No owner";
|
||||
return;
|
||||
}
|
||||
if (d->timerid > 0) {
|
||||
killTimer(d->timerid);
|
||||
d->timerid = 0;
|
||||
}
|
||||
kDebug() << "Destroying owner window";
|
||||
kDebug(240) << "Destroying owner window";
|
||||
XDestroyWindow(d->x11display, d->x11window);
|
||||
XFlush(d->x11display);
|
||||
d->x11window = None;
|
||||
|
@ -139,11 +139,11 @@ void KSelectionOwner::release()
|
|||
void KSelectionOwner::timerEvent(QTimerEvent *event)
|
||||
{
|
||||
if (event->timerId() == d->timerid) {
|
||||
// kDebug() << "Checking selection owner for" << XGetAtomName(d->x11display, d->x11atom);
|
||||
// kDebug(240) << "Checking selection owner for" << XGetAtomName(d->x11display, d->x11atom);
|
||||
Q_ASSERT(d->x11window != None);
|
||||
Window currentowner = XGetSelectionOwner(d->x11display, d->x11atom);
|
||||
if (currentowner != d->x11window) {
|
||||
kDebug() << "Selection owner changed";
|
||||
kDebug(240) << "Selection owner changed";
|
||||
killTimer(d->timerid);
|
||||
d->timerid = 0;
|
||||
emit lostOwnership();
|
||||
|
@ -153,7 +153,7 @@ void KSelectionOwner::timerEvent(QTimerEvent *event)
|
|||
XFlush(d->x11display);
|
||||
d->x11window = None;
|
||||
if (kx11errorhandler.error(true)) {
|
||||
kDebug() << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
kDebug(240) << KXErrorHandler::errorMessage(kx11errorhandler.errorEvent());
|
||||
}
|
||||
}
|
||||
event->accept();
|
||||
|
|
Loading…
Add table
Reference in a new issue