Хранилища Subversion OpenInventory

Редакция

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

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