Extract TooltipWidget updating into a separate class
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user