#ifndef RECORD_EDITOR_H #define RECORD_EDITOR_H #include #include "FieldContentPainter.h" class RecordEditor: public QTextEdit, public FieldContentPainter { Q_OBJECT private: static const int ThumbnailSize = 25; static const int MinWidth = 150; static const int MaxWidth = 400; static const float EditorWidthIncrease; public: RecordEditor(QWidget* parent, const QRect& cellRect); QRect getCellRect() const { return cellRect; } void startDrawing(); void endDrawing(); void drawText(const QString& text); void drawImage(const QString& filePath); void insertImage(int cursorPos, const QString& filePath); QString getText() const; protected: QSize sizeHint() const; private: int getEditorWidth() const; int getEditorHeight() const; void updatePos(); bool textWrapped() const; void moveCursor(int cursorPos); public slots: void updateEditor(); private: QRect cellRect; bool enabledSizeUpdates; }; #endif