File indexing completed on 2024-12-01 04:37:01

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include "libruqolawidgets_private_export.h"
0009 #include <QLabel>
0010 class LIBRUQOLAWIDGETS_TESTS_EXPORT RoomHeaderLabel : public QLabel
0011 {
0012     Q_OBJECT
0013 public:
0014     explicit RoomHeaderLabel(QWidget *parent = nullptr);
0015     ~RoomHeaderLabel() override;
0016 
0017     void setRoomAnnouncement(const QString &announcement);
0018     void setRoomTopic(const QString &name);
0019 
0020     [[nodiscard]] const QString &fullText() const;
0021 
0022 protected:
0023     void resizeEvent(QResizeEvent *ev) override;
0024 
0025 private:
0026     LIBRUQOLAWIDGETS_NO_EXPORT void slotMoreInfo(const QString &content);
0027     LIBRUQOLAWIDGETS_NO_EXPORT void updateSqueezedText();
0028     LIBRUQOLAWIDGETS_NO_EXPORT void updateHeaderText();
0029     [[nodiscard]] LIBRUQOLAWIDGETS_NO_EXPORT QString rPixelSqueeze(const QString &text, int maxPixels) const;
0030     [[nodiscard]] LIBRUQOLAWIDGETS_NO_EXPORT QSize textSize(const QString &text) const;
0031     QString mFullText;
0032     QString mTopic;
0033     QString mAnnouncement;
0034     bool mExpandTopic = false;
0035 };