From a65f9df18ff16eb9fe43417e5dfd602fff9af26c Mon Sep 17 00:00:00 2001 From: "craig.p.drummond" Date: Fri, 22 Mar 2013 20:55:47 +0000 Subject: [PATCH] Fade edges of image --- widgets/textbrowser.cpp | 85 +++++++++++++++++++++++++++++++++++++++-- widgets/textbrowser.h | 2 +- 2 files changed, 83 insertions(+), 4 deletions(-) diff --git a/widgets/textbrowser.cpp b/widgets/textbrowser.cpp index ab903d58d..60a573e28 100644 --- a/widgets/textbrowser.cpp +++ b/widgets/textbrowser.cpp @@ -23,15 +23,90 @@ #include "textbrowser.h" #include +#include -static const int constMinSize=300; +static int border=-1; +static int minSize=-1; +static int maxSize=-1; + +static void fadeEdges(QImage &img, int edgeSize) +{ + unsigned char *data=img.bits(); + int width=img.width()*4; + int height=img.height(); + + for (int i=0; imaxSize || image.height()>maxSize) { + image=image.scaled(QSize(maxSize, maxSize), Qt::KeepAspectRatio, Qt::SmoothTransformation); + } + + image=image.convertToFormat(QImage::Format_ARGB32); + fadeEdges(image, border); } viewport()->update(); } @@ -56,6 +131,10 @@ void TextBrowser::paintEvent(QPaintEvent *e) if (drawImage && isReadOnly() && !image.isNull()) { QPainter p(viewport()); p.setOpacity(0.15); +// QRect r(rect()); +// int xpos=r.x()+(r.width()>image.width() ? ((r.width()-image.width())/2) : 0); +// int ypos=r.y()+(r.height()>image.height() ? ((r.height()-image.height())/2) : 0); +// p.drawImage(xpos, ypos, image); p.fillRect(rect(), QBrush(image)); } else if (!viewport()->autoFillBackground()) { QPainter p(viewport()); diff --git a/widgets/textbrowser.h b/widgets/textbrowser.h index 0daec18e4..028d59325 100644 --- a/widgets/textbrowser.h +++ b/widgets/textbrowser.h @@ -31,7 +31,7 @@ class TextBrowser : public QTextBrowser { public: - TextBrowser(QWidget *p) : QTextBrowser(p) , drawImage(false) { orig=font().pointSize(); } + TextBrowser(QWidget *p); virtual ~TextBrowser() { } void setZoom(int diff) { if (diff) zoomIn(diff); }