mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 23:27:09 +02:00
Removed Application::showTheme.
This commit is contained in:
parent
b4bff939b1
commit
7304f2b695
6 changed files with 45 additions and 30 deletions
|
@ -390,14 +390,6 @@ bool Application::hideMediaView() {
|
|||
return false;
|
||||
}
|
||||
|
||||
void Application::showTheme(
|
||||
not_null<DocumentData*> document,
|
||||
const Data::CloudTheme &cloud) {
|
||||
Expects(_mediaView != nullptr);
|
||||
|
||||
_mediaView->showTheme(document, cloud);
|
||||
}
|
||||
|
||||
PeerData *Application::ui_getPeerForMouseAction() {
|
||||
if (_mediaView && !_mediaView->isHidden()) {
|
||||
return _mediaView->ui_getPeerForMouseAction();
|
||||
|
|
|
@ -143,9 +143,6 @@ public:
|
|||
// Media view interface.
|
||||
void checkMediaViewActivation();
|
||||
bool hideMediaView();
|
||||
void showTheme(
|
||||
not_null<DocumentData*> document,
|
||||
const Data::CloudTheme &cloud);
|
||||
[[nodiscard]] PeerData *ui_getPeerForMouseAction();
|
||||
|
||||
[[nodiscard]] QPoint getPointForCallPanelCenter() const;
|
||||
|
|
|
@ -84,6 +84,7 @@ bool ShowTheme(
|
|||
const auto fromMessageId = context.value<ClickHandlerContext>().itemId;
|
||||
Core::App().hideMediaView();
|
||||
controller->session().data().cloudThemes().resolve(
|
||||
&controller->window(),
|
||||
match->captured(1),
|
||||
fromMessageId);
|
||||
return true;
|
||||
|
|
|
@ -17,11 +17,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_document_media.h"
|
||||
#include "main/main_session.h"
|
||||
#include "boxes/confirm_box.h"
|
||||
#include "core/application.h" // Core::App().showTheme.
|
||||
#include "media/view/media_view_open_common.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "apiwrap.h"
|
||||
#include "app.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
namespace Data {
|
||||
namespace {
|
||||
|
@ -140,6 +138,7 @@ void CloudThemes::applyUpdate(const MTPTheme &theme) {
|
|||
}
|
||||
|
||||
void CloudThemes::resolve(
|
||||
not_null<Window::Controller*> controller,
|
||||
const QString &slug,
|
||||
const FullMsgId &clickFromMessageId) {
|
||||
_session->api().request(_resolveRequestId).cancel();
|
||||
|
@ -148,31 +147,35 @@ void CloudThemes::resolve(
|
|||
MTP_inputThemeSlug(MTP_string(slug)),
|
||||
MTP_long(0)
|
||||
)).done([=](const MTPTheme &result) {
|
||||
showPreview(result);
|
||||
showPreview(controller, result);
|
||||
}).fail([=](const MTP::Error &error) {
|
||||
if (error.type() == qstr("THEME_FORMAT_INVALID")) {
|
||||
Ui::show(Box<InformBox>(
|
||||
controller->show(Box<InformBox>(
|
||||
tr::lng_theme_no_desktop(tr::now)));
|
||||
}
|
||||
}).send();
|
||||
}
|
||||
|
||||
void CloudThemes::showPreview(const MTPTheme &data) {
|
||||
void CloudThemes::showPreview(
|
||||
not_null<Window::Controller*> controller,
|
||||
const MTPTheme &data) {
|
||||
data.match([&](const MTPDtheme &data) {
|
||||
showPreview(CloudTheme::Parse(_session, data));
|
||||
showPreview(controller, CloudTheme::Parse(_session, data));
|
||||
});
|
||||
}
|
||||
|
||||
void CloudThemes::showPreview(const CloudTheme &cloud) {
|
||||
void CloudThemes::showPreview(
|
||||
not_null<Window::Controller*> controller,
|
||||
const CloudTheme &cloud) {
|
||||
if (const auto documentId = cloud.documentId) {
|
||||
previewFromDocument(cloud);
|
||||
previewFromDocument(controller, cloud);
|
||||
} else if (cloud.createdBy == _session->userId()) {
|
||||
Ui::show(Box(
|
||||
controller->show(Box(
|
||||
Window::Theme::CreateForExistingBox,
|
||||
&App::wnd()->controller(),
|
||||
controller,
|
||||
cloud));
|
||||
} else {
|
||||
Ui::show(Box<InformBox>(
|
||||
controller->show(Box<InformBox>(
|
||||
tr::lng_theme_no_desktop(tr::now)));
|
||||
}
|
||||
}
|
||||
|
@ -193,12 +196,19 @@ void CloudThemes::applyFromDocument(const CloudTheme &cloud) {
|
|||
});
|
||||
}
|
||||
|
||||
void CloudThemes::previewFromDocument(const CloudTheme &cloud) {
|
||||
void CloudThemes::previewFromDocument(
|
||||
not_null<Window::Controller*> controller,
|
||||
const CloudTheme &cloud) {
|
||||
const auto sessionController = controller->sessionController();
|
||||
if (!sessionController) {
|
||||
return;
|
||||
}
|
||||
const auto document = _session->data().document(cloud.documentId);
|
||||
loadDocumentAndInvoke(_previewFrom, cloud, document, [=](
|
||||
std::shared_ptr<Data::DocumentMedia> media) {
|
||||
const auto document = media->owner();
|
||||
Core::App().showTheme(document, cloud);
|
||||
using Open = Media::View::OpenRequest;
|
||||
controller->openInMediaView(Open(sessionController, document, cloud));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,10 @@ namespace Main {
|
|||
class Session;
|
||||
} // namespace Main
|
||||
|
||||
namespace Window {
|
||||
class Controller;
|
||||
} // namespace Window
|
||||
|
||||
namespace Data {
|
||||
|
||||
class DocumentMedia;
|
||||
|
@ -47,9 +51,16 @@ public:
|
|||
|
||||
void applyUpdate(const MTPTheme &theme);
|
||||
|
||||
void resolve(const QString &slug, const FullMsgId &clickFromMessageId);
|
||||
void showPreview(const MTPTheme &data);
|
||||
void showPreview(const CloudTheme &cloud);
|
||||
void resolve(
|
||||
not_null<Window::Controller*> controller,
|
||||
const QString &slug,
|
||||
const FullMsgId &clickFromMessageId);
|
||||
void showPreview(
|
||||
not_null<Window::Controller*> controller,
|
||||
const MTPTheme &data);
|
||||
void showPreview(
|
||||
not_null<Window::Controller*> controller,
|
||||
const CloudTheme &cloud);
|
||||
void applyFromDocument(const CloudTheme &cloud);
|
||||
|
||||
private:
|
||||
|
@ -69,7 +80,9 @@ private:
|
|||
[[nodiscard]] bool needReload() const;
|
||||
void scheduleReload();
|
||||
void reloadCurrent();
|
||||
void previewFromDocument(const CloudTheme &cloud);
|
||||
void previewFromDocument(
|
||||
not_null<Window::Controller*> controller,
|
||||
const CloudTheme &cloud);
|
||||
void loadDocumentAndInvoke(
|
||||
LoadingDocument &value,
|
||||
const CloudTheme &cloud,
|
||||
|
|
|
@ -524,7 +524,9 @@ void CloudList::insert(int index, const Data::CloudTheme &theme) {
|
|||
} else if (cloud.documentId) {
|
||||
_window->session().data().cloudThemes().applyFromDocument(cloud);
|
||||
} else {
|
||||
_window->session().data().cloudThemes().showPreview(cloud);
|
||||
_window->session().data().cloudThemes().showPreview(
|
||||
&_window->window(),
|
||||
cloud);
|
||||
}
|
||||
});
|
||||
auto &element = *_elements.insert(
|
||||
|
|
Loading…
Add table
Reference in a new issue