Subversion Repositories OpenInventory

Rev

Rev 86 | Rev 134 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#ifndef CLASSEDITOR_H
#define CLASSEDITOR_H

#include <QMainWindow>
#include "mysql.h"
#include "mymodel.h"
#include "modelfordescriptiontable.h"
#include "delegateforclassestable.h"
#include "modelforpointers.h"

#include <QTreeView>


namespace Ui {
    class ClassEditor;
}

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

protected:
    void changeEvent(QEvent *e);

private:
    Ui::ClassEditor *ui;
    MySql sql;
    SettingsDialog settdialog;
    TableField *field;
    SqlTable *table;
    QModelIndex currIndexOfClassesTable; // ïåðåìåííàÿ õðàíèò òåêóùèé èíäåêñ òàáëèöû êëàññîâ
    QString currClassID; // òåêóùèé èäåíòèôèêàòîð êëàññà
    QString currInctanceTable; // èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ äëÿ âûáðàííîãî êëàññà

    QSqlTableModel* model;


   // QSqlTableModel* modelForPointers; // ìîäåëü äëÿ òàáëèöû ñ óêàçàòåëÿìè
    ModelForPointers* modelForPointers; // ìîäåëü äëÿ òàáëèöû ñ óêàçàòåëÿìè

    // QSqlTableModel* modelForDescription;
    ModelForDescriptionTable* modelForDescription;

    QSqlTableModel* Inctance_model;

    QTableView* tableForDescription;
    MyModel* mymodel;

    QTableView* tableForInstance; // çäåñü áóäåì îòîáðàæàòü òàáëèöó-õðàíèëèùå îáúåêòîà êëàññà
    QTableView tableForInstance_new; // çäåñü áóäåì îòîáðàæàòü òàáëèöó-õðàíèëèùå îáúåêòîà êëàññà

    DelegateForClassesTable classTableDelegate;

  //  void addNewClass(); // äîáàâèì íîâûé êëàññ
    void addNewClass_new();
    void addNewField(); // äîáàâëÿåì íîâîå ïîëå ê êëàññó
    void addNewPointer();//äîáîâëÿåì íîâîå ïîëå, ãäå áóäóò õðàíèòüñÿ óêàçàòåëè íà îáúåêòû êëàññà-êîíòåéíåðà
    void refreshInctance(); // îáíîâèì ìîäåëü òàáëèöû-õðàíèëèùà

private slots:

    void on_pushButton_clicked();           // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâûé êëàññ"
    void on_pushButton_2_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü êëàññ"
    void on_pushButton_3_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâîå ïîëå"
    void on_pushButton_4_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü ïîëå"
    void on_pushButton_5_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âñå ïîëÿ"
    void on_action_ID_triggered(bool is_checked);          // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ID"
    void on_action_showAlias_triggered(bool is_checked);     // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ïñåâäîíèì"
    void on_action_showInstance_triggered(bool is_checked); // ... ïîêàçûâàòü õðàíèëèùà îáúåêòîâ

    void on_tableView_clicked(const QModelIndex & index );
    void on_myModel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight );
    void on_modelForDescription_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight );
    void on_action_removeAllClasses(); // óäàëèòü âñå êëàññû
    void on_action_removeSelectedPointers(); // óäàëèòü âûäåëåííûå óêàçàòåëè

    void removeClass(int class_row); // ôóíêöèÿ óäàëÿåò êëàññ, íàõîäÿùèéñÿ â ñòðîêå ñ íîìåðîì class_row
    void on_field_changed(); // ïîìåíÿëîñü èìÿ ïîëÿ
    void on_action_newPointer(); // äîáàâèòü íîâûé óêàçàòåëü íà êëàññ-êîíòåéíåð

};

#endif // CLASSEDITOR_H