qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
croppinglabel.h
Go to the documentation of this file.
1 /*
2  Copyright © 2014-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include <QLabel>
23 
24 class QLineEdit;
25 
26 class CroppingLabel : public QLabel
27 {
28  Q_OBJECT
29 public:
30  explicit CroppingLabel(QWidget* parent = nullptr);
31 
32 public slots:
33  void editBegin();
34  void setEditable(bool editable);
35  void setElideMode(Qt::TextElideMode elide);
36 
37  QString fullText();
38 
39 public slots:
40  void setText(const QString& text);
41  void setPlaceholderText(const QString& text);
42  void minimizeMaximumWidth();
43 
44 signals:
45  void editFinished(const QString& newText);
46  void editRemoved();
47  void clicked();
48 
49 protected:
50  void paintEvent(QPaintEvent* paintEvent) override;
51  void setElidedText();
52  void hideTextEdit();
53  void showTextEdit();
54  void resizeEvent(QResizeEvent* ev) final;
55  QSize sizeHint() const final;
56  QSize minimumSizeHint() const final;
57  void mouseReleaseEvent(QMouseEvent* e) final;
58 
59 private slots:
60  void editingFinished();
61 
62 private:
63  QString origText;
64  QLineEdit* textEdit;
66  bool editable;
67  Qt::TextElideMode elideMode;
68 };
CroppingLabel::resizeEvent
void resizeEvent(QResizeEvent *ev) final
Definition: croppinglabel.cpp:93
CroppingLabel::mouseReleaseEvent
void mouseReleaseEvent(QMouseEvent *e) final
Definition: croppinglabel.cpp:115
CroppingLabel::setElidedText
void setElidedText()
Definition: croppinglabel.cpp:134
CroppingLabel::editFinished
void editFinished(const QString &newText)
CroppingLabel
Definition: croppinglabel.h:26
CroppingLabel::editable
bool editable
Definition: croppinglabel.h:66
CroppingLabel::CroppingLabel
CroppingLabel(QWidget *parent=nullptr)
Definition: croppinglabel.cpp:26
CroppingLabel::setText
void setText(const QString &text)
Definition: croppinglabel.cpp:81
CroppingLabel::editingFinished
void editingFinished()
Definition: croppinglabel.cpp:184
CroppingLabel::showTextEdit
void showTextEdit()
Definition: croppinglabel.cpp:155
CroppingLabel::origText
QString origText
Definition: croppinglabel.h:63
CroppingLabel::blockPaintEvents
bool blockPaintEvents
Definition: croppinglabel.h:65
CroppingLabel::minimumSizeHint
QSize minimumSizeHint() const final
Definition: croppinglabel.cpp:106
CroppingLabel::sizeHint
QSize sizeHint() const final
Definition: croppinglabel.cpp:101
CroppingLabel::editBegin
void editBegin()
Definition: croppinglabel.cpp:60
CroppingLabel::setEditable
void setEditable(bool editable)
Definition: croppinglabel.cpp:66
CroppingLabel::setElideMode
void setElideMode(Qt::TextElideMode elide)
Definition: croppinglabel.cpp:76
CroppingLabel::hideTextEdit
void hideTextEdit()
Definition: croppinglabel.cpp:149
CroppingLabel::minimizeMaximumWidth
void minimizeMaximumWidth()
Definition: croppinglabel.cpp:173
CroppingLabel::editRemoved
void editRemoved()
CroppingLabel::textEdit
QLineEdit * textEdit
Definition: croppinglabel.h:64
CroppingLabel::fullText
QString fullText()
Get original full text.
Definition: croppinglabel.cpp:168
CroppingLabel::paintEvent
void paintEvent(QPaintEvent *paintEvent) override
Definition: croppinglabel.cpp:125
CroppingLabel::elideMode
Qt::TextElideMode elideMode
Definition: croppinglabel.h:67
CroppingLabel::clicked
void clicked()
CroppingLabel::setPlaceholderText
void setPlaceholderText(const QString &text)
Definition: croppinglabel.cpp:87