Subversion Repositories OpenInventory

Rev

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

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