Редакция 209 | Редакция 215 | К новейшей редакции | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 209 | Редакция 212 | ||
---|---|---|---|
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); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè |
88 | void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row); // 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 | QSqlTableModel * model_for_ListModelsTable; |
113 | QSqlTableModel * model_for_ListModelsTable; |
113 | 114 | ||
114 | void initListModelsTablle(); |
115 | void initListModelsTablle(); |
115 | void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé |
116 | void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé |
116 | 117 | ||
117 | int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ |
118 | int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ |
118 | QString parentObject_id;
|
119 | QString parentObject_id;
|
119 | 120 | ||
120 | 121 | ||
121 | QMap <QString, QString> class_list_map; |
122 | QMap <QString, QString> class_list_map; |
122 | QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé |
123 | QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé |
123 | void getDatabaseData(); |
124 | void getDatabaseData(); |
124 | void buildTree(QTreeWidgetItem * model_item); |
125 | void buildTree(QTreeWidgetItem * model_item); |
125 | QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
126 | QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
126 | void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
127 | void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
127 | void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
128 | void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà |
128 | void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà |
129 | void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà |
129 | QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà |
130 | QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà |
130 | 131 | ||
131 | QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé |
132 | QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé |
132 | // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
|
133 | // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
|
133 | 134 | ||
134 | 135 | ||
135 | QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ |
136 | QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ |
136 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
137 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
137 | 138 | ||
138 | 139 | ||
139 | QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
140 | QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
140 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
141 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
141 | 142 | ||
142 | 143 | ||
143 | QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà" |
144 | QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà" |
144 | 145 | ||
145 | 146 | ||
146 | 147 | ||
147 | QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool" |
148 | QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool" |
148 | 149 | ||
149 | 150 | ||
150 | QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû" |
151 | QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû" |
151 | 152 | ||
152 | 153 | ||
153 | 154 | ||
154 | int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè |
155 | int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè |
155 | 156 | ||
156 | SpinBoxDelegate spinDelegate;
|
157 | SpinBoxDelegate spinDelegate;
|
157 | QItemDelegate standart_delegate;
|
158 | QItemDelegate standart_delegate;
|
158 | CPictureDelegate * picture_delegate; |
159 | CPictureDelegate * picture_delegate; |
159 | IconDelegate * iconDelegate; |
160 | IconDelegate * iconDelegate; |
160 | FileDelegate * fileDelegate; |
161 | FileDelegate * fileDelegate; |
161 | bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ |
162 | bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ |
162 | QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL" |
163 | QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL" |
163 | 164 | ||
164 | QMap <QString, QPixmap> classesIcons; |
165 | QMap <QString, QPixmap> classesIcons; |
165 | 166 | ||
166 | 167 | ||
167 | 168 | ||
168 | 169 | ||
169 | 170 | ||
170 | private slots: |
171 | private slots: |
171 | void on_comboBox_currentIndexChanged( int index ); |
172 | void on_comboBox_currentIndexChanged( int index ); |
172 | void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ); |
173 | void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ); |
173 | void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ); |
174 | void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ); |
174 | void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column ); |
175 | void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column ); |
175 | void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò" |
176 | void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò" |
176 | void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû" |
177 | void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû" |
177 | void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" |
178 | void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" |
178 | void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" |
179 | void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" |
179 | void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü " |
180 | void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü " |
180 | void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü " |
181 | void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü " |
181 | void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé) |
182 | void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé) |
182 | void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé) |
183 | void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé) |
183 | void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
184 | void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
184 | void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
185 | void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò |
185 | void applySetting(); |
186 | void applySetting(); |
186 | void getSetting(); // îòêðîåì îêíî íàñòðîåê |
187 | void getSetting(); // îòêðîåì îêíî íàñòðîåê |
187 | }; |
188 | }; |
188 | 189 | ||
189 | 190 | ||
190 | 191 | ||
191 | 192 | ||
192 | #endif // MAINWINDOW_H
|
193 | #endif // MAINWINDOW_H
|
193 | 194 |