File indexing completed on 2024-04-28 04:55:40

0001 /*
0002     This file is part of Choqok, the KDE micro-blogging client
0003 
0004     SPDX-FileCopyrightText: 2008-2012 Mehrdad Momeny <mehrdad.momeny@gmail.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 */
0008 
0009 #ifndef CHOQOKTEXTEDIT_H
0010 #define CHOQOKTEXTEDIT_H
0011 
0012 #include <KTextEdit>
0013 
0014 #include "choqok_export.h"
0015 
0016 class QLabel;
0017 
0018 namespace Choqok
0019 {
0020 namespace UI
0021 {
0022 /**
0023 
0024 @author Mehrdad Momeny \<mehrdad.momeny@gmail.com\>
0025 */
0026 class CHOQOK_EXPORT TextEdit : public KTextEdit
0027 {
0028     Q_OBJECT
0029 public:
0030     /**
0031     \brief Constructor
0032     @param charLimit Character limit for current account. 0 means no limit
0033     */
0034     explicit TextEdit(uint charLimit = 0, QWidget *parent = nullptr);
0035     virtual ~TextEdit();
0036     void clear();
0037     void setCharLimit(uint charLimit = 0);
0038     void setPlainText(const QString &text);
0039     void setText(const QString &text);
0040     void prependText(const QString &text);
0041     void appendText(const QString &text);
0042 
0043 protected:
0044     virtual void keyPressEvent(QKeyEvent *) override;
0045     virtual void insertFromMimeData(const QMimeData *source) override;
0046     virtual QSize minimumSizeHint() const override;
0047 
0048 Q_SIGNALS:
0049     void returnPressed(const QString &txt);
0050 //     void charsRemain( int count );
0051     void cleared();
0052 
0053 protected Q_SLOTS:
0054     virtual void updateRemainingCharsCount();
0055     void settingsChanged();
0056     void slotChangeSpellerLanguage();
0057     void setupSpeller();
0058     void slotAboutToShowContextMenu(QMenu *menu);
0059     void shortenUrls();
0060 
0061 protected:
0062     uint charLimit();
0063     QChar firstChar();
0064     void setFirstChar(const QChar &firstChar);
0065     void undoableClear();
0066     QLabel *lblRemainChar;
0067 
0068 private:
0069     class Private;
0070     Private *const d;
0071 };
0072 }
0073 }
0074 #endif // CHOQOKTEXTEDIT_H