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 }