1 /* 2 * KDiff3 - Text Diff And Merge Tool 3 * 4 * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de 5 * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com 6 * SPDX-License-Identifier: GPL-2.0-or-later 7 */ 8 9 #ifndef OPTION_DIALOG_H 10 #define OPTION_DIALOG_H 11 12 #include "options.h" 13 14 #include <QSharedPointer> // for QSharedPointer 15 #include <QStringList> 16 #include <QGroupBox> 17 18 #include <KPageDialog> 19 #include <KSharedConfig> 20 21 22 class QLabel; 23 class QPlainTextEdit; 24 25 class OptionItemBase; 26 class OptionCheckBox; 27 class OptionEncodingComboBox; 28 class OptionLineEdit; 29 30 class OptionDialog : public KPageDialog 31 { 32 Q_OBJECT 33 34 public: 35 36 explicit OptionDialog( bool bShowDirMergeSettings, QWidget *parent = nullptr ); 37 ~OptionDialog() override; 38 const QString parseOptions( const QStringList& optionList ); 39 QString calcOptionHelp(); 40 41 void saveOptions(KSharedConfigPtr config); 42 void readOptions(KSharedConfigPtr config); 43 44 void setState(); // Must be called before calling exec(); 45 46 void addOptionItem(OptionItemBase*); 47 getOptions()48 QSharedPointer<Options> getOptions() { return m_options; } 49 50 static const QString s_historyEntryStartRegExpToolTip; 51 static const QString s_historyEntryStartSortKeyOrderToolTip; 52 static const QString s_autoMergeRegExpToolTip; 53 static const QString s_historyStartRegExpToolTip; 54 55 protected Q_SLOTS: 56 virtual void slotDefault(); 57 virtual void slotOk(); 58 virtual void slotApply(); 59 //virtual void buttonClicked( QAbstractButton* ); 60 virtual void helpRequested(); 61 62 void slotEncodingChanged(); 63 void slotHistoryMergeRegExpTester(); 64 Q_SIGNALS: 65 void applyDone(); 66 private: 67 void setupFontPage(); 68 void setupColorPage(); 69 void setupEditPage(); 70 void setupDiffPage(); 71 void setupMergePage(); 72 void setupDirectoryMergePage(); 73 void setupRegionalPage(); 74 void setupIntegrationPage(); 75 void setupOtherOptions(); 76 77 void resetToDefaults(); 78 79 QSharedPointer<Options> m_options=QSharedPointer<Options>::create(); 80 //QDialogButtonBox *mButtonBox; 81 OptionCheckBox* m_pSameEncoding; 82 OptionEncodingComboBox* m_pEncodingAComboBox; 83 OptionCheckBox* m_pAutoDetectUnicodeA; 84 OptionEncodingComboBox* m_pEncodingBComboBox; 85 OptionCheckBox* m_pAutoDetectUnicodeB; 86 OptionEncodingComboBox* m_pEncodingCComboBox; 87 OptionCheckBox* m_pAutoDetectUnicodeC; 88 OptionEncodingComboBox* m_pEncodingOutComboBox; 89 OptionCheckBox* m_pAutoSelectOutEncoding; 90 OptionEncodingComboBox* m_pEncodingPPComboBox; 91 OptionCheckBox* m_pHistoryAutoMerge; 92 OptionLineEdit* m_pAutoMergeRegExpLineEdit; 93 OptionLineEdit* m_pHistoryStartRegExpLineEdit; 94 OptionLineEdit* m_pHistoryEntryStartRegExpLineEdit; 95 OptionCheckBox* m_pHistoryMergeSorting; 96 OptionLineEdit* m_pHistorySortKeyOrderLineEdit; 97 }; 98 99 100 class FontChooser : public QGroupBox 101 { 102 Q_OBJECT 103 QFont m_font; 104 QPushButton* m_pSelectFont; 105 QPlainTextEdit* m_pExampleTextEdit; 106 QLabel* m_pLabel; 107 public: 108 explicit FontChooser( QWidget* pParent ); 109 QFont font(); 110 void setFont( const QFont&, bool ); 111 private Q_SLOTS: 112 void slotSelectFont(); 113 }; 114 115 #endif 116 117 118 119 120 121 122 123