mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Added a HTML Displayable Delegate
Added a HTML delegate to show rendered HTML on print. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
345b01750a
commit
774a785a99
2 changed files with 35 additions and 0 deletions
|
@ -17,6 +17,7 @@
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QAbstractItemView>
|
#include <QAbstractItemView>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QTextDocument>
|
||||||
|
|
||||||
QSize DiveListDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
|
QSize DiveListDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
|
@ -399,3 +400,31 @@ QWidget *DoubleSpinBoxDelegate::createEditor(QWidget *parent, const QStyleOption
|
||||||
w->setSingleStep(step);
|
w->setSingleStep(step);
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HTMLDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const
|
||||||
|
{
|
||||||
|
QStyleOptionViewItemV4 options = option;
|
||||||
|
initStyleOption(&options, index);
|
||||||
|
painter->save();
|
||||||
|
QTextDocument doc;
|
||||||
|
doc.setHtml(options.text);
|
||||||
|
doc.setTextWidth(options.rect.width());
|
||||||
|
doc.setDefaultFont(options.font);
|
||||||
|
options.text.clear();
|
||||||
|
options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter);
|
||||||
|
painter->translate(options.rect.left(), options.rect.top());
|
||||||
|
QRect clip(0, 0, options.rect.width(), options.rect.height());
|
||||||
|
doc.drawContents(painter, clip);
|
||||||
|
painter->restore();
|
||||||
|
ProfilePrintDelegate::paint(painter,option,index);
|
||||||
|
}
|
||||||
|
|
||||||
|
QSize HTMLDelegate::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const
|
||||||
|
{
|
||||||
|
QStyleOptionViewItemV4 options = option;
|
||||||
|
initStyleOption(&options, index);
|
||||||
|
QTextDocument doc;
|
||||||
|
doc.setHtml(options.text);
|
||||||
|
doc.setTextWidth(options.rect.width());
|
||||||
|
return QSize(doc.idealWidth(), doc.size().height());
|
||||||
|
}
|
|
@ -110,4 +110,10 @@ private:
|
||||||
double step;
|
double step;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class HTMLDelegate : public ProfilePrintDelegate {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
|
virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
|
};
|
||||||
#endif // MODELDELEGATES_H
|
#endif // MODELDELEGATES_H
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue