summaryrefslogtreecommitdiffstats
path: root/quanta/dialogs/dtepeditdlg.h
blob: 45bd3d6de45400006c9e0d6bb05868f0ec063908 (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
86
87
88
89
/***************************************************************************
                          dtepeditdlg.h  -  description
                             -------------------
    begin                : Tue Feb 1 11:07:24 2005
    copyright            : (C) 2005 Andras Mantia <amantia@kde.org>
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; version 2 of the License.               *
 *                                                                         *
 ***************************************************************************/

#ifndef DTEPEDITDLG_H
#define DTEPEDITDLG_H

//qt includes
#include <qvaluelist.h>

//own includes
#include "dtepeditdlgs.h"

/**
@author Andras Mantia
*/

class KConfig;
class DTEPStructureEditDlgS;

struct StructGroup {
  QString name;   ///<the name of the group
  QString noName; ///<the text when there are no elements in the group
  QString icon;   ///<the icon of the group
  QString tag;
  bool hasFileName;
  QString fileNameRx;
  bool appendToTags;
  QString parentGroup;
  QString definitionRx;
  bool definitionRxMinimal;
  QString usageRx;
  QString typeRx;
  QString tagType;
  bool parseFile;
  QString completeAfterRx;
  QString removeRx;
  bool simpleGroup;
  bool variableGroup;
  bool functionGroup;
  bool classGroup;
  bool objectGroup;
};

class DTEPEditDlg : public DTEPEditDlgS
{
  Q_OBJECT
  public:
    DTEPEditDlg(const QString& descriptionFile, QWidget *parent = 0, const char *name = 0);
    ~DTEPEditDlg();
    void saveResult();
    void slotFamilyChanged(int family);
    void slotEditStructGroup();
    void slotAddStructGroup();
    void slotDeleteStructGroup();
    
  private:  
    void init();
    void readGeneral();
    void readPages();
    void readParserRules();
    void readStructures();
    StructGroup readFromStructDlg(DTEPStructureEditDlgS *structDlg);
    
    void writeGeneral(KConfig *config);
    void writePages(KConfig *config);
    void writeParserRules(KConfig *config);
    void writeStructures(KConfig *config);
    void writeEntry(KConfig *config, const QString &key, const QString &value);
    
  QString m_descriptionFile;
  KConfig *m_config;
  int m_family;
  QWidget *m_pagesWidget;
  QValueList<StructGroup> m_structGroups;
};

#endif