summaryrefslogtreecommitdiffstats
path: root/hoverwindow.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-10-23 15:09:49 +0200
committerArno <am@disconnect.de>2010-10-23 15:09:49 +0200
commit7e0abc7cde4a9c02fabc27cc2b6506bd41f0588d (patch)
treedff223d42a9515f961ded35eaae9ceba77824580 /hoverwindow.h
parent9092371858356efde3e2d6d002f692308127389c (diff)
downloadSheMov-7e0abc7cde4a9c02fabc27cc2b6506bd41f0588d.tar.gz
SheMov-7e0abc7cde4a9c02fabc27cc2b6506bd41f0588d.tar.bz2
SheMov-7e0abc7cde4a9c02fabc27cc2b6506bd41f0588d.zip
Fix hover issues
Hopefully this commit fixes all issues with hovering over items. First, only use QCursor::pos() to determine the position of the hover window and fix position calculation accordingly. For that SmGlobals now return a QSize of the actual cursor size. Introduced a hoverOffeset to HoverWindow defaulting to SmGlobals::cursorSize() + 30 to prevent a HoverLeave event on showing the HoverWindow. Also fixed Qt::WindowFlags of HoverWindow. We don't want the HoverWindow to show in the taskbar or get sent to background when clicking on an item.
Diffstat (limited to 'hoverwindow.h')
-rw-r--r--hoverwindow.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/hoverwindow.h b/hoverwindow.h
index 49aec40..ee061dd 100644
--- a/hoverwindow.h
+++ b/hoverwindow.h
@@ -13,19 +13,27 @@
#include <QVariant>
class QLabel;
+class QHBoxLayout;
class HoverWindow : public QWidget {
Q_OBJECT
+ Q_PROPERTY(QPoint HoverOffset READ hoverOffset WRITE setHoverOffset);
public:
- explicit HoverWindow(QWidget *parent = 0, Qt::WindowFlags f = Qt::FramelessWindowHint);
+ explicit HoverWindow(QWidget *parent = 0, Qt::WindowFlags f = Qt::Tool | Qt::FramelessWindowHint);
void setContent(const QString &parent, const QStringList &children);
void setPixmap(const QPixmap &pm);
void setData(const QList<QVariant> &data);
int pixmapHeight() const;
- void setPos(const QPoint &cursorPos);
+ void setPos();
+ QPoint hoverOffset() const { return mHoverOffset; }
+ void setHoverOffset(const QPoint &point) { mHoverOffset = point; }
private:
QLabel *mLabel;
+ QPoint mHoverOffset;
+ QHBoxLayout *mMainLayout;
+ bool mAlignCenter;
+ int mDesktopHeight;
};
#endif // HOVERWINDOW_H