Convert alignment to Qt::AlignmentFlag
Also start a bit on the logic of setting location. Does nothing yet, but build.
This commit is contained in:
parent
ff089521af
commit
0faa120641
@ -42,7 +42,7 @@
|
|||||||
DialogProxy::DialogProxy(QQuickItem *parent)
|
DialogProxy::DialogProxy(QQuickItem *parent)
|
||||||
: QQuickWindow(),
|
: QQuickWindow(),
|
||||||
m_activeWindow(false),
|
m_activeWindow(false),
|
||||||
m_location(Plasma::Floating)
|
m_location(Qt::AlignCenter)
|
||||||
{
|
{
|
||||||
QSurfaceFormat format;
|
QSurfaceFormat format;
|
||||||
format.setAlphaBufferSize(8);
|
format.setAlphaBufferSize(8);
|
||||||
@ -212,6 +212,24 @@ QPoint DialogProxy::popupPosition(QQuickItem *item, Qt::AlignmentFlag alignment)
|
|||||||
int xOffset = 0;
|
int xOffset = 0;
|
||||||
int yOffset = 0;
|
int yOffset = 0;
|
||||||
|
|
||||||
|
int _x = 0;
|
||||||
|
int _y = 0;
|
||||||
|
|
||||||
|
if (location() == Qt::AlignBottom) {
|
||||||
|
_y = item->y() + item->height();
|
||||||
|
} else if (location() == Qt::AlignTop) {
|
||||||
|
_y = item->y() - height();
|
||||||
|
} else if ((location() & Qt::AlignCenter) || (location() & Qt::AlignVCenter)) {
|
||||||
|
// align our item's vertical center with our own vertical center
|
||||||
|
_y = (item->y() + item->height()/2) - height()/2;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Location is left or right
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (alignment == Qt::AlignCenter) {
|
if (alignment == Qt::AlignCenter) {
|
||||||
xOffset = item->boundingRect().width()/2 - width()/2;
|
xOffset = item->boundingRect().width()/2 - width()/2;
|
||||||
yOffset = item->boundingRect().height()/2 - height()/2;
|
yOffset = item->boundingRect().height()/2 - height()/2;
|
||||||
@ -262,17 +280,17 @@ void DialogProxy::setWindowFlags(const int flags)
|
|||||||
setFlags(Qt::FramelessWindowHint|m_flags);
|
setFlags(Qt::FramelessWindowHint|m_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
int DialogProxy::location() const
|
Qt::AlignmentFlag DialogProxy::location() const
|
||||||
{
|
{
|
||||||
return (int)m_location;
|
return (Qt::AlignmentFlag)m_location;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogProxy::setLocation(int location)
|
void DialogProxy::setLocation(Qt::AlignmentFlag location)
|
||||||
{
|
{
|
||||||
if (m_location == location) {
|
if (m_location == location) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_location = (Plasma::Location)location;
|
m_location = (Qt::AlignmentFlag)location;
|
||||||
emit locationChanged();
|
emit locationChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ class DialogProxy : public QQuickWindow
|
|||||||
/**
|
/**
|
||||||
* Plasma Location of the dialog window. Useful if this dialog is apopup for a panel
|
* Plasma Location of the dialog window. Useful if this dialog is apopup for a panel
|
||||||
*/
|
*/
|
||||||
Q_PROPERTY(int location READ location WRITE setLocation NOTIFY locationChanged)
|
Q_PROPERTY(Qt::AlignmentFlag location READ location WRITE setLocation NOTIFY locationChanged)
|
||||||
//This won't be available on windows, but should be used only by kwin and never by applets anyways
|
//This won't be available on windows, but should be used only by kwin and never by applets anyways
|
||||||
#ifndef Q_WS_WIN
|
#ifndef Q_WS_WIN
|
||||||
/**
|
/**
|
||||||
@ -118,8 +118,8 @@ public:
|
|||||||
int windowFlags() const;
|
int windowFlags() const;
|
||||||
void setWindowFlags(const int);
|
void setWindowFlags(const int);
|
||||||
|
|
||||||
int location() const;
|
Qt::AlignmentFlag location() const;
|
||||||
void setLocation(int location);
|
void setLocation(Qt::AlignmentFlag location);
|
||||||
|
|
||||||
QObject *margins() const;
|
QObject *margins() const;
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ private:
|
|||||||
QWeakPointer<QQuickItem> m_mainItem;
|
QWeakPointer<QQuickItem> m_mainItem;
|
||||||
QWeakPointer<QQuickItem> m_visualParent;
|
QWeakPointer<QQuickItem> m_visualParent;
|
||||||
bool m_activeWindow;
|
bool m_activeWindow;
|
||||||
Plasma::Location m_location;
|
Qt::AlignmentFlag m_location;
|
||||||
Plasma::FrameSvgItem *m_frameSvgItem;
|
Plasma::FrameSvgItem *m_frameSvgItem;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user