Subversion Repositories OpenInventory

Rev

Rev 222 | Rev 224 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 222 Rev 223
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
#include <QPalette>
27
#include <QPalette>
28
28
29
29
30
30
31
/*
31
/*
32
#include <QSqlField>
32
#include <QSqlField>
33
#include <QSqlRecord>
33
#include <QSqlRecord>
34
#include <QSqlTableModel>
34
#include <QSqlTableModel>
35
#include <QSqlQueryModel>
35
#include <QSqlQueryModel>
36
#include <QTableView>
36
#include <QTableView>
37
#include <QSqlDriverPlugin>
37
#include <QSqlDriverPlugin>
38
#include <QIcon>
38
#include <QIcon>
39
#include <QVariant>
39
#include <QVariant>
40
#include <QProcess>
40
#include <QProcess>
41
#include <QByteArray>
41
#include <QByteArray>
42
*/
42
*/
43
43
44
typedef struct Class {
44
typedef struct Class {
45
        QString name;
45
        QString name;
46
        QString ID;
46
        QString ID;
47
47
48
} TClass;
48
} TClass;
49
49
50
50
51
51
52
52
53
namespace Ui {
53
namespace Ui {
54
    class MainWindow;
54
    class MainWindow;
55
}
55
}
56
56
57
class MainWindow : public QMainWindow {
57
class MainWindow : public QMainWindow {
58
    Q_OBJECT
58
    Q_OBJECT
59
public:
59
public:
60
    MainWindow(QWidget *parent = 0);
60
    MainWindow(QWidget *parent = 0);
61
    ~MainWindow();
61
    ~MainWindow();
62
62
63
protected:
63
protected:
64
    void changeEvent(QEvent *e);
64
    void changeEvent(QEvent *e);
65
65
66
private:
66
private:
67
    Ui::MainWindow *ui;
67
    Ui::MainWindow *ui;
68
    //FileForm fileForm;
68
    //FileForm fileForm;
69
    TreeDelegateForm treeForm;
69
    TreeDelegateForm treeForm;
70
70
71
        settingForm setFrm;
71
        settingForm setFrm;
72
//ïåðåìåííûå äëÿ ñîåäèíåíèÿ ñ áàçîé
72
//ïåðåìåííûå äëÿ ñîåäèíåíèÿ ñ áàçîé
73
        QString baseName;
73
        QString baseName;
74
        QString hostName;
74
        QString hostName;
75
        QString userName;
75
        QString userName;
76
        QString password;
76
        QString password;
77
        QString tableName;
77
        QString tableName;
78
78
79
        void readSettings();
79
        void readSettings();
80
        void writeSettings();
80
        void writeSettings();
81
81
82
82
83
83
84
    QList<QTreeWidgetItem *> root_items_list;
84
    QList<QTreeWidgetItem *> root_items_list;
85
    QStandardItemModel *model;
85
    QStandardItemModel *model;
86
    QStandardItem *item;
86
    QStandardItem *item;
87
    QTreeWidgetItem *rootItem1, *rootItem2;
87
    QTreeWidgetItem *rootItem1, *rootItem2;
88
    void openBase();
88
    void openBase();
89
    bool readModel();
89
    bool readModel();
90
    void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè
90
    void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè
91
    QString creatModelString(QTreeWidgetItem* model);
91
    QString creatModelString(QTreeWidgetItem* model);
92
    QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ
92
    QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ
93
    void addChildsString(QTreeWidgetItem *parentItem, int level);
93
    void addChildsString(QTreeWidgetItem *parentItem, int level);
94
94
95
    QSqlDatabase sql;
95
    QSqlDatabase sql;
96
    bool model_is_build; // ôëàã ãîâîðèò, ïîñòðîåíà ëè ìîäêëü (true) èëè íåò  (false)
96
    bool model_is_build; // ôëàã ãîâîðèò, ïîñòðîåíà ëè ìîäêëü (true) èëè íåò  (false)
97
97
98
    bool openDataBase();
98
    bool openDataBase();
99
    bool buildPreviewModel(QString modelName, QString rootClassID);
99
    bool buildPreviewModel(QString modelName, QString rootClassID);
100
100
101
    bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row);
101
    bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row);
