Хранилища Subversion OpenInventory

Редакция

Редакция 113 | Редакция 115 | К новейшей редакции | Авторство | Сравнить с предыдущей | Последнее изменение | Открыть журнал | Скачать | RSS

#ifndef MAINWINDOW_H
#define MAINWINDOW_H


//#include "mysql.h"

#include <QMainWindow>
#include <QStandardItemModel>
#include <QStandardItem>
#include <QTreeWidgetItem>
#include <QTextCodec>
#include <QSqlDatabase>

#include <QtGui>
#include <QString>
#include <QtSql>
#include <QFont>
#include <QColor>


/*
#include <QSqlField>
#include <QSqlRecord>
#include <QSqlTableModel>
#include <QSqlQueryModel>
#include <QTableView>
#include <QSqlDriverPlugin>
#include <QIcon>
#include <QVariant>
#include <QProcess>
#include <QByteArray>
*/


typedef struct Class {
        QString name;
        QString ID;

} TClass;




namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;

    QList<QTreeWidgetItem *> root_items_list;
    QStandardItemModel *model;
    QStandardItem *item;
    QTreeWidgetItem *rootItem1, *rootItem2;
    void openBase();
    bool readModel();
    void setupModelData(const QStringList &lines, QTreeWidgetItem *parent);
    void creatModelString();
    QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ
    void addChildsString(QTreeWidgetItem *parentItem, int level);

    QSqlDatabase sql;

    bool openDataBase();
    bool buildPreviewModel(QString modelName, QString rootClassID);

    bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID);

    QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
    void addChildsItems(QTreeWidgetItem *perent_class_item); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
    QStringList classChields(QString class_id);
    QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ
    void initComboBox();
    QList<QTreeWidgetItem *> rootItems; // ñïèñîê óêàçàòåëåé êîðíåâûõ óçëîâ (ìîäåëåé)

    QMap <QString, QString> class_list_map;
    void getDatabaseData();
    void buildTree(QTreeWidgetItem * model_item);
    QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
    void showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
    void showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item); // îòîáðàçèì îáúåêòû êëàññîâà
    void showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr);// // îòîáðàçèì îáúåêòû êëàññîâà
    QString getPointerFieldName(QString parent_class_id, QString chield_class_id); // îïðåäåëÿåì èìÿ ïîëÿ, â êîòîðîì õðÿíÿòñÿ óêàçàòåëè íà îáúåêòû ðîäèòåëüñêîãî êëàññà

private slots:
    void on_comboBox_currentIndexChanged( int index );
    void on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column );
    void on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column );
};




#endif // MAINWINDOW_H