aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.h
blob: e11d81a9f236177ad74d05f2bc1a128a377df93a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Copyright (C) 2020 Leander Schulten <Leander.Schulten@rwth-aachen.de>
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include <coreplugin/dialogs/ioptionspage.h>

#include <QApplication>
#include <QRegularExpression>
#include <QWidget>

QT_BEGIN_NAMESPACE
class QCheckBox;
class QGroupBox;
class QLineEdit;
class QListWidget;
class QListWidgetItem;
class QPushButton;
class QRadioButton;
QT_END_NAMESPACE

namespace CppEditor { class CppQuickFixSettings; }

namespace CppEditor::Internal {

class LineCountSpinBox;

class CppQuickFixSettingsWidget : public Core::IOptionsPageWidget
{
    Q_OBJECT

    enum CustomDataRoles {
        Types = Qt::UserRole,
        Comparison,
        Assignment,
        ReturnExpression,
        ReturnType,
    };

public:
    CppQuickFixSettingsWidget();

    void loadSettings(CppQuickFixSettings *settings);
    void saveSettings(CppQuickFixSettings *settings);

signals:
    void settingsChanged();

private:
    void apply() final;
    void currentCustomItemChanged(QListWidgetItem *newItem, QListWidgetItem *oldItem);

    bool m_isLoadingSettings = false;
    const QRegularExpression m_typeSplitter;

    LineCountSpinBox *m_lines_getterOutsideClass;
    LineCountSpinBox *m_lines_getterInCppFile;
    LineCountSpinBox *m_lines_setterOutsideClass;
    LineCountSpinBox *m_lines_setterInCppFile;
    QLineEdit *m_lineEdit_setterParameter;
    QCheckBox *m_checkBox_setterSlots;
    QCheckBox *m_checkBox_signalWithNewValue;
    QLineEdit *m_lineEdit_getterName;
    QLineEdit *m_lineEdit_resetName;
    QLineEdit *m_lineEdit_getterAttribute;
    QLineEdit *m_lineEdit_setterName;
    QLineEdit *m_lineEdit_signalName;
    QLineEdit *m_lineEdit_memberVariableName;
    QRadioButton *m_radioButton_generateMissingNamespace;
    QRadioButton *m_radioButton_addUsingnamespace;
    QRadioButton *m_radioButton_rewriteTypes;
    QCheckBox *m_useAutoCheckBox;
    QGroupBox *m_groupBox_customTemplate;
    QLineEdit *m_lineEdit_customTemplateTypes;
    QLineEdit *m_lineEdit_customTemplateComparison;
    QLineEdit *m_lineEdit_customTemplateAssignment;
    QLineEdit *m_lineEdit_customTemplateReturnExpression;
    QLineEdit *m_lineEdit_customTemplateReturnType;
    QListWidget *m_listWidget_customTemplates;
    QPushButton *m_pushButton_removeCustomTemplate;
    QListWidget *m_valueTypes;
    QCheckBox *m_returnByConstRefCheckBox;
};

} // CppEditor::Internal