1 /*
2 	Author: Marco Costalba (C) 2005-2007
3 
4 	Copyright: See COPYING file that comes with this distribution
5 
6 */
7 #ifndef SETTINGSIMPL_H
8 #define SETTINGSIMPL_H
9 
10 #include "ui_settings.h"
11 
12 class QVariant;
13 class Git;
14 
15 class SettingsImpl: public QDialog, public Ui_settingsBase {
16 Q_OBJECT
17 public:
18 	SettingsImpl(QWidget* parent, Git* git, int defTab = 0);
19 
20 signals:
21 	void typeWriterFontChanged();
22 	void flagChanged(uint);
23 
24 protected slots:
25 	void checkBoxNumbers_toggled(bool b);
26 	void checkBoxSign_toggled(bool b);
27 	void checkBoxRangeSelectDialog_toggled(bool b);
28 	void checkBoxReopenLastRepo_toggled(bool b);
29 	void checkBoxOpenInEditor_toggled(bool b);
30 	void checkBoxRelativeDate_toggled(bool b);
31 	void checkBoxLogDiffTab_toggled(bool b);
32 	void checkBoxSmartLabels_toggled(bool b);
33 	void checkBoxMsgOnNewSHA_toggled(bool b);
34 	void checkBoxDiffCache_toggled(bool b);
35 	void checkBoxCommitSign_toggled(bool b);
36 	void checkBoxCommitVerify_toggled(bool b);
37 	void checkBoxCommitUseDefMsg_toggled(bool b);
38 	void lineEditExternalDiffViewer_textChanged(const QString& s);
39 	void lineEditExternalEditor_textChanged(const QString& s);
40 	void lineEditApplyPatchExtraOptions_textChanged(const QString& s);
41 	void lineEditFormatPatchExtraOptions_textChanged(const QString& s);
42 	void lineEditExcludeFile_textChanged(const QString& s);
43 	void lineEditExcludePerDir_textChanged(const QString& s);
44 	void lineEditTemplate_textChanged(const QString& s);
45 	void lineEditCommitExtraOptions_textChanged(const QString& s);
46 	void comboBoxCodecs_activated(int i);
47 	void comboBoxUserSrc_activated(int i);
48 	void comboBoxGitConfigSource_activated(int i);
49 	void treeWidgetGitConfig_itemChanged(QTreeWidgetItem*, int);
50 	void pushButtonExtDiff_clicked();
51 	void pushButtonExtEditor_clicked();
52 	void pushButtonFont_clicked();
53 
54 private:
55 	void writeSetting(const QString& key, const QVariant& value);
56 	void addConfigOption(QTreeWidgetItem* parent, QStringList paths, const QString& value);
57 	void setupCodecList(QStringList& list);
58 	void setupCodecsCombo();
59 	void readGitConfig(const QString& source);
60 	void userInfo();
61 	void changeFlag(uint f, bool b);
62 
63 	Git* git;
64 	QStringList _uInfo;
65 	bool populatingGitConfig;
66 };
67 
68 #endif
69