Extract TooltipWidget updating into a separate class

This commit is contained in:
rexim
2019-06-12 01:03:04 +07:00
parent 3f4d3ce14a
commit 3838157d82
5 changed files with 56 additions and 16 deletions
+32
View File
@@ -0,0 +1,32 @@
#include "TooltipPreviewImage.hpp"
#include "Application.hpp"
#include "singletons/WindowManager.hpp"
#include "widgets/TooltipWidget.hpp"
namespace chatterino {
TooltipPreviewImage &TooltipPreviewImage::getInstance() {
static TooltipPreviewImage *instance = new TooltipPreviewImage();
return *instance;
}
TooltipPreviewImage::TooltipPreviewImage() {
connections_.push_back(getApp()->windows->gifRepaintRequested.connect(
[&] {
auto tooltipWidget = TooltipWidget::getInstance();
if (this->image_ && !tooltipWidget->isHidden()) {
auto pixmap = this->image_->pixmap();
if (pixmap) {
tooltipWidget->setImage(*pixmap);
}
} else {
tooltipWidget->clearImage();
}
}));
}
void TooltipPreviewImage::setImage(ImagePtr image) {
this->image_ = image;
}
} // namespace chatterino
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include "messages/Image.hpp"
namespace chatterino {
class TooltipPreviewImage {
public:
static TooltipPreviewImage &getInstance();
void setImage(ImagePtr image);
private:
TooltipPreviewImage();
private:
ImagePtr image_ = nullptr;
std::vector<pajlada::Signals::ScopedConnection> connections_;
};
} // namespace chatterino