summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/preview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/rbutilqt/preview.cpp')
-rw-r--r--utils/rbutilqt/preview.cpp122
1 files changed, 122 insertions, 0 deletions
diff --git a/utils/rbutilqt/preview.cpp b/utils/rbutilqt/preview.cpp
new file mode 100644
index 0000000000..5006a03a09
--- /dev/null
+++ b/utils/rbutilqt/preview.cpp
@@ -0,0 +1,122 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2007 by Dominik Wenger
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#include <QDialog>
20#include <QMouseEvent>
21
22#include "preview.h"
23
24PreviewDlg::PreviewDlg(QWidget *parent) : QDialog(parent)
25{
26 ui.setupUi(this);
27 this->setModal(true);
28 this->setMouseTracking(true);
29 this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
30
31}
32
33void PreviewDlg::setText(QString text)
34{
35 ui.themePreview->setText(text);
36}
37
38void PreviewDlg::setPixmap(QPixmap p)
39{
40 ui.themePreview->setFixedSize(p.size());
41 this->resize(QSize(10,10));
42 ui.themePreview->setPixmap(p);
43}
44
45void PreviewDlg::mouseMoveEvent(QMouseEvent * event)
46{
47 (void) event;
48 this->close();
49}
50
51void PreviewDlg::leaveEvent(QEvent * event)
52{
53 (void) event;
54 this->close();
55}
56
57
58void PreviewDlg::changeEvent(QEvent *e)
59{
60 if(e->type() == QEvent::LanguageChange) {
61 ui.retranslateUi(this);
62 } else {
63 QWidget::changeEvent(e);
64 }
65}
66
67PreviewLabel::PreviewLabel(QWidget * parent, Qt::WindowFlags f)
68 :QLabel(parent,f)
69{
70 this->setMouseTracking(true);
71
72 preview = new PreviewDlg(parent);
73
74 hovertimer.setInterval(1500); // wait for 1.5 seconds before showing the Fullsize Preview
75 hovertimer.setSingleShot(true);
76 connect(&hovertimer,SIGNAL(timeout ()),this,SLOT(timeout()));
77}
78
79void PreviewLabel::mouseMoveEvent(QMouseEvent * event)
80{
81 hovertimer.start();
82 mousepos = event->globalPos();
83}
84void PreviewLabel::enterEvent(QEvent * event)
85{
86 (void) event;
87 hovertimer.start();
88}
89void PreviewLabel::leaveEvent(QEvent * event)
90{
91 (void) event;
92 hovertimer.stop();
93}
94
95void PreviewLabel::timeout()
96{
97 preview->move(mousepos.x() - (preview->width() / 2),
98 mousepos.y() - (preview->height() / 2));
99 preview->setVisible(true);
100}
101
102void PreviewLabel::setPixmap(QPixmap p)
103{
104 // set the image for the Fullsize Preview
105 preview->setPixmap(p);
106
107 //scale the image for use in the label
108 QSize img;
109 img.setHeight(this->height());
110 img.setWidth(this->width());
111 QPixmap q;
112 q = p.scaled(img, Qt::KeepAspectRatio, Qt::SmoothTransformation);
113 this->setScaledContents(false);
114 QLabel::setPixmap(q);
115}
116
117void PreviewLabel::setText(QString text)
118{
119 QLabel::setText(text);
120 preview->setText(text);
121}
122