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:
Sebastian Kügler 2013-02-22 16:44:36 +01:00
parent ff089521af
commit 0faa120641
2 changed files with 27 additions and 9 deletions

View File

@ -42,7 +42,7 @@
DialogProxy::DialogProxy(QQuickItem *parent)
: QQuickWindow(),
m_activeWindow(false),
m_location(Plasma::Floating)
m_location(Qt::AlignCenter)
{
QSurfaceFormat format;
format.setAlphaBufferSize(8);
@ -212,6 +212,24 @@ QPoint DialogProxy::popupPosition(QQuickItem *item, Qt::AlignmentFlag alignment)
int xOffset = 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) {
xOffset = item->boundingRect().width()/2 - width()/2;
yOffset = item->boundingRect().height()/2 - height()/2;
@ -262,17 +280,17 @@ void DialogProxy::setWindowFlags(const int 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) {
return;
}
m_location = (Plasma::Location)location;
m_location = (Qt::AlignmentFlag)location;
emit locationChanged();
}

View File

@ -78,7 +78,7 @@ class DialogProxy : public QQuickWindow
/**
* 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
#ifndef Q_WS_WIN
/**
@ -118,8 +118,8 @@ public:
int windowFlags() const;
void setWindowFlags(const int);
int location() const;
void setLocation(int location);
Qt::AlignmentFlag location() const;
void setLocation(Qt::AlignmentFlag location);
QObject *margins() const;
@ -167,7 +167,7 @@ private:
QWeakPointer<QQuickItem> m_mainItem;
QWeakPointer<QQuickItem> m_visualParent;
bool m_activeWindow;
Plasma::Location m_location;
Qt::AlignmentFlag m_location;
Plasma::FrameSvgItem *m_frameSvgItem;
};