File indexing completed on 2024-04-28 16:26:18

0001 /*************************************************************************************
0002     begin                : Wed Jun 6 2001
0003     copyright            : (C) 2003 by Jeroen Wijnout (Jeroen.Wijnhout@kdemail.net)
0004                                2007-2016 by Michel Ludwig (michel.ludwig@kdemail.net)
0005  *************************************************************************************/
0006 
0007 /***************************************************************************
0008  *                                                                         *
0009  *   This program is free software; you can redistribute it and/or modify  *
0010  *   it under the terms of the GNU General Public License as published by  *
0011  *   the Free Software Foundation; either version 2 of the License, or     *
0012  *   (at your option) any later version.                                   *
0013  *                                                                         *
0014  ***************************************************************************/
0015 
0016 #ifndef CONFIGURATIONDIALOG_H
0017 #define CONFIGURATIONDIALOG_H
0018 
0019 #include <KConfigDialog>
0020 
0021 #include <KConfigDialogManager>
0022 
0023 #include "widgets/codecompletionconfigwidget.h"     // code completion (dani)
0024 #include "widgets/previewconfigwidget.h"      // QuickPreview (dani)
0025 #include "widgets/environmentconfigwidget.h"          // environments (dani)
0026 #include "widgets/graphicsconfigwidget.h"     // graphics (dani)
0027 #include "widgets/structureviewconfigwidget.h"    // structure view (dani)
0028 #include "widgets/symbolviewconfigwidget.h"
0029 
0030 class KConfig;
0031 
0032 namespace KileWidget {
0033 class ToolConfig;
0034 }
0035 class KileWidgetAppearanceConfig;
0036 class KileWidgetHelpConfig;
0037 class KileWidgetLatexConfig;
0038 class KileWidgetLivePreviewConfig;
0039 class KileWidgetGeneralConfig;
0040 class KileWidgetEnvironmentConfig;
0041 class KileWidgetGraphicsConfig;
0042 class KileWidgetStructureViewConfig;
0043 class KileWidgetScriptingConfig;
0044 class KileWidgetUsermenuConfig;
0045 
0046 namespace KileTool {
0047 class Manager;
0048 }
0049 
0050 namespace KTextEditor {
0051 class ConfigPage;
0052 }
0053 
0054 namespace KileDialog
0055 {
0056 class Config : public KPageDialog
0057 {
0058     Q_OBJECT
0059 
0060 public:
0061     Config( KConfig *config, KileInfo *ki, QWidget* parent = 0);
0062     ~Config();
0063 
0064     virtual void show();
0065 
0066     //Q_SIGNALS:
0067     //  void widgetModified();
0068 
0069 private Q_SLOTS:
0070     void slotAcceptChanges();
0071 
0072 private:
0073     // dialog manager
0074     KConfigDialogManager *m_manager;
0075 
0076     KConfig *m_config;
0077     KConfigGroup m_configDialogSize;
0078     KileInfo *m_ki;
0079 
0080     QList<KPageWidgetItem*> m_pageWidgetItemList;
0081 
0082     bool m_editorSettingsChanged;
0083 
0084     KileWidget::ToolConfig  *toolPage;
0085 
0086     // CodeCompletion (dani)
0087     CodeCompletionConfigWidget *completePage;
0088     KileWidgetPreviewConfig *previewPage;
0089 
0090     KileWidgetHelpConfig *helpPage;
0091     KileWidgetLatexConfig *latexPage;
0092     KileWidgetGeneralConfig *generalPage;
0093     KileWidgetEnvironmentConfig *envPage;
0094     KileWidgetGraphicsConfig *graphicsPage;
0095     KileWidgetStructureViewConfig *structurePage;
0096     KileWidgetSymbolViewConfig *symbolViewPage;
0097     KileWidgetScriptingConfig *scriptingPage;
0098     KileWidgetUsermenuConfig *usermenuPage;
0099     KileWidgetLivePreviewConfig *livePreviewPage;
0100     KileWidgetAppearanceConfig *appearancePage;
0101 
0102     // setup configuration
0103     KPageWidgetItem* addConfigFolder(const QString &section,const QString &icon);
0104 
0105     KPageWidgetItem* addConfigPage(KPageWidgetItem* parent, QWidget *page,
0106                                    const QString &itemName, const QString &pixmapName,
0107                                    const QString &header = QString());
0108 
0109     KPageWidgetItem* addConfigPage(KPageWidgetItem* parent, QWidget *page,
0110                                    const QString &itemName, const QIcon& icon,
0111                                    const QString &header = QString());
0112 
0113     void setupGeneralOptions(KPageWidgetItem* parent);
0114     void setupTools(KPageWidgetItem* parent);
0115     void setupLatex(KPageWidgetItem* parent);
0116     void setupCodeCompletion(KPageWidgetItem* parent);
0117     void setupQuickPreview(KPageWidgetItem* parent);
0118     void setupHelp(KPageWidgetItem* parent);
0119     void setupEditor(KPageWidgetItem* parent);
0120     void setupEnvironment(KPageWidgetItem* parent);
0121     void setupGraphics(KPageWidgetItem* parent);
0122     void setupStructure(KPageWidgetItem* parent);
0123     void setupSymbolView(KPageWidgetItem* parent);
0124     void setupScripting(KPageWidgetItem* parent);
0125     void setupUsermenu(KPageWidgetItem* parent);
0126     void setupLivePreview(KPageWidgetItem* parent);
0127     void setupAppearance(KPageWidgetItem* parent);
0128 
0129     // write configuration
0130     void writeGeneralOptionsConfig();
0131 
0132     // editor pages
0133     QMap<KPageWidgetItem*, KTextEditor::ConfigPage*> m_editorPages;
0134 };
0135 }
0136 #endif