Subversion Repositories OpenInventory

Rev

Rev 165 | 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 "delegate.h"
#include "settingform.h"

#include <QTreeView>
#include <QFileDialog>


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;

    settingForm setFrm;
    IconForm    iconFrm;

    QString baseName;
    QString hostName;
    QString userName;
    QString password;
    QString tableName;

    void readSettings();
    void writeSettings();



    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;
    SpinBoxDelegate delegateForDefaultValueColomn;


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

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_pushButton_6_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâûé óêàçàòåëü"
    void on_pushButton_7_clicked();         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âûäåëåííûå óêàçàòåëè"
    void on_pushButton_8_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(); // äîáàâèòü íîâûé óêàçàòåëü íà êëàññ-êîíòåéíåð

    void applySetting();
    void getSetting(); // îòêðîåì îêíî íàñòðîåê



};

#endif // CLASSEDITOR_H