102
102
103
    QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
103
    QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
104
    void addChildsItems(QTreeWidgetItem *perent_class_item, int row); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
104
    void addChildsItems(QTreeWidgetItem *perent_class_item, int row); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
105
    QStringList classChields(QString class_id);
105
    QStringList classChields(QString class_id);
106
    QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ
106
    QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ
107
    QMap <QString, QString> getFieldsList(QString class_id); // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
107
    QMap <QString, QString> getFieldsList(QString class_id); // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
108
    void initComboBox();
108
    void initComboBox();
109
    QList<QTreeWidgetItem *> rootItems; // ñïèñîê óêàçàòåëåé êîðíåâûõ óçëîâ (ìîäåëåé)
109
    QList<QTreeWidgetItem *> rootItems; // ñïèñîê óêàçàòåëåé êîðíåâûõ óçëîâ (ìîäåëåé)
110
110
111
    /////// QSqlTableModel * sql_mogel;
111
    /////// QSqlTableModel * sql_mogel;
112
112
113
    MyModel  * sql_mogel;
113
    MyModel  * sql_mogel;
114
//  MyModel * filtr_model;
114
 ////   MyModel * filter_model;
115
115
116
    QSqlTableModel * filter_model;
116
    QSqlTableModel * filter_model;
117
117
118
    QSqlTableModel * model_for_ListModelsTable;
118
    QSqlTableModel * model_for_ListModelsTable;
119
119
120
    void initListModelsTablle();
120
    void initListModelsTablle();
121
    void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé
121
    void readModels(); // ñ÷èòûâàåì ñïèñîê ìîäåëåé èç áàçû äàííûõ è ñòðîèì äåðåâî ìîäåëåé
122
122
123
    int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ
123
    int pointer_index; //èíäåêñ ïîëÿ-óêàçàòåëÿ íà ðîäèòåëüñêèé êëàññ
124
    QString parentObject_id;
124
    QString parentObject_id;
125
125
126
126
127
    QMap <QString, QString> class_list_map;
127
    QMap <QString, QString> class_list_map;
128
    QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé
128
    QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé
129
    void getDatabaseData();
129
    void getDatabaseData();
130
    void buildTree(QTreeWidgetItem * model_item);
130
    void buildTree(QTreeWidgetItem * model_item);
131
    QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
131
    QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
132
    void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
132
    void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
133
    void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
133
    void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
134
    void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà
134
    void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà
135
    QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà
135
    QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà
136
136
137
    QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé
137
    QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé
138
                                                                // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
138
                                                                // â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
139
139
140
140
141
    QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ
141
    QMap <QString, QPixmap> getClassesIcons(); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ êëàññîâ
142
                                                // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
142
                                                // â êà÷åñòâå êëþ÷à ïîëó÷èì ID êëàññà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
143
143
144
144
145
    QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ
145
    QMap <QString, QPixmap> getObjectsIcon(QString inctance); // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ
146
    // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
146
    // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
147
147
148
148
149
    QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà"
149
    QStringList getDataFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "Äàòà"
150
150
151
151
152
152
153
    QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool"
153
    QStringList getBoolFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé c òèïîì "bool"
154
154
155
155
156
    QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû"
156
    QStringList getFileFieldList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé, â êîòîðûõ õðàíÿòüñÿ ôàéëû"
157
157
158
158
159
    QString getFiltrString(QString model_id, QString class_id); // ïîëó÷àåì ñòðîêó-ôèëüòð äëÿ äàííîãî êëàññà äàííîé ìîäåëè
159
    QString getFiltrString(QString model_id, QString class_id); // ïîëó÷àåì ñòðîêó-ôèëüòð äëÿ äàííîãî êëàññà äàííîé ìîäåëè
160
160
161
161
162
    int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè
162
    int getIconFieldIndex(QString inctance); // ïîëó÷àåì íîìåð ñòîëáöà ñ èêîíêàìè
163
163
164
    SpinBoxDelegate spinDelegate;
164
    SpinBoxDelegate spinDelegate;
165
    QItemDelegate standart_delegate;
165
    QItemDelegate standart_delegate;
