Редакция 215 | Редакция 219 | К новейшей редакции | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 215 | Редакция 217 | ||
---|---|---|---|
1 | #ifndef MAINWINDOW_H
|
1 | #ifndef MAINWINDOW_H
|
2 | #define MAINWINDOW_H
|
2 | #define MAINWINDOW_H
|
3 | 3 | ||
4 | 4 | ||
5 | //#include "mysql.h"
|
5 | //#include "mysql.h"
|
6 | 6 | ||
7 | #include "mymodel.h"
|
7 | #include "mymodel.h"
|
8 | #include "settingform.h"
|
8 | #include "settingform.h"
|
9 | #include "delegate.h"
|
9 | #include "delegate.h"
|
10 | // #include "fileform.h"
|
10 | // #include "fileform.h"
|
11 | #include "treedelegateform.h"
|
11 | #include "treedelegateform.h"
|
12 | 12 | ||
13 | #include <QMainWindow>
|
13 | #include <QMainWindow>
|
14 | #include <QStandardItemModel>
|
14 | #include <QStandardItemModel>
|
15 | #include <QStandardItem>
|
15 | #include <QStandardItem>
|
16 | #include <QTreeWidgetItem>
|
16 | #include <QTreeWidgetItem>
|
17 | #include <QTextCodec>
|
17 | #include <QTextCodec>
|
18 | #include <QSqlDatabase>
|
18 | #include <QSqlDatabase>
|
19 | 19 | ||
20 | #include <QtGui>
|
20 | #include <QtGui>
|
21 | #include <QString>
|
21 | #include <QString>
|
22 | #include <QtSql>
|
22 | #include <QtSql>
|
23 | #include <QFont>
|
23 | #include <QFont>
|
24 | #include <QColor>
|
24 | #include <QColor>
|
25 | #include <QItemDelegate>
|
25 | #include <QItemDelegate>
|
26 | #include <QList>
|
26 | #include <QList>
|
27 | 27 | ||
28 | 28 | ||
29 | /*
|
29 | /*
|
30 | #include <QSqlField>
|
30 | #include <QSqlField>
|
31 | #include <QSqlRecord>
|
31 | #include <QSqlRecord>
|
32 | #include <QSqlTableModel>
|
32 | #include <QSqlTableModel>
|
33 | #include <QSqlQueryModel>
|
33 | #include <QSqlQueryModel>
|
34 | #include <QTableView>
|
34 | #include <QTableView>
|
35 | #include <QSqlDriverPlugin>
|
35 | #include <QSqlDriverPlugin>
|
36 | #include <QIcon>
|
36 | #include <QIcon>
|
37 | #include <QVariant>
|
37 | #include <QVariant>
|
38 | #include <QProcess>
|
38 | #include <QProcess>
|
39 | #include <QByteArray>
|
39 | #include <QByteArray>
|
40 | */
|
40 | */
|
41 | 41 | ||
42 | typedef struct Class { |
42 | typedef struct Class { |
43 | QString name;
|
43 | QString name;
|
44 | QString ID;
|
44 | QString ID;
|
45 | 45 | ||
46 | } TClass; |
46 | } TClass; |
47 | 47 | ||
48 | 48 | ||
49 | 49 | ||
50 | 50 | ||
51 | namespace Ui { |
51 | namespace Ui { |
52 | class MainWindow; |
52 | class MainWindow; |
53 | }
|
53 | }
|
54 | 54 | ||
55 | class MainWindow : public QMainWindow { |
55 | class MainWindow : public QMainWindow { |
56 | Q_OBJECT |
56 | Q_OBJECT |
57 | public: |
57 | public: |
58 | MainWindow(QWidget *parent = 0); |
58 | MainWindow(QWidget *parent = 0); |
59 | ~MainWindow(); |
59 | ~MainWindow(); |
60 | 60 | ||
61 | protected: |
61 | protected: |
62 | void changeEvent(QEvent *e); |
62 | void changeEvent(QEvent *e); |
63 | 63 | ||
64 | private: |
64 | private: |
65 | Ui::MainWindow *ui; |
65 | Ui::MainWindow *ui; |
66 | //FileForm fileForm;
|
66 | //FileForm fileForm;
|
67 | TreeDelegateForm treeForm;
|
67 | TreeDelegateForm treeForm;
|
68 | 68 | ||
69 | settingForm setFrm;
|
69 | settingForm setFrm;
|
70 | //ïåðåìåííûå äëÿ ñîåäèíåíèÿ ñ áàçîé
|
70 | //ïåðåìåííûå äëÿ ñîåäèíåíèÿ ñ áàçîé
|
71 | QString baseName;
|
71 | QString baseName;
|
72 | QString hostName;
|
72 | QString hostName;
|
73 | QString userName;
|
73 | QString userName;
|
74 | QString password;
|
74 | QString password;
|
75 | QString tableName;
|
75 | QString tableName;
|
76 | 76 | ||
77 | void readSettings(); |
77 | void readSettings(); |
78 | void writeSettings(); |
78 | void writeSettings(); |
79 | 79 | ||
80 | 80 | ||
81 | 81 | ||
82 | QList<QTreeWidgetItem *> root_items_list; |
82 | QList<QTreeWidgetItem *> root_items_list; |
83 | QStandardItemModel *model; |
83 | QStandardItemModel *model; |
84 | QStandardItem *item; |
84 | QStandardItem *item; |
85 | QTreeWidgetItem *rootItem1, *rootItem2; |
85 | QTreeWidgetItem *rootItem1, *rootItem2; |
86 | void openBase(); |
86 | void openBase(); |
87 | bool readModel(); |
87 | bool readModel(); |
88 | void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè |
88 | void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè |
89 | QString creatModelString(QTreeWidgetItem* model); |
89 | QString creatModelString(QTreeWidgetItem* model); |
90 | QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ |
90 | QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ |
91 | void addChildsString(QTreeWidgetItem *parentItem, int level); |
91 | void addChildsString(QTreeWidgetItem *parentItem, int level); |
92 | 92 | ||
93 | QSqlDatabase sql;
|
93 | QSqlDatabase sql;
|
94 | bool model_is_build; // ôëàã ãîâîðèò, ïîñòðîåíà ëè ìîäêëü (true) èëè íåò (false) |
94 | bool model_is_build; // ôëàã ãîâîðèò, ïîñòðîåíà ëè ìîäêëü (true) èëè íåò (false) |
95 | 95 | ||
96 | bool openDataBase(); |
96 | bool openDataBase(); |
97 | bool buildPreviewModel(QString modelName, QString rootClassID); |
97 | bool buildPreviewModel(QString modelName, QString rootClassID); |
98 | 98 | ||
99 | bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row); |
99 | bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row); |
100 | 100 | ||
101 | QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID |
101 | QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID |
102 | void addChildsItems(QTreeWidgetItem *perent_class_item, int row); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì |
102 | void addChildsItems(QTreeWidgetItem *perent_class_item, int row); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì |
103 | QStringList classChields(QString class_id); |
103 | QStringList classChields(QString class_id); |
104 | QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ |
104 | QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ |
105 | QMap <QString, QString> getFieldsList(QString class_id); // ïîëó÷àåì ñïèñîê ïîëåé êëàññà |
105 | QMap <QString, QString> getFieldsList(QString class_id); // ïîëó÷àåì ñïèñîê ïîëåé êëàññà |
106 | void initComboBox(); |
106 | void initComboBox(); |
107 | QList<QTreeWidgetItem *> rootItems; // ñïèñîê óêàçàòåëåé êîðíåâûõ óçëîâ (ìîäåëåé) |
107 | QList<QTreeWidgetItem *> rootItems; // ñïèñîê óêàçàòåëåé êîðíåâûõ óçëîâ (ìîäåëåé) |
108 | 108 | ||
109 | /////// QSqlTableModel * sql_mogel;
|
109 | /////// QSqlTableModel * sql_mogel;
|
110 | 110 | ||
111 | MyModel * sql_mogel; |
111 | MyModel * sql_mogel; |
112 | MyModel * filtr_model; |
112 | MyModel * filtr_model; |
113 | QSqlTableModel * model_for_ListModelsTable; |
113 | QSqlTableModel * model_for_ListModelsTable; |
114 | 114 | ||
115 | void initListModelsTablle(); |
115 | void initListModelsTablle(); |
116 | void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé |
116 | void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé |
117 | 117 | ||
118 | int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ |
118 | int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ |
119 | QString parentObject_id;
|
119 | QString parentObject_id;
|
120 | 120 | ||
121 | 121 | ||
122 | QMap <QString, QString> class_list_map; |
122 | QMap <QString, QString> class_list_map; |
123 | QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé |
123 | QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé |
124 | void getDatabaseData(); |
124 | void getDatabaseData(); |
125 | void buildTree(QTreeWidgetItem * model_item); |
125 | void buildTree(QTreeWidgetItem * model_item); |
126 | QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
126 | QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
127 | void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
127 | void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
128 | void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
128 | void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
129 | void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà |
129 | void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà |
130 | QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà |
130 | QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà |
131 | 131 | ||
132 | QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé |
132 | QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé |
133 | // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
|
133 | // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
|
134 | 134 | ||
135 | 135 | ||
136 | QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ |
136 | QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ |
137 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
137 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
138 | 138 | ||
139 | 139 | ||
140 | QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
140 | QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
141 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
141 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
142 | 142 | ||
143 | 143 | ||
144 | QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà" |
144 | QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà" |
145 | 145 | ||
146 | 146 | ||
147 | 147 | ||
148 | QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool" |
148 | QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool" |
149 | 149 | ||
150 | 150 | ||
151 | QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû" |
151 | QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû" |
152 | 152 | ||
153 | 153 | ||
154 | 154 | ||
155 | int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè |
155 | int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè |
156 | 156 | ||
157 | SpinBoxDelegate spinDelegate;
|
157 | SpinBoxDelegate spinDelegate;
|
158 | QItemDelegate standart_delegate;
|
158 | QItemDelegate standart_delegate;
|
159 | CPictureDelegate * picture_delegate; |
159 | CPictureDelegate * picture_delegate; |
160 | IconDelegate * iconDelegate; |
160 | IconDelegate * iconDelegate; |
161 | FileDelegate * fileDelegate; |
161 | FileDelegate * fileDelegate; |
162 | bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ |
162 | bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ |
163 | QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL" |
163 | QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL" |
164 | 164 | ||
165 | QMap <QString, QPixmap> classesIcons; |
165 | QMap <QString, QPixmap> classesIcons; |
166 | 166 | ||
167 | 167 | ||
168 | 168 | ||
169 | 169 | ||
170 | 170 | ||
171 | private slots: |
171 | private slots: |
172 | void on_comboBox_currentIndexChanged( int index ); |
172 | void on_comboBox_currentIndexChanged( int index ); |
173 | void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ); |
173 | void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ); |
174 | void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ); |
174 | void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ); |
175 | void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column ); |
175 | void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column ); |
176 | void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò" |
176 | void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò" |
177 | void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû" |
177 | void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû" |
178 | void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" |
178 | void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" |
179 | void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" |
179 | void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" |
180 | void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü " |
180 | void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü " |
181 | void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü " |
181 | void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü " |
182 | void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé) |
182 | void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé) |
183 | void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé) |
183 | void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé) |
184 | void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ìîäåëåé) |
184 | void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ) |
- | 185 | void on_pushButton_10_clicked();// íàæàòèå êíîïêè "Óäàëèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ) |
|
- | 186 | void on_pushButton_11_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ôèëüòðîâ) |
|
- | 187 | void on_pushButton_12_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" (íà âêëàäêå ôèëüòðîâ) |
|
- | 188 | ||
185 | void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
189 | void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
186 | void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
190 | void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
187 | void applySetting(); |
191 | void applySetting(); |
188 | void getSetting(); // îòêðîåì îêíî íàñòðîåê |
192 | void getSetting(); // îòêðîåì îêíî íàñòðîåê |
189 | }; |
193 | }; |
190 | 194 | ||
191 | 195 | ||
192 | 196 | ||
193 | 197 | ||
194 | #endif // MAINWINDOW_H
|
198 | #endif // MAINWINDOW_H
|
195 | 199 |