Хранилища Subversion OpenInventory

Редакция

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

Редакция 212 Редакция 215
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, 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_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
185
    void on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
185
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
186
    void on_model_for_ListModelsTable_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ); // èçìåíèëè ñâîéñòâà îáúåêòà èëè äîáàâèëè íîâûé îáúåêò
186
    void applySetting();
187
    void applySetting();
187
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
188
    void getSetting(); // îòêðîåì îêíî íàñòðîåê
188
};
189
};
189
190
190
191
191
192
192
193
193
#endif // MAINWINDOW_H
194
#endif // MAINWINDOW_H
194
 
195