aboutsummaryrefslogtreecommitdiff
path: root/src/aoimage.cpp
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2021-04-07 02:09:41 +0300
committerCrystalwarrior <varsash@gmail.com>2021-04-07 02:09:41 +0300
commit132bf9b9d93071b7f4b3bc04d3d29ef50cb1162b (patch)
treeca0136d8b590a2b2293bab27fc72750f63af3dbc /src/aoimage.cpp
parent885c510e3c817f85e26bbd7d5261362afa588c37 (diff)
Don't generate QMovie() at all if we're told we're a static AOImage
Diffstat (limited to 'src/aoimage.cpp')
-rw-r--r--src/aoimage.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/aoimage.cpp b/src/aoimage.cpp
index 142189c2..6f1b84f6 100644
--- a/src/aoimage.cpp
+++ b/src/aoimage.cpp
@@ -8,15 +8,18 @@ AOImage::AOImage(QWidget *parent, AOApplication *p_ao_app, bool make_static) : Q
{
m_parent = parent;
ao_app = p_ao_app;
- movie = new QMovie();
is_static = make_static;
- connect(movie, &QMovie::frameChanged, [=]{
- QPixmap f_pixmap = movie->currentPixmap();
- f_pixmap =
- f_pixmap.scaled(this->size(), Qt::IgnoreAspectRatio);
- this->setPixmap(f_pixmap);
- this->setMask(f_pixmap.mask());
- });
+ if (!is_static) // Only create the QMovie if we're non-static
+ {
+ movie = new QMovie();
+ connect(movie, &QMovie::frameChanged, [=]{
+ QPixmap f_pixmap = movie->currentPixmap();
+ f_pixmap =
+ f_pixmap.scaled(this->size(), Qt::IgnoreAspectRatio);
+ this->setPixmap(f_pixmap);
+ this->setMask(f_pixmap.mask());
+ });
+ }
}
AOImage::~AOImage() {}
@@ -36,12 +39,14 @@ bool AOImage::set_image(QString p_path, QString p_misc)
return false;
}
path = p_path;
- movie->stop();
- movie->setFileName(path);
- if (ao_app->get_animated_theme() && movie->frameCount() > 1) {
- movie->start();
+ if (!is_static) {
+ movie->stop();
+ movie->setFileName(path);
+ if (ao_app->get_animated_theme() && movie->frameCount() > 1) {
+ movie->start();
+ }
}
- else {
+ if (is_static || !ao_app->get_animated_theme() || movie->frameCount() <= 1) {
QPixmap f_pixmap(path);
f_pixmap =