#ifndef IGRIDFORM_H #define IGRIDFORM_H #include #include #include #include #include #include "columndialog.h" #include "filterui.h" #include "defaultformhandler.h" #include "core_global.h" namespace Ui { class GridForm; } class CORESHARED_EXPORT IGridForm : public QWidget { Q_OBJECT public: explicit IGridForm(QWidget *parent = 0); virtual ~IGridForm(); void setPluginId(const QString &pluginId); QString pluginId(); QTableView *tableView(); signals: void dataChanged(); public slots: virtual void fillData() = 0; protected: virtual void handleNewRecord() = 0; virtual void handleEditRecord() = 0; virtual void handleDeleteRecord() = 0; void hideColumns(const QList &cols); QWidget *filterWidget(); private slots: void on_btnNew_clicked(); void on_btnEdit_clicked(); void on_btnDelete_clicked(); void on_tableView_customContextMenuRequested(const QPoint &pos); void on_actionSelectColumns_triggered(); void columnsAccepted(); void widthChanged(int logicalIndex, int oldSize, int newSize); void on_btnFilter_toggled(bool checked); private: QString m_pluginId; IFormHandler *m_formHandler; Ui::GridForm *ui; QMenu *m_contextMenu; ColumnDialog *m_columnDialog; protected: FilterUi *m_filterUi; IForm *m_form; }; #endif // IGRIDFORM_H