File indexing completed on 2024-05-19 04:44:33

0001 /* This file is part of the KDE project
0002   Copyright (C) 2014 Adam Pigg <adam@piggz.co.uk>
0003   Copyright (C) 2016 Jarosław Staniek <staniek@kde.org>
0004 
0005   This library is free software; you can redistribute it and/or
0006   modify it under the terms of the GNU Library General Public
0007   License as published by the Free Software Foundation; either
0008   version 2.1 of the License, or (at your option) any later version.
0009 
0010   This library is distributed in the hope that it will be useful,
0011   but WITHOUT ANY WARRANTY; without even the implied warranty of
0012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013   Library General Public License for more details.
0014 
0015   You should have received a copy of the GNU Library General Public License
0016   along with this library; see the file COPYING.LIB.  If not, write to
0017   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018   Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #ifndef KREPORT_BOUNDEDTEXTITEM_H
0022 #define KREPORT_BOUNDEDTEXTITEM_H
0023 
0024 #include <QGraphicsTextItem>
0025 #include <QFont>
0026 
0027 /**
0028  * @brief Subclass of QGraphicsTextItem which simply forces
0029  * its boundingRect to be the same as its parent.
0030  * By default a QGraphicsTextItem will size to its text and
0031  * we want it to size to the parent item.
0032  *
0033  */
0034 class BoundedTextItem : public QGraphicsTextItem
0035 {
0036     Q_OBJECT
0037 
0038 public:
0039     explicit BoundedTextItem(QGraphicsItem *parent);
0040     QRectF boundingRect() const override;
0041     void paint(QPainter *painter, const QStyleOptionGraphicsItem *o, QWidget *w) override;
0042     void setBackgroudColor(const QColor &bc);
0043     void setForegroundColor(const QColor &fc);
0044 
0045     //! @return background opacity, 0..1.0
0046     qreal backgroudOpacity() const;
0047 
0048     //! Sets background opacity, 0..1.0
0049     void setBackgroudOpacity(qreal opacity);
0050 
0051     void setDisplayFont(const QFont &f);
0052 
0053 
0054 protected:
0055     void keyReleaseEvent ( QKeyEvent * event ) override;
0056 
0057 private:
0058     QColor m_backgroundColor;
0059     QColor m_foregroundColor;
0060     QFont m_font;
0061 
0062     qreal m_backgroundOpacity;
0063 
0064 Q_SIGNALS:
0065     void exitEditMode();
0066 
0067 };
0068 
0069 #endif // KREPORT_BOUNDEDTEXTITEM_H