Added AbstractSinglePreview.

This commit is contained in:
23rd 2021-07-12 13:40:59 +03:00 committed by John Preston
parent c1e86418c2
commit 5431541694
6 changed files with 41 additions and 11 deletions

View file

@ -17,7 +17,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Ui {
AbstractSingleFilePreview::AbstractSingleFilePreview(QWidget *parent)
: RpWidget(parent)
: AbstractSinglePreview(parent)
, _editMedia(this, st::sendBoxAlbumGroupButtonFile)
, _deleteMedia(this, st::sendBoxAlbumGroupButtonFile) {
@ -37,6 +37,10 @@ rpl::producer<> AbstractSingleFilePreview::deleteRequests() const {
return _deleteMedia->clicks() | rpl::to_empty;
}
rpl::producer<> AbstractSingleFilePreview::modifyRequests() const {
return rpl::never<>();
}
void AbstractSingleFilePreview::prepareThumbFor(
Data &data,
const QImage &preview) {

View file

@ -7,20 +7,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#pragma once
#include "ui/rp_widget.h"
#include "ui/chat/attach/attach_abstract_single_preview.h"
#include "base/object_ptr.h"
namespace Ui {
class IconButton;
class AbstractSingleFilePreview : public RpWidget {
class AbstractSingleFilePreview : public AbstractSinglePreview {
public:
AbstractSingleFilePreview(QWidget *parent);
~AbstractSingleFilePreview();
[[nodiscard]] rpl::producer<> deleteRequests() const;
[[nodiscard]] rpl::producer<> editRequests() const;
[[nodiscard]] rpl::producer<> deleteRequests() const override;
[[nodiscard]] rpl::producer<> editRequests() const override;
[[nodiscard]] rpl::producer<> modifyRequests() const override;
protected:
struct Data {

View file

@ -23,7 +23,7 @@ constexpr auto kMinPreviewWidth = 20;
} // namespace
AbstractSingleMediaPreview::AbstractSingleMediaPreview(QWidget *parent)
: RpWidget(parent)
: AbstractSinglePreview(parent)
, _minThumbH(st::sendBoxAlbumGroupSize.height()
+ st::sendBoxAlbumGroupSkipTop * 2)
, _photoEditorButton(base::make_unique_q<AbstractButton>(this))

View file

@ -7,21 +7,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#pragma once
#include "ui/rp_widget.h"
#include "ui/chat/attach/attach_abstract_single_preview.h"
#include "ui/abstract_button.h"
namespace Ui {
class AttachControlsWidget;
class AbstractSingleMediaPreview : public RpWidget {
class AbstractSingleMediaPreview : public AbstractSinglePreview {
public:
AbstractSingleMediaPreview(QWidget *parent);
~AbstractSingleMediaPreview();
[[nodiscard]] rpl::producer<> deleteRequests() const;
[[nodiscard]] rpl::producer<> editRequests() const;
[[nodiscard]] rpl::producer<> modifyRequests() const;
[[nodiscard]] rpl::producer<> deleteRequests() const override;
[[nodiscard]] rpl::producer<> editRequests() const override;
[[nodiscard]] rpl::producer<> modifyRequests() const override;
[[nodiscard]] bool isPhoto() const;

View file

@ -0,0 +1,24 @@
/*
This file is part of Telegram Desktop,
the official desktop application for the Telegram messaging service.
For license and copyright information please follow this link:
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#pragma once
#include "ui/rp_widget.h"
namespace Ui {
class AbstractSinglePreview : public RpWidget {
public:
using RpWidget::RpWidget;
[[nodiscard]] virtual rpl::producer<> deleteRequests() const = 0;
[[nodiscard]] virtual rpl::producer<> editRequests() const = 0;
[[nodiscard]] virtual rpl::producer<> modifyRequests() const = 0;
};
} // namespace Ui

View file

@ -110,6 +110,7 @@ PRIVATE
ui/chat/attach/attach_abstract_single_file_preview.h
ui/chat/attach/attach_abstract_single_media_preview.cpp
ui/chat/attach/attach_abstract_single_media_preview.h
ui/chat/attach/attach_abstract_single_preview.h
ui/chat/attach/attach_album_preview.cpp
ui/chat/attach/attach_album_preview.h
ui/chat/attach/attach_album_thumbnail.cpp