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"