File indexing completed on 2024-05-12 16:44:04

0001 /*
0002     SPDX-FileCopyrightText: 2014-2015 Christian Dávid <christian-david@web.de>
0003     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KMYMONEYVALIDATIONFEEDBACK_H
0008 #define KMYMONEYVALIDATIONFEEDBACK_H
0009 
0010 #include <QWidget>
0011 
0012 #include "kmm_widgets_export.h"
0013 
0014 namespace eWidgets {
0015 namespace ValidationFeedback {
0016 enum class MessageType;
0017 }
0018 }
0019 
0020 class KMyMoneyValidationFeedbackPrivate;
0021 class KMM_WIDGETS_EXPORT KMyMoneyValidationFeedback : public QWidget
0022 {
0023     Q_OBJECT
0024     Q_DISABLE_COPY(KMyMoneyValidationFeedback)
0025 
0026 public:
0027     explicit KMyMoneyValidationFeedback(QWidget* parent = nullptr);
0028     ~KMyMoneyValidationFeedback();
0029 
0030 public Q_SLOTS:
0031     /**
0032      * @brief Removes the shown feedback
0033      */
0034     void removeFeedback();
0035 
0036     /**
0037      * @brief Removes a specific feedback
0038      *
0039      * Removes the feedback only if type and message fit. This is useful
0040      * if several objects are connected to setFeedback().
0041      */
0042     void removeFeedback(eWidgets::ValidationFeedback::MessageType type, QString message);
0043 
0044     /**
0045      * @brief Show a feedback
0046      *
0047      * If type == None and !message.isEmpty() holds, the feedback is only hidden if
0048      * the currently shown message equals message.
0049      */
0050     void setFeedback(eWidgets::ValidationFeedback::MessageType type, QString message);
0051 
0052 private:
0053     KMyMoneyValidationFeedbackPrivate * const d_ptr;
0054     Q_DECLARE_PRIVATE(KMyMoneyValidationFeedback)
0055 };
0056 
0057 #endif // KMYMONEYVALIDATIONFEEDBACK_H