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