Ensure lyrics background is at least 300x300px

This commit is contained in:
craig.p.drummond
2013-01-22 18:11:28 +00:00
parent 698c74587a
commit b9a13748e0
3 changed files with 36 additions and 41 deletions

View File

@@ -61,6 +61,7 @@
intended to be run by users.
35. Use com.googlecode.cantata instead of org.kde.cantata for DBUS service, etc.
36. Add action icons to grouped-albums style playlists at the top level.
37. Scale image in lyrics view if it is less than 300x300px
0.9.2
-----

View File

@@ -24,6 +24,33 @@
#include "textbrowser.h"
#include <QtGui/QPainter>
static const int constMinSize=300;
void TextBrowser::setImage(const QImage &img)
{
if (drawImage && (!img.isNull() || (img.isNull()!=image.isNull()))) {
image=img;
if (image.width()<constMinSize || image.height()<constMinSize) {
image=image.scaled(QSize(constMinSize, constMinSize), Qt::KeepAspectRatio, Qt::SmoothTransformation);
}
viewport()->update();
}
}
void TextBrowser::enableImage(bool e)
{
if (e!=drawImage) {
drawImage=e;
if (!drawImage) {
image=QImage();
}
if (e) {
viewport()->setAutoFillBackground(false);
}
viewport()->update();
}
}
void TextBrowser::paintEvent(QPaintEvent *e)
{
if (drawImage && isReadOnly() && !image.isNull()) {

View File

@@ -27,51 +27,18 @@
#include <QtGui/QTextBrowser>
#include <QtGui/QImage>
#include <QtCore/QDebug>
class TextBrowser : public QTextBrowser
{
public:
TextBrowser(QWidget *p)
: QTextBrowser(p)
, drawImage(false) {
orig=font().pointSize();
}
TextBrowser(QWidget *p) : QTextBrowser(p) , drawImage(false) { orig=font().pointSize(); }
virtual ~TextBrowser() { }
virtual ~TextBrowser() {
}
void setZoom(int diff) {
if (diff) {
zoomIn(diff);
}
}
int zoom() const {
return font().pointSize()-orig;
}
void setImage(const QImage &img) {
if (drawImage && (!img.isNull() || (img.isNull()!=image.isNull()))) {
image=img;
viewport()->update();
}
}
void enableImage(bool e) {
if (e!=drawImage) {
drawImage=e;
if (!drawImage) {
image=QImage();
}
if (e) {
viewport()->setAutoFillBackground(false);
}
viewport()->update();
}
}
bool imageEnabled() {
return drawImage;
}
void setZoom(int diff) { if (diff) zoomIn(diff); }
int zoom() const { return font().pointSize()-orig; }
void setImage(const QImage &img);
void enableImage(bool e);
bool imageEnabled() { return drawImage; }
void paintEvent(QPaintEvent *e);