Хранилища Subversion OpenInventory

Редакция

Редакция 217 | Редакция 221 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 217 Редакция 219
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
-
 
114
    QSqlTableModel * filtr_model;
-
 
115
113
    QSqlTableModel * model_for_ListModelsTable;
116
    QSqlTableModel * model_for_ListModelsTable;
114
117
115
    void initListModelsTablle();
118
    void initListModelsTablle();
116
    void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé
119
    void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé
117
120
118
    int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ
121
    int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ
119
    QString parentObject_id;
122
    QString parentObject_id;
120
123
121
124
122
    QMap <QString, QString> class_list_map;
125
    QMap <QString, QString> class_list_map;
123
    QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé
126
    QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé
124
    void getDatabaseData();
127
    void getDatabaseData();
125
    void buildTree(QTreeWidgetItem * model_item);
128
    void buildTree(QTreeWidgetItem * model_item);
126
    QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
129
    QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
127
    void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
130
    void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
128
    void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
131
    void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
129
    void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà
132
    void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà
130
    QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà
133
    QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà
131
134
132
    QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé
135
    QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé
133
                                                                // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
136
                                                                // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
134
137
135
138
136
    QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ
139
    QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ
137
                                                // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
140
                                                // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
138
141
139
142
140
    QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ
143
    QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ
141
    // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
144
    // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
142
145
143
146
144
    QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà"
147
    QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà"
145
148
146
149
147
150
148
    QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool"
151
    QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool"
149
152
150
153
151
    QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû"
154
    QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû"
152
155
153
156
154
157
155
    int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè
158
    int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè
156
159
157
    SpinBoxDelegate spinDelegate;
160
    SpinBoxDelegate spinDelegate;
158
    QItemDelegate standart_delegate;
161
    QItemDelegate standart_delegate;
159
    CPictureDelegate * picture_delegate;
162
    CPictureDelegate * picture_delegate;
160
    IconDelegate * iconDelegate;
163
    IconDelegate * iconDelegate;
-
 
164
    FileDelegate * fileDelegate; // äåëåãàò äëÿ òàáëèöû ñ ôèëüòðàìè, áóäêò îòîáðàæàòü ñïèñîê ïîëåé êëàññà
161
    FileDelegate * fileDelegate;
165
    FilterSpinBoxDelegate filterSpinDelegate;
-
 
166
    FilterConditionDelegate filterConditionDelegate, filterConditionDelegate_1, filterConditionDelegate_2;
162
    bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ
167
    bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ
163
    QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL"
168
    QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL"
164
169
165
    QMap <QString, QPixmap> classesIcons;
170
    QMap <QString, QPixmap> classesIcons;
166
171
167
172
168
173
169
174
170
175
171
private slots:
176
private slots:
172
    void on_comboBox_currentIndexChanged( int index );
177
    void on_comboBox_currentIndexChanged( int index );
173
    void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column );
178
    void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column );
174
    void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column );
179
    void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column );
175
    void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column );
180
    void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column );
176
    void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò"
181
    void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò"
177
    void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû"
182
    void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû"
178
    void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü"
183
    void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü"
179
    void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ"
184
    void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ"
180
    void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü "
185
    void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü "
181
    void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü "
186
    void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü "
182
    void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé)
187
    void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé)
183
    void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé)
188
    void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé)
184
    void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
189
    void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
185
    void on_pushButton_10_clicked();// íàæàòèå êíîïêè "Óäàëèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
190
    void on_pushButton_10_clicked();// íàæàòèå êíîïêè "Óäàëèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
186
    void on_pushButton_11_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ôèëüòðîâ)
191
    void on_pushButton_11_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ôèëüòðîâ)
187
    void on_pushButton_12_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" (íà âêëàäêå ôèëüòðîâ)
192
    void on_pushButton_12_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" (íà âêëàäêå ôèëüòðîâ)
188
193
189
    void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
194
    void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
190
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
195
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
191
    void applySetting();
196
    void applySetting();
192
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
197
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
193
};
198
};
194
199
195
200
196
201
197
202
198
#endif // MAINWINDOW_H
203
#endif // MAINWINDOW_H
199
 
204