166
    CPictureDelegate * picture_delegate;
166
    CPictureDelegate * picture_delegate;
167
    IconDelegate * iconDelegate;
167
    IconDelegate * iconDelegate;
168
    FileDelegate * fileDelegate; // äåëåãàò äëÿ òàáëèöû ñ ôèëüòðàìè, áóäêò îòîáðàæàòü ñïèñîê ïîëåé êëàññà
168
    FileDelegate * fileDelegate; // äåëåãàò äëÿ òàáëèöû ñ ôèëüòðàìè, áóäêò îòîáðàæàòü ñïèñîê ïîëåé êëàññà
169
    FilterSpinBoxDelegate filterSpinDelegate;
169
    FilterSpinBoxDelegate filterSpinDelegate;
170
    FilterConditionDelegate filterConditionDelegate, filterConditionDelegate_1, filterConditionDelegate_2;
170
    FilterConditionDelegate filterConditionDelegate, filterConditionDelegate_1, filterConditionDelegate_2;
171
    bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ
171
    bool comboBox_slot_enable; // äëÿ áëîêèðîâêè ñëîòà, êîãäà ìåíÿåì item_index èç ïðîãðàììû, à íå âðó÷íóþ
172
    QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL"
172
    QList <int> boolFieldsIndexes_global; // ñïèñîê íîìåðîâ ñòîëáöîâ ñ òèïîì "BOOL"
173
173
174
    QMap <QString, QPixmap> classesIcons;
174
    QMap <QString, QPixmap> classesIcons;
175
175
176
176
177
177
178
178
179
179
180
private slots:
180
private slots:
181
    void on_comboBox_currentIndexChanged( int index );
181
    void on_comboBox_currentIndexChanged( int index );
182
    void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column );
182
    void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column );
183
    void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column );
183
    void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column );
184
    void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column );
184
    void on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column );
185
    void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò"
185
    void on_pushButton_clicked(); // íàæàòèå êíîïêè "Äîáàâèòü îáúåêò"
186
    void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû"
186
    void on_pushButton_2_clicked();// íàæàòèå êíîïêè "Óäàëèòü âûäåëåííûå îáúåêòû"
187
    void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü"
187
    void on_pushButton_3_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü"
188
    void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ"
188
    void on_pushButton_4_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ"
189
    void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü "
189
    void on_pushButton_5_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ìîäåëü "
190
    void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü "
190
    void on_pushButton_6_clicked();// íàæàòèå êíîïêè "Óäàëèòü ìîäåëü "
191
    void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé)
191
    void on_pushButton_7_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ìîäåëåé)
192
    void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé)
192
    void on_pushButton_8_clicked();// íàæàòèå êíîïêè "Îòìåíèòü" (íà âêëàäêå ìîäåëåé)
193
    void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
193
    void on_pushButton_9_clicked();// íàæàòèå êíîïêè "Äîáàâèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
194
    void on_pushButton_10_clicked();// íàæàòèå êíîïêè "Óäàëèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
194
    void on_pushButton_10_clicked();// íàæàòèå êíîïêè "Óäàëèòü ôèëüòð" (íà âêëàäêå ôèëüòðîâ)
195
    void on_pushButton_11_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ôèëüòðîâ)
195
    void on_pushButton_11_clicked();// íàæàòèå êíîïêè "Ïðèìåíèòü" (íà âêëàäêå ôèëüòðîâ)
196
    void on_pushButton_12_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" (íà âêëàäêå ôèëüòðîâ)
196
    void on_pushButton_12_clicked();// íàæàòèå êíîïêè "Ñáðîñèòü èçìåíåíèÿ" (íà âêëàäêå ôèëüòðîâ)
197
197
198
    void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
198
    void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
199
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
199
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
200
    void on_filter_model_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà ôèëüòðà èëè äîáàâèëè íîâûé ôèëüòð
200
    void on_filter_model_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà ôèëüòðà èëè äîáàâèëè íîâûé ôèëüòð
201
    void applySetting();
201
    void applySetting();
202
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
202
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
203
};
203
};
204
204
205
205
206
206
207
207
208
#endif // MAINWINDOW_H
208
#endif // MAINWINDOW_H
209
 
209