Хранилища Subversion OpenInventory

Редакция

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

#ifndef DELEGATE_H
#define DELEGATE_H

#include <QItemDelegate>
#include <QModelIndex>
#include <QObject>
#include <QSize>
#include <QSpinBox>
#include <QSqlQuery>
#include <QtSql>
#include <QtGui>
#include <QSqlDatabase>
#include <QMessageBox>

#include "iconform.h"
#include "fileform.h"

//#include <QMainWindow>
//! [0]


typedef  struct field {

      QString ID;
      QString FieldName;
      QString FieldAlias;
      QString FieldType;
      QString DefaultValue;
      QString ClassIdentifer;
      QString Comment;

  } TField; // ýòà ñòðóêòóðà îïèñûâàåò ïîëå



class SpinBoxDelegate : public QItemDelegate
{
    Q_OBJECT

public:
    SpinBoxDelegate(QObject *parent = 0);

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                          const QModelIndex &index) const;

    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
                      const QModelIndex &index) const;

    void updateEditorGeometry(QWidget *editor,
        const QStyleOptionViewItem &option, const QModelIndex &index) const;



    void setInctance(QString newInctance);
    void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê




private:


    QString inctance; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê
    QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID

};







class FilterConditionDelegate : public QItemDelegate
{
    Q_OBJECT

public:
    FilterConditionDelegate(QObject *parent = 0);

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                          const QModelIndex &index) const;

    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
                      const QModelIndex &index) const;

    void updateEditorGeometry(QWidget *editor,
        const QStyleOptionViewItem &option, const QModelIndex &index) const;



    void setClassID(QString newClassID);
//    void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê

    void setItems(QStringList new_items){items = new_items;}


private:


    QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê
//    QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
    QStringList items; // ñïèñîê
};



class FilterValueDelegate : public QItemDelegate
{
    Q_OBJECT







public:
    FilterValueDelegate(QObject *parent = 0);

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                          const QModelIndex &index) const;

    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
                      const QModelIndex &index) const;

    void updateEditorGeometry(QWidget *editor,
        const QStyleOptionViewItem &option, const QModelIndex &index) const;



    void setClassID(QString newClassID);
//    void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê

    void setItems(QStringList new_items){items = new_items;}


private:


    QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê
//    QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
mutable QStringList items; // ñïèñîê
static  QString getClassInctanc(QString class_id);//îïðåäåëÿåì õðàíèëèùå îáúåêòîâ
static  QString getFieldType(QString class_id, QString fieldName);//îïðåäåëÿåì òèï äàííûõ ïîëÿ
static TField getField(const QModelIndex &index); // ïî èíäåêñó (â òàáëèöå ôèëüòðîâ) ïîëó÷èì èíôîðìàöèþ î ïîëå
static QMap<QString, QString> getItems(QString inctance); // âîçâðàùàåì ñïèñîê âñåõ çíà÷åíèé èç òàáëèöû-õðàíèëèùà

};




//! [0]
class FilterSpinBoxDelegate : public QItemDelegate
{
    Q_OBJECT

public:
    FilterSpinBoxDelegate(QObject *parent = 0);

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                          const QModelIndex &index) const;

    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
                      const QModelIndex &index) const;

    void updateEditorGeometry(QWidget *editor,
        const QStyleOptionViewItem &option, const QModelIndex &index) const;



    void setClassID(QString newClassID);
    void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê




private:


    QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê
    QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
};








//! [0]

class MyDEDelegate : public QItemDelegate {
       Q_OBJECT
   public:
       MyDEDelegate(bool calpopup = true,
                    QObject *parent = 0);
       QWidget *createEditor(
                   QWidget *parent,
                   const QStyleOptionViewItem &option,
                   const QModelIndex &index) const;
       void setEditorData(QWidget *editor,
                          const QModelIndex &index) const;
       void setModelData(QWidget *editor,
                         QAbstractItemModel *model,
                         const QModelIndex &index) const;
      void updateEditorGeometry(
              QWidget *editor,
              const QStyleOptionViewItem &option,
              const QModelIndex &index) const;
   private:
        bool m_calpopup;
    };


class CPictureDelegate : public QItemDelegate
{
    mutable QPixmap m_pxPicture;
 public:
         CPictureDelegate( QObject *parent );

         void paint(QPainter *painter, const QStyleOptionViewItem &option,
                                const QModelIndex &index) const;

         //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
};


class IconDelegate : public QItemDelegate
{
    mutable QPixmap m_pxPicture;
private:
        QTableView *tblView;

public:
         IconDelegate ( QObject *parent );

         QWidget *createEditor(
                     QWidget *parent,
                     const QStyleOptionViewItem &option,
                     const QModelIndex &index) const;

         void setEditorData(QWidget *editor,
                            const QModelIndex &index) const;

         void setModelData(QWidget *editor,
                           QAbstractItemModel *model,
                           const QModelIndex &index) const;


         void updateEditorGeometry(
                 QWidget *editor,
                 const QStyleOptionViewItem &option,
                 const QModelIndex &index) const;

         void paint(QPainter *painter, const QStyleOptionViewItem &option,
                                const QModelIndex &index) const;

        void setTableView(QTableView* table);


         //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
};

class FileDelegate : public QItemDelegate
{
    mutable QByteArray m_Data;
private:
        // QTableView *tblView;

public:
         FileDelegate ( QObject *parent );

         QWidget *createEditor(
                     QWidget *parent,
                     const QStyleOptionViewItem &option,
                     const QModelIndex &index) const;

         void setEditorData(QWidget *editor,
                            const QModelIndex &index) const;

         void setModelData(QWidget *editor,
                           QAbstractItemModel *model,
                           const QModelIndex &index) const;


         void updateEditorGeometry(
                 QWidget *editor,
                 const QStyleOptionViewItem &option,
                 const QModelIndex &index) const;

/*
         void paint(QPainter *painter, const QStyleOptionViewItem &option,
                                const QModelIndex &index) const;
*/




//         void setTableView(QTableView* table);


         //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
};

class TimeEditDelegate : public QItemDelegate
 {
     Q_OBJECT

 public:
     TimeEditDelegate(const QString timeFormat = "dd.MM.yyyy hh:mm:ss",QObject *parent = 0) : QItemDelegate(parent) {this->timeformat = timeFormat;};
     void paint(QPainter *painter, const QStyleOptionViewItem &option,
               const QModelIndex &index) const;

 private:
     QString timeformat;
 };


#endif // DELEGATE_H