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