File indexing completed on 2026-07-19 08:32:55
0001 /* 0002 SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "textautocorrectionwidgets_export.h" 0010 #include <QWidget> 0011 #include <TextAutoCorrectionCore/AutoCorrection> 0012 0013 class QTreeWidgetItem; 0014 0015 namespace Ui 0016 { 0017 class AutoCorrectionWidget; 0018 } 0019 0020 namespace TextAutoCorrectionWidgets 0021 { 0022 class AutoCorrectionWidgetPrivate; 0023 /** 0024 * @brief The AutoCorrectionWidget class 0025 * @author Laurent Montel <montel@kde.org> 0026 */ 0027 class TEXTAUTOCORRECTIONWIDGETS_EXPORT AutoCorrectionWidget : public QWidget 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 enum ImportFileType { 0033 LibreOffice, 0034 KMail, 0035 }; 0036 0037 explicit AutoCorrectionWidget(QWidget *parent = nullptr); 0038 ~AutoCorrectionWidget() override; 0039 void setAutoCorrection(TextAutoCorrectionCore::AutoCorrection *autoCorrect); 0040 void setHasHtmlSupport(bool b); 0041 void loadConfig(); 0042 void writeConfig(); 0043 void resetToDefault(); 0044 0045 Q_SIGNALS: 0046 void changed(); 0047 0048 private: 0049 /* tab 2 */ 0050 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void enableSingleQuotes(bool state); 0051 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void enableDoubleQuotes(bool state); 0052 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void selectSingleQuoteCharOpen(); 0053 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void selectSingleQuoteCharClose(); 0054 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void setDefaultSingleQuotes(); 0055 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void selectDoubleQuoteCharOpen(); 0056 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void selectDoubleQuoteCharClose(); 0057 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void setDefaultDoubleQuotes(); 0058 0059 /* tab 3 */ 0060 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void enableAdvAutocorrection(bool state); 0061 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void addAutocorrectEntry(); 0062 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void removeAutocorrectEntry(); 0063 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void setFindReplaceText(QTreeWidgetItem *, int); 0064 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void enableAddRemoveButton(); 0065 0066 /* tab 4 */ 0067 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void abbreviationChanged(const QString &text); 0068 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void twoUpperLetterChanged(const QString &text); 0069 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void addAbbreviationEntry(); 0070 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void removeAbbreviationEntry(); 0071 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void addTwoUpperLetterEntry(); 0072 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void removeTwoUpperLetterEntry(); 0073 0074 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void slotEnableDisableAbreviationList(); 0075 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void slotEnableDisableTwoUpperEntry(); 0076 0077 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void slotImportAutoCorrection(QAction *act); 0078 0079 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void changeLanguage(int); 0080 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void updateAddRemoveButton(); 0081 0082 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void slotExportAutoCorrection(); 0083 0084 private: 0085 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void slotChangeComboboxState(int index); 0086 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void emitChanged(); 0087 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void addAutoCorrectEntries(); 0088 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void loadAutoCorrectionAndException(); 0089 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void loadGlobalAutoCorrectionAndException(); 0090 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void setLanguage(const QString &lang); 0091 TEXTAUTOCORRECTIONWIDGETS_NO_EXPORT void updateHtmlSupport(); 0092 0093 std::unique_ptr<AutoCorrectionWidgetPrivate> const d; 0094 }; 0095 }