File indexing completed on 2024-05-12 05:13:15

0001 /*
0002   This file is part of KOrganizer.
0003 
0004   SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com>
0005 
0006   SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0007 */
0008 
0009 #include "messagewidget.h"
0010 
0011 #include <QApplication>
0012 #include <QKeyEvent>
0013 
0014 using namespace CalendarSupport;
0015 
0016 MessageWidget::MessageWidget(QWidget *parent)
0017     : KMessageWidget(parent)
0018 {
0019     hide();
0020     setCloseButtonVisible(false);
0021     setWordWrap(true);
0022 }
0023 
0024 MessageWidget::~MessageWidget() = default;
0025 
0026 void MessageWidget::showEvent(QShowEvent *event)
0027 {
0028     qApp->installEventFilter(this);
0029     KMessageWidget::showEvent(event);
0030 }
0031 
0032 void MessageWidget::hideEvent(QHideEvent *event)
0033 {
0034     // No need to spend cycles on an event-filter when this is going to
0035     // me hidden most of the time
0036     qApp->removeEventFilter(this);
0037     KMessageWidget::hideEvent(event);
0038 }
0039 
0040 bool MessageWidget::eventFilter(QObject *, QEvent *event)
0041 {
0042     if (event->type() == QEvent::MouseButtonPress) {
0043         hide();
0044     }
0045 
0046     if (event->type() == QEvent::KeyPress) {
0047         auto ev = static_cast<QKeyEvent *>(event);
0048         hide();
0049         if (ev->key() == Qt::Key_Escape) {
0050             return true; // We eat this one, it's for us
0051         }
0052     }
0053 
0054     return false; // we don't want it
0055 }
0056 
0057 #include "moc_messagewidget.cpp"