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