File indexing completed on 2024-05-26 04:47:04
0001 /* 0002 0003 SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "texttranslator_export.h" 0011 #include <QPlainTextEdit> 0012 namespace TextTranslator 0013 { 0014 /** 0015 * @brief The TranslatorTextEdit class 0016 * @author Laurent Montel <montel@kde.org> 0017 */ 0018 class TEXTTRANSLATOR_EXPORT TranslatorTextEdit : public QPlainTextEdit 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit TranslatorTextEdit(QWidget *parent = nullptr); 0023 0024 Q_SIGNALS: 0025 void translateText(); 0026 0027 protected: 0028 void dropEvent(QDropEvent *) override; 0029 }; 0030 0031 /** 0032 * @brief The TranslatorWidget class 0033 * @author Laurent Montel <montel@kde.org> 0034 */ 0035 class TEXTTRANSLATOR_EXPORT TranslatorWidget : public QWidget 0036 { 0037 Q_OBJECT 0038 public: 0039 explicit TranslatorWidget(QWidget *parent = nullptr); 0040 explicit TranslatorWidget(const QString &text, QWidget *parent = nullptr); 0041 ~TranslatorWidget() override; 0042 0043 void setTextToTranslate(const QString &); 0044 void writeConfig(); 0045 void readConfig(); 0046 void setStandalone(bool b); 0047 0048 public Q_SLOTS: 0049 void slotTranslate(); 0050 void slotCloseWidget(); 0051 0052 private: 0053 TEXTTRANSLATOR_NO_EXPORT void slotFromLanguageChanged(int, bool initialize = false); 0054 TEXTTRANSLATOR_NO_EXPORT void slotTextChanged(); 0055 TEXTTRANSLATOR_NO_EXPORT void slotInvertLanguage(); 0056 TEXTTRANSLATOR_NO_EXPORT void slotClear(); 0057 TEXTTRANSLATOR_NO_EXPORT void slotTranslateDone(); 0058 TEXTTRANSLATOR_NO_EXPORT void slotTranslateFailed(const QString &message); 0059 TEXTTRANSLATOR_NO_EXPORT void slotDebug(); 0060 TEXTTRANSLATOR_NO_EXPORT void slotConfigChanged(); 0061 0062 protected: 0063 bool event(QEvent *e) override; 0064 0065 Q_SIGNALS: 0066 void toolsWasClosed(); 0067 0068 private: 0069 TEXTTRANSLATOR_NO_EXPORT void init(); 0070 TEXTTRANSLATOR_NO_EXPORT void initLanguage(); 0071 TEXTTRANSLATOR_NO_EXPORT void switchEngine(); 0072 TEXTTRANSLATOR_NO_EXPORT void loadEngineSettings(); 0073 TEXTTRANSLATOR_NO_EXPORT void updatePlaceHolder(); 0074 class TranslatorWidgetPrivate; 0075 std::unique_ptr<TranslatorWidgetPrivate> const d; 0076 }; 0077 }