CustomEditor Example

#ifndef WINDOW_H
#define WINDOW_H

#include <QTimer>
#include <DevMachines/QtitanGrid>

#include "DemoMainWindow.h"

class Window : public DemoMainWindow
{
    Q_OBJECT
public:
    Window();
    QWidget* createSettingsWidget();
private Q_SLOTS:
    void autoWidthStateChanged(int state);
    void fastScrollChanged(int state);
    void dottedLineChanged(int state);
    void selectGridLineStyles(int index);
    void zoomEnabledChanged(int state);
    void zoomIndicatorChanged(int state);
    void cellButtonAutoRaiseEnabled(int state);
    void frozenRowsEnabled(int state);
    void transparentBackgroundEnabled(int state);
    void rowSizingEnabled(int);
    void contextMenu(ContextMenuEventArgs* args);
    void cellButtonClicked(CellButtonClickEventArgs* args);
    void printPreview();
    void editorModifying(GridEditor* editor);
    void editorValidating(EditorValidationEventArgs* args);
    void zoomValueChanged(int value);
    void setShadeColor(const QColor& color) override;
private:
    Qtitan::Grid* m_grid;
};

class CustomEditWidget : public QLineEdit
{
public:
    CustomEditWidget(QWidget* parent);
protected:
    void mouseDoubleClickEvent(QMouseEvent*) override;
};

class CustomEditorRepository : public GridEditorRepository
{
public:
    CustomEditorRepository();
    GridEditor* createEditor() override;
private:
};

class CustomEditor : public GridEditorBase
{
    Q_OBJECT
public:
    explicit CustomEditor();
    ~CustomEditor() override;
    QWidget* getCellWidget() override;
    void repositoryUpdated() override;
    void paintEvent(QPainter& painter, const GridEditorStyleOption& option) override;
    void mouseOverEvent(QEnterEvent* e) override;
    void mouseOutEvent() override;
    void focusInEvent(QFocusEvent* e) override;
    void updateContext(const QVariant& value) override;
    void createEditModeContext() override;
    void destroyEditModeContext() override;
    void setValueToWidget(const QVariant& value) override;
private:
    CustomEditWidget* m_customWidget;
private Q_SLOTS:
    void textEdited(const QString& text);
};

#endif