File indexing completed on 2025-10-12 03:31:33
0001 /* 0002 File : ResizableTextEdit.h 0003 Project : LabPlot 0004 Description : Extended TextEdit to allow the manual resize by the user 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2018 Alexander Semke <alexander.semke@web.de> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef RESIZABLETEXTEDIT_H 0011 #define RESIZABLETEXTEDIT_H 0012 0013 #include <QTextEdit> 0014 0015 class ResizableTextEdit; 0016 0017 class GrabBar : public QWidget { 0018 Q_OBJECT 0019 0020 public: 0021 GrabBar(ResizableTextEdit*, bool vertResizeOnly); 0022 QSize sizeHint() const override; 0023 0024 protected: 0025 void paintEvent(QPaintEvent*) override; 0026 void mousePressEvent(QMouseEvent*) override; 0027 void mouseReleaseEvent(QMouseEvent*) override; 0028 void mouseMoveEvent(QMouseEvent*) override; 0029 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) 0030 void enterEvent(QEnterEvent*) override; 0031 #else 0032 void enterEvent(QEvent*) override; 0033 #endif 0034 void leaveEvent(QEvent*) override; 0035 0036 private: 0037 ResizableTextEdit* m_parent; 0038 QPoint m_pos; 0039 bool m_pressed{false}; 0040 bool m_hovered{false}; 0041 bool m_vertResizeOnly; 0042 }; 0043 0044 class ResizableTextEdit : public QTextEdit { 0045 Q_OBJECT 0046 public: 0047 explicit ResizableTextEdit(QWidget*, bool vertResizeOnly = true); 0048 void addSize(QSize); 0049 QSize sizeHint() const override; 0050 QString text() const; 0051 0052 protected: 0053 void resizeEvent(QResizeEvent*) override; 0054 0055 private: 0056 GrabBar* m_grabBar; 0057 QSize m_size; 0058 bool m_vertResizeOnly; 0059 }; 0060 0061 #endif