diff options
Diffstat (limited to 'utils/rbutilqt/preview.cpp')
-rw-r--r-- | utils/rbutilqt/preview.cpp | 122 |
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 | |||
24 | PreviewDlg::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 | |||
33 | void PreviewDlg::setText(QString text) | ||
34 | { | ||
35 | ui.themePreview->setText(text); | ||
36 | } | ||
37 | |||
38 | void PreviewDlg::setPixmap(QPixmap p) | ||
39 | { | ||
40 | ui.themePreview->setFixedSize(p.size()); | ||
41 | this->resize(QSize(10,10)); | ||
42 | ui.themePreview->setPixmap(p); | ||
43 | } | ||
44 | |||
45 | void PreviewDlg::mouseMoveEvent(QMouseEvent * event) | ||
46 | { | ||
47 | (void) event; | ||
48 | this->close(); | ||
49 | } | ||
50 | |||
51 | void PreviewDlg::leaveEvent(QEvent * event) | ||
52 | { | ||
53 | (void) event; | ||
54 | this->close(); | ||
55 | } | ||
56 | |||
57 | |||
58 | void PreviewDlg::changeEvent(QEvent *e) | ||
59 | { | ||
60 | if(e->type() == QEvent::LanguageChange) { | ||
61 | ui.retranslateUi(this); | ||
62 | } else { | ||
63 | QWidget::changeEvent(e); | ||
64 | } | ||
65 | } | ||
66 | |||
67 | PreviewLabel::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 | |||
79 | void PreviewLabel::mouseMoveEvent(QMouseEvent * event) | ||
80 | { | ||
81 | hovertimer.start(); | ||
82 | mousepos = event->globalPos(); | ||
83 | } | ||
84 | void PreviewLabel::enterEvent(QEvent * event) | ||
85 | { | ||
86 | (void) event; | ||
87 | hovertimer.start(); | ||
88 | } | ||
89 | void PreviewLabel::leaveEvent(QEvent * event) | ||
90 | { | ||
91 | (void) event; | ||
92 | hovertimer.stop(); | ||
93 | } | ||
94 | |||
95 | void PreviewLabel::timeout() | ||
96 | { | ||
97 | preview->move(mousepos.x() - (preview->width() / 2), | ||
98 | mousepos.y() - (preview->height() / 2)); | ||
99 | preview->setVisible(true); | ||
100 | } | ||
101 | |||
102 | void 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 | |||
117 | void PreviewLabel::setText(QString text) | ||
118 | { | ||
119 | QLabel::setText(text); | ||
120 | preview->setText(text); | ||
121 | } | ||
122 | |||