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 }