Messagelib
9 #include "kwindowpositioner.h"
11 #include "messagecomposer_debug.h"
13 #include <QApplication>
14 #include <QDesktopWidget>
17 KWindowPositioner::KWindowPositioner(
QWidget *master,
QWidget *slave, Mode mode)
25 void KWindowPositioner::reposition()
29 relativePos =
QPoint(mMaster->width(), 0);
30 }
else if (mMode == Bottom) {
31 relativePos =
QPoint(mMaster->width() - mSlave->frameGeometry().width(), mMaster->height());
33 qCCritical(MESSAGECOMPOSER_LOG) <<
"KWindowPositioner: Illegal mode";
35 QPoint pos = mMaster->mapToGlobal(relativePos);
38 const QRect desktopRect(qApp->desktop()->availableGeometry(mMaster));
39 if ((pos.
x() + mSlave->frameGeometry().width()) > desktopRect.width()) {
40 pos.
setX(desktopRect.width() - mSlave->frameGeometry().width());
42 if ((pos.
y() + mSlave->frameGeometry().height()) > desktopRect.height()) {
43 pos.
setY(desktopRect.height() - mSlave->frameGeometry().height() - mMaster->height());
45 qCDebug(MESSAGECOMPOSER_LOG) << mMaster->pos() << mMaster->mapToGlobal(mMaster->pos()) << pos.
y() << (mMaster->pos().y() - pos.
y())
46 << mSlave->frameGeometry().height();
47 if (mMode == Bottom && mMaster->mapToGlobal(mMaster->pos()).y() > pos.
y() && (mMaster->pos().y() - pos.
y()) < mSlave->frameGeometry().height()) {
48 pos.
setY(mMaster->mapToGlobal(
QPoint(0, -mSlave->frameGeometry().height())).y());
50 if (pos.
x() < desktopRect.left()) {
51 pos.
setX(desktopRect.left());
53 if (pos.
y() < desktopRect.top()) {
54 pos.
setY(desktopRect.top());
Simple interface that both EncryptJob and SignEncryptJob implement so the composer can extract some e...
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu May 19 2022 03:53:25 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.