File indexing completed on 2024-05-05 04:39:00

0001 /*
0002     SPDX-FileCopyrightText: 2008 Cédric Pasteur <cedric.pasteur@free.fr>
0003     SPDX-FileCopyrightText: 2001 Matthias Hölzer-Klüpfel <mhk@caldera.de>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef ASTYLEPREFERENCES_H
0009 #define ASTYLEPREFERENCES_H
0010 
0011 #include <interfaces/isourceformatter.h>
0012 #include "ui_astyle_preferences.h"
0013 
0014 class AStyleFormatter;
0015 
0016 class AStylePreferences : public KDevelop::SettingsWidget, public Ui::AStylePreferences
0017 {
0018         Q_OBJECT
0019 
0020 public:
0021     enum Language { CPP, Java, CSharp, ObjC};
0022 
0023     explicit AStylePreferences(Language lang=CPP, QWidget *parent=nullptr);
0024     ~AStylePreferences() override;
0025 
0026     void load(const KDevelop::SourceFormatterStyle &style) override;
0027     QString save() const override;
0028 
0029 protected:
0030     void init();
0031     void updatePreviewText();
0032     void setItemChecked(int idx, bool checked);
0033     void updateWidgets();
0034 
0035 private Q_SLOTS:
0036     void currentTabChanged();
0037     void indentChanged();
0038     void indentObjectsChanged(QListWidgetItem *item);
0039     void minMaxValuesChanged();
0040     void bracketsChanged();
0041     void blocksChanged();
0042     void paddingChanged();
0043     void onelinersChanged();
0044     void pointerAlignChanged();
0045     void afterParensChanged();
0046 
0047 private:
0048     QScopedPointer<AStyleFormatter> m_formatter;
0049     bool m_enableWidgetSignals;
0050     const Language m_currentLanguage;
0051 };
0052 
0053 #endif // ASTYLEPREFERENCES_H