/* 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 "base/flags.h" #include "base/flat_map.h" namespace Export { namespace Output { enum class Format; } // namespace Output struct MediaSettings { enum class Type { Photo = 0x01, Video = 0x02, Sticker = 0x04, GIF = 0x08, File = 0x10, }; using Types = base::flags; friend inline constexpr auto is_flag_type(Type) { return true; }; Types types = DefaultTypes(); int sizeLimit = 8 * 1024 * 1024; static inline Types DefaultTypes() { return Type::Photo; } }; struct Settings { enum class Type { PersonalInfo = 0x01, Userpics = 0x02, Contacts = 0x04, Sessions = 0x08, PersonalChats = 0x10, PrivateGroups = 0x20, PublicGroups = 0x40, MyChannels = 0x80, }; using Types = base::flags; friend inline constexpr auto is_flag_type(Type) { return true; }; QString path; Output::Format format = Output::Format(); Types types = DefaultTypes(); Types fullChats = DefaultFullChats(); MediaSettings defaultMedia; base::flat_map customMedia; static inline Types DefaultTypes() { return Type::PersonalInfo | Type::Userpics | Type::Contacts | Type::Sessions | Type::PersonalChats; } static inline Types DefaultFullChats() { return Type::PersonalChats; } }; } // namespace Export