util/qsystemtrayicon.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6QSystemTrayIcon::QSystemTrayIcon(QObject *parent) -
7: QObject(*new QSystemTrayIconPrivate(), parent) -
8{ -
9}
executed: }
Execution Count:4
4
10QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent) -
11: QObject(*new QSystemTrayIconPrivate(), parent) -
12{ -
13 setIcon(icon); -
14}
never executed: }
0
15 -
16 -
17 -
18 -
19QSystemTrayIcon::~QSystemTrayIcon() -
20{ -
21 QSystemTrayIconPrivate * const d = d_func(); -
22 d->remove_sys(); -
23}
executed: }
Execution Count:4
4
24void QSystemTrayIcon::setContextMenu(QMenu *menu) -
25{ -
26 QSystemTrayIconPrivate * const d = d_func(); -
27 d->menu = menu; -
28 d->updateMenu_sys(); -
29}
executed: }
Execution Count:1
1
30 -
31 -
32 -
33 -
34QMenu* QSystemTrayIcon::contextMenu() const -
35{ -
36 const QSystemTrayIconPrivate * const d = d_func(); -
37 return d->menu;
executed: return d->menu;
Execution Count:2
2
38} -
39void QSystemTrayIcon::setIcon(const QIcon &icon) -
40{ -
41 QSystemTrayIconPrivate * const d = d_func(); -
42 d->icon = icon; -
43 d->updateIcon_sys(); -
44}
executed: }
Execution Count:5
5
45 -
46QIcon QSystemTrayIcon::icon() const -
47{ -
48 const QSystemTrayIconPrivate * const d = d_func(); -
49 return d->icon;
executed: return d->icon;
Execution Count:3
3
50} -
51void QSystemTrayIcon::setToolTip(const QString &tooltip) -
52{ -
53 QSystemTrayIconPrivate * const d = d_func(); -
54 d->toolTip = tooltip; -
55 d->updateToolTip_sys(); -
56}
executed: }
Execution Count:1
1
57 -
58QString QSystemTrayIcon::toolTip() const -
59{ -
60 const QSystemTrayIconPrivate * const d = d_func(); -
61 return d->toolTip;
executed: return d->toolTip;
Execution Count:5
5
62} -
63QRect QSystemTrayIcon::geometry() const -
64{ -
65 const QSystemTrayIconPrivate * const d = d_func(); -
66 if (!d->visible)
never evaluated: !d->visible
0
67 return QRect();
never executed: return QRect();
0
68 return d->geometry_sys();
never executed: return d->geometry_sys();
0
69} -
70void QSystemTrayIcon::setVisible(bool visible) -
71{ -
72 QSystemTrayIconPrivate * const d = d_func(); -
73 if (visible == d->visible)
partially evaluated: visible == d->visible
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
74 return;
never executed: return;
0
75 if (d->icon.isNull() && visible)
partially evaluated: d->icon.isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
never evaluated: visible
0-4
76 QMessageLogger("util/qsystemtrayicon.cpp", 271, __PRETTY_FUNCTION__).warning("QSystemTrayIcon::setVisible: No Icon set");
never executed: QMessageLogger("util/qsystemtrayicon.cpp", 271, __PRETTY_FUNCTION__).warning("QSystemTrayIcon::setVisible: No Icon set");
0
77 d->visible = visible; -
78 if (d->visible)
evaluated: d->visible
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
79 d->install_sys();
executed: d->install_sys();
Execution Count:3
3
80 else -
81 d->remove_sys();
executed: d->remove_sys();
Execution Count:1
1
82} -
83 -
84bool QSystemTrayIcon::isVisible() const -
85{ -
86 const QSystemTrayIconPrivate * const d = d_func(); -
87 return d->visible;
never executed: return d->visible;
0
88} -
89 -
90 -
91 -
92 -
93bool QSystemTrayIcon::event(QEvent *e) -
94{ -
95 -
96 -
97 -
98 -
99 -
100 -
101 return QObject::event(e);
never executed: return QObject::event(e);
0
102} -
103bool QSystemTrayIcon::isSystemTrayAvailable() -
104{ -
105 return QSystemTrayIconPrivate::isSystemTrayAvailable_sys();
never executed: return QSystemTrayIconPrivate::isSystemTrayAvailable_sys();
0
106} -
107 -
108 -
109 -
110 -
111 -
112 -
113bool QSystemTrayIcon::supportsMessages() -
114{ -
115 return QSystemTrayIconPrivate::supportsMessages_sys();
executed: return QSystemTrayIconPrivate::supportsMessages_sys();
Execution Count:1
1
116} -
117void QSystemTrayIcon::showMessage(const QString& title, const QString& msg, -
118 QSystemTrayIcon::MessageIcon icon, int msecs) -
119{ -
120 QSystemTrayIconPrivate * const d = d_func(); -
121 if (d->visible)
evaluated: d->visible
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:4
4
122 d->showMessage_sys(title, msg, icon, msecs);
executed: d->showMessage_sys(title, msg, icon, msecs);
Execution Count:4
4
123}
executed: }
Execution Count:8
8
124 -
125void QSystemTrayIconPrivate::_q_emitActivated(QPlatformSystemTrayIcon::ActivationReason reason) -
126{ -
127 QSystemTrayIcon * const q = q_func(); -
128 q->activated(static_cast<QSystemTrayIcon::ActivationReason>(reason)); -
129}
never executed: }
0
130 -
131 -
132static QBalloonTip *theSolitaryBalloonTip = 0; -
133 -
134void QBalloonTip::showBalloon(QSystemTrayIcon::MessageIcon icon, const QString& title, -
135 const QString& message, QSystemTrayIcon *trayIcon, -
136 const QPoint& pos, int timeout, bool showArrow) -
137{ -
138 hideBalloon(); -
139 if (message.isEmpty() && title.isEmpty())
partially evaluated: message.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
never evaluated: title.isEmpty()
0-4
140 return;
never executed: return;
0
141 -
142 theSolitaryBalloonTip = new QBalloonTip(icon, title, message, trayIcon); -
143 if (timeout < 0)
partially evaluated: timeout < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
144 timeout = 10000;
never executed: timeout = 10000;
0
145 theSolitaryBalloonTip->balloon(pos, timeout, showArrow); -
146}
executed: }
Execution Count:4
4
147 -
148void QBalloonTip::hideBalloon() -
149{ -
150 if (!theSolitaryBalloonTip)
evaluated: !theSolitaryBalloonTip
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:4
3-4
151 return;
executed: return;
Execution Count:3
3
152 theSolitaryBalloonTip->hide(); -
153 delete theSolitaryBalloonTip; -
154 theSolitaryBalloonTip = 0; -
155}
executed: }
Execution Count:4
4
156 -
157bool QBalloonTip::isBalloonVisible() -
158{ -
159 return theSolitaryBalloonTip;
never executed: return theSolitaryBalloonTip;
0
160} -
161 -
162QBalloonTip::QBalloonTip(QSystemTrayIcon::MessageIcon icon, const QString& title, -
163 const QString& message, QSystemTrayIcon *ti) -
164 : QWidget(0, Qt::ToolTip), trayIcon(ti), timerId(-1) -
165{ -
166 setAttribute(Qt::WA_DeleteOnClose); -
167 QObject::connect(ti, "2""destroyed()", this, "1""close()"); -
168 -
169 QLabel *titleLabel = new QLabel; -
170 titleLabel->installEventFilter(this); -
171 titleLabel->setText(title); -
172 QFont f = titleLabel->font(); -
173 f.setBold(true); -
174 -
175 -
176 -
177 titleLabel->setFont(f); -
178 titleLabel->setTextFormat(Qt::PlainText); -
179 -
180 -
181 -
182 -
183 -
184 const int iconSize = 18; -
185 const int closeButtonSize = 15; -
186 -
187 -
188 QPushButton *closeButton = new QPushButton; -
189 closeButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarCloseButton)); -
190 closeButton->setIconSize(QSize(closeButtonSize, closeButtonSize)); -
191 closeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); -
192 closeButton->setFixedSize(closeButtonSize, closeButtonSize); -
193 QObject::connect(closeButton, "2""clicked()", this, "1""close()"); -
194 -
195 QLabel *msgLabel = new QLabel; -
196 -
197 -
198 -
199 -
200 msgLabel->installEventFilter(this); -
201 msgLabel->setText(message); -
202 msgLabel->setTextFormat(Qt::PlainText); -
203 msgLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft); -
204 -
205 -
206 -
207 -
208 -
209 int limit = QApplication::desktop()->availableGeometry(msgLabel).size().width() / 3; -
210 -
211 if (msgLabel->sizeHint().width() > limit) {
partially evaluated: msgLabel->sizeHint().width() > limit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
212 msgLabel->setWordWrap(true); -
213 if (msgLabel->sizeHint().width() > limit) {
never evaluated: msgLabel->sizeHint().width() > limit
0
214 msgLabel->d_func()->ensureTextControl(); -
215 if (QWidgetTextControl *control = msgLabel->d_func()->control) {
never evaluated: QWidgetTextControl *control = msgLabel->d_func()->control
0
216 QTextOption opt = control->document()->defaultTextOption(); -
217 opt.setWrapMode(QTextOption::WrapAnywhere); -
218 control->document()->setDefaultTextOption(opt); -
219 }
never executed: }
0
220 }
never executed: }
0
221 -
222 -
223 -
224 -
225 -
226 -
227 -
228 msgLabel->setFixedSize(limit, msgLabel->heightForWidth(limit)); -
229 -
230 }
never executed: }
0
231 -
232 QIcon si; -
233 switch (icon) { -
234 case QSystemTrayIcon::Warning: -
235 si = style()->standardIcon(QStyle::SP_MessageBoxWarning); -
236 break;
executed: break;
Execution Count:1
1
237 case QSystemTrayIcon::Critical: -
238 si = style()->standardIcon(QStyle::SP_MessageBoxCritical); -
239 break;
executed: break;
Execution Count:1
1
240 case QSystemTrayIcon::Information: -
241 si = style()->standardIcon(QStyle::SP_MessageBoxInformation); -
242 break;
executed: break;
Execution Count:1
1
243 case QSystemTrayIcon::NoIcon: -
244 default: -
245 break;
executed: break;
Execution Count:1
1
246 } -
247 -
248 QGridLayout *layout = new QGridLayout; -
249 if (!si.isNull()) {
evaluated: !si.isNull()
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
250 QLabel *iconLabel = new QLabel; -
251 iconLabel->setPixmap(si.pixmap(iconSize, iconSize)); -
252 iconLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); -
253 iconLabel->setMargin(2); -
254 layout->addWidget(iconLabel, 0, 0); -
255 layout->addWidget(titleLabel, 0, 1); -
256 } else {
executed: }
Execution Count:3
3
257 layout->addWidget(titleLabel, 0, 0, 1, 2); -
258 }
executed: }
Execution Count:1
1
259 -
260 layout->addWidget(closeButton, 0, 2); -
261 layout->addWidget(msgLabel, 1, 0, 1, 3); -
262 layout->setSizeConstraint(QLayout::SetFixedSize); -
263 layout->setMargin(3); -
264 setLayout(layout); -
265 -
266 QPalette pal = palette(); -
267 pal.setColor(QPalette::Window, QColor(0xff, 0xff, 0xe1)); -
268 pal.setColor(QPalette::WindowText, Qt::black); -
269 setPalette(pal); -
270}
executed: }
Execution Count:4
4
271 -
272QBalloonTip::~QBalloonTip() -
273{ -
274 theSolitaryBalloonTip = 0; -
275}
executed: }
Execution Count:4
4
276 -
277void QBalloonTip::paintEvent(QPaintEvent *) -
278{ -
279 QPainter painter(this); -
280 painter.drawPixmap(rect(), pixmap); -
281}
never executed: }
0
282 -
283void QBalloonTip::resizeEvent(QResizeEvent *ev) -
284{ -
285 QWidget::resizeEvent(ev); -
286}
executed: }
Execution Count:4
4
287 -
288void QBalloonTip::balloon(const QPoint& pos, int msecs, bool showArrow) -
289{ -
290 QRect scr = QApplication::desktop()->screenGeometry(pos); -
291 QSize sh = sizeHint(); -
292 const int border = 1; -
293 const int ah = 18, ao = 18, aw = 18, rc = 7; -
294 bool arrowAtTop = (pos.y() + sh.height() + ah < scr.height()); -
295 bool arrowAtLeft = (pos.x() + sh.width() - ao < scr.width()); -
296 setContentsMargins(border + 3, border + (arrowAtTop ? ah : 0) + 2, border + 3, border + (arrowAtTop ? 0 : ah) + 2); -
297 updateGeometry(); -
298 sh = sizeHint(); -
299 -
300 int ml, mr, mt, mb; -
301 QSize sz = sizeHint(); -
302 if (!arrowAtTop) {
partially evaluated: !arrowAtTop
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
303 ml = mt = 0; -
304 mr = sz.width() - 1; -
305 mb = sz.height() - ah - 1; -
306 } else {
never executed: }
0
307 ml = 0; -
308 mt = ah; -
309 mr = sz.width() - 1; -
310 mb = sz.height() - 1; -
311 }
executed: }
Execution Count:4
4
312 -
313 QPainterPath path; -
314 path.moveTo(ml + rc, mt); -
315 if (arrowAtTop && arrowAtLeft) {
partially evaluated: arrowAtTop
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
partially evaluated: arrowAtLeft
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
316 if (showArrow) {
partially evaluated: showArrow
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
317 path.lineTo(ml + ao, mt); -
318 path.lineTo(ml + ao, mt - ah); -
319 path.lineTo(ml + ao + aw, mt); -
320 }
executed: }
Execution Count:4
4
321 move(qMax(pos.x() - ao, scr.left() + 2), pos.y()); -
322 } else if (arrowAtTop && !arrowAtLeft) {
executed: }
Execution Count:4
never evaluated: arrowAtTop
never evaluated: !arrowAtLeft
0-4
323 if (showArrow) {
never evaluated: showArrow
0
324 path.lineTo(mr - ao - aw, mt); -
325 path.lineTo(mr - ao, mt - ah); -
326 path.lineTo(mr - ao, mt); -
327 }
never executed: }
0
328 move(qMin(pos.x() - sh.width() + ao, scr.right() - sh.width() - 2), pos.y()); -
329 }
never executed: }
0
330 path.lineTo(mr - rc, mt); -
331 path.arcTo(QRect(mr - rc*2, mt, rc*2, rc*2), 90, -90); -
332 path.lineTo(mr, mb - rc); -
333 path.arcTo(QRect(mr - rc*2, mb - rc*2, rc*2, rc*2), 0, -90); -
334 if (!arrowAtTop && !arrowAtLeft) {
partially evaluated: !arrowAtTop
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
never evaluated: !arrowAtLeft
0-4
335 if (showArrow) {
never evaluated: showArrow
0
336 path.lineTo(mr - ao, mb); -
337 path.lineTo(mr - ao, mb + ah); -
338 path.lineTo(mr - ao - aw, mb); -
339 }
never executed: }
0
340 move(qMin(pos.x() - sh.width() + ao, scr.right() - sh.width() - 2), -
341 pos.y() - sh.height()); -
342 } else if (!arrowAtTop && arrowAtLeft) {
never executed: }
partially evaluated: !arrowAtTop
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
never evaluated: arrowAtLeft
0-4
343 if (showArrow) {
never evaluated: showArrow
0
344 path.lineTo(ao + aw, mb); -
345 path.lineTo(ao, mb + ah); -
346 path.lineTo(ao, mb); -
347 }
never executed: }
0
348 move(qMax(pos.x() - ao, scr.x() + 2), pos.y() - sh.height()); -
349 }
never executed: }
0
350 path.lineTo(ml + rc, mb); -
351 path.arcTo(QRect(ml, mb - rc*2, rc*2, rc*2), -90, -90); -
352 path.lineTo(ml, mt + rc); -
353 path.arcTo(QRect(ml, mt, rc*2, rc*2), 180, -90); -
354 -
355 -
356 QBitmap bitmap = QBitmap(sizeHint()); -
357 bitmap.fill(Qt::color0); -
358 QPainter painter1(&bitmap); -
359 painter1.setPen(QPen(Qt::color1, border)); -
360 painter1.setBrush(QBrush(Qt::color1)); -
361 painter1.drawPath(path); -
362 setMask(bitmap); -
363 -
364 -
365 -
366 pixmap = QPixmap(sz); -
367 QPainter painter2(&pixmap); -
368 painter2.setPen(QPen(palette().color(QPalette::Window).darker(160), border)); -
369 painter2.setBrush(palette().color(QPalette::Window)); -
370 painter2.drawPath(path); -
371 -
372 if (msecs > 0)
partially evaluated: msecs > 0
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
373 timerId = startTimer(msecs);
executed: timerId = startTimer(msecs);
Execution Count:4
4
374 show(); -
375}
executed: }
Execution Count:4
4
376 -
377void QBalloonTip::mousePressEvent(QMouseEvent *e) -
378{ -
379 close(); -
380 if(e->button() == Qt::LeftButton)
never evaluated: e->button() == Qt::LeftButton
0
381 trayIcon->messageClicked();
never executed: trayIcon->messageClicked();
0
382}
never executed: }
0
383 -
384void QBalloonTip::timerEvent(QTimerEvent *e) -
385{ -
386 if (e->timerId() == timerId) {
never evaluated: e->timerId() == timerId
0
387 killTimer(timerId); -
388 if (!underMouse())
never evaluated: !underMouse()
0
389 close();
never executed: close();
0
390 return;
never executed: return;
0
391 } -
392 QWidget::timerEvent(e); -
393}
never executed: }
0
394 -
395 -
396 -
397 -
398 -
399 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial