2020-04-21 06:49:33 +03:00
|
|
|
/*
|
|
|
|
This file is part of Kotatogram Desktop,
|
|
|
|
the unofficial app based on Telegram Desktop.
|
|
|
|
|
|
|
|
For license and copyright information please follow this link:
|
|
|
|
https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#define DeclareReadSetting(Type, Name) extern Type g##Name; \
|
|
|
|
inline const Type &c##Name() { \
|
|
|
|
return g##Name; \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define DeclareSetting(Type, Name) DeclareReadSetting(Type, Name) \
|
|
|
|
inline void cSet##Name(const Type &Name) { \
|
|
|
|
g##Name = Name; \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define DeclareRefSetting(Type, Name) DeclareSetting(Type, Name) \
|
|
|
|
inline Type &cRef##Name() { \
|
|
|
|
return g##Name; \
|
|
|
|
}
|
|
|
|
|
|
|
|
DeclareSetting(bool, KotatoFirstRun);
|
|
|
|
|
|
|
|
DeclareSetting(QString, MainFont);
|
|
|
|
DeclareSetting(QString, SemiboldFont);
|
|
|
|
DeclareSetting(bool, SemiboldFontIsBold);
|
|
|
|
DeclareSetting(QString, MonospaceFont);
|
|
|
|
DeclareSetting(bool, UseSystemFont);
|
|
|
|
DeclareSetting(bool, UseOriginalMetrics);
|
|
|
|
|
|
|
|
void SetBigEmojiOutline(bool enabled);
|
|
|
|
[[nodiscard]] bool BigEmojiOutline();
|
|
|
|
[[nodiscard]] rpl::producer<bool> BigEmojiOutlineChanges();
|
|
|
|
|
|
|
|
void SetStickerHeight(int height);
|
|
|
|
[[nodiscard]] int StickerHeight();
|
|
|
|
[[nodiscard]] rpl::producer<int> StickerHeightChanges();
|
|
|
|
|
2020-05-06 02:27:04 +03:00
|
|
|
void SetStickerScaleBoth(bool scale);
|
|
|
|
[[nodiscard]] bool StickerScaleBoth();
|
|
|
|
[[nodiscard]] rpl::producer<bool> StickerScaleBothChanges();
|
|
|
|
|
2020-04-21 06:49:33 +03:00
|
|
|
void SetAdaptiveBubbles(bool enabled);
|
|
|
|
[[nodiscard]] bool AdaptiveBubbles();
|
|
|
|
[[nodiscard]] rpl::producer<bool> AdaptiveBubblesChanges();
|
|
|
|
|
2020-06-27 22:16:29 +02:00
|
|
|
void SetMonospaceLargeBubbles(bool enabled);
|
|
|
|
[[nodiscard]] bool MonospaceLargeBubbles();
|
|
|
|
[[nodiscard]] rpl::producer<bool> MonospaceLargeBubblesChanges();
|
|
|
|
|
2020-04-21 06:49:33 +03:00
|
|
|
DeclareSetting(bool, AlwaysShowScheduled);
|
2020-05-05 06:46:11 +03:00
|
|
|
DeclareSetting(int, ShowChatId);
|
2020-04-21 06:49:33 +03:00
|
|
|
|
|
|
|
DeclareSetting(int, NetSpeedBoost);
|
|
|
|
DeclareSetting(int, NetRequestsCount);
|
|
|
|
DeclareSetting(int, NetUploadSessionsCount);
|
|
|
|
DeclareSetting(int, NetUploadRequestInterval);
|
|
|
|
|
|
|
|
inline void SetNetworkBoost(int boost) {
|
|
|
|
if (boost < 0) {
|
|
|
|
cSetNetSpeedBoost(0);
|
|
|
|
} else if (boost > 3) {
|
|
|
|
cSetNetSpeedBoost(3);
|
|
|
|
} else {
|
|
|
|
cSetNetSpeedBoost(boost);
|
|
|
|
}
|
|
|
|
|
|
|
|
cSetNetRequestsCount(2 + (2 * cNetSpeedBoost()));
|
|
|
|
cSetNetUploadSessionsCount(2 + (2 * cNetSpeedBoost()));
|
|
|
|
cSetNetUploadRequestInterval(500 - (100 * cNetSpeedBoost()));
|
|
|
|
}
|
|
|
|
|
|
|
|
DeclareSetting(bool, ShowPhoneInDrawer);
|
|
|
|
|
|
|
|
using ScaleVector = std::vector<int>;
|
|
|
|
DeclareRefSetting(ScaleVector, InterfaceScales);
|
|
|
|
bool HasCustomScales();
|
|
|
|
bool AddCustomScale(int scale);
|
|
|
|
void ClearCustomScales();
|
|
|
|
|
|
|
|
void SetDialogListLines(int lines);
|
|
|
|
[[nodiscard]] int DialogListLines();
|
|
|
|
[[nodiscard]] rpl::producer<int> DialogListLinesChanges();
|
|
|
|
|
|
|
|
DeclareSetting(bool, DisableUpEdit);
|
|
|
|
|
|
|
|
using CustomReplacementsMap = QMap<QString, QString>;
|
|
|
|
DeclareRefSetting(CustomReplacementsMap, CustomReplaces);
|
|
|
|
bool AddCustomReplace(QString from, QString to);
|
|
|
|
DeclareSetting(bool, ConfirmBeforeCall);
|
|
|
|
|
2020-05-17 21:59:33 +04:00
|
|
|
DeclareSetting(bool, UseNativeDecorations);
|
|
|
|
[[nodiscard]] bool UseNativeDecorations();
|
|
|
|
|
2020-04-21 06:49:33 +03:00
|
|
|
void SetRecentStickersLimit(int limit);
|
|
|
|
[[nodiscard]] int RecentStickersLimit();
|
|
|
|
[[nodiscard]] rpl::producer<int> RecentStickersLimitChanges();
|
|
|
|
|
|
|
|
DeclareSetting(int, UserpicCornersType);
|
|
|
|
DeclareSetting(bool, ShowTopBarUserpic);
|
2020-05-18 01:35:08 +04:00
|
|
|
DeclareSetting(bool, DisableTrayCounter);
|
|
|
|
DeclareSetting(bool, UseTelegramPanelIcon);
|
2020-04-21 06:49:33 +03:00
|
|
|
DeclareSetting(int, CustomAppIcon);
|
|
|
|
|
2020-07-02 03:34:22 +03:00
|
|
|
using DefaultFilterMap = QMap<int, int>;
|
|
|
|
DeclareRefSetting(DefaultFilterMap, DefaultFilterId);
|
|
|
|
void SetDefaultFilterId(int account, int filter);
|
|
|
|
int DefaultFilterId(int account);
|
|
|
|
bool HasDefaultFilterId(int account);
|
|
|
|
bool ClearDefaultFilterId(int account);
|
2020-04-21 06:49:33 +03:00
|
|
|
DeclareSetting(bool, UnmutedFilterCounterOnly);
|
|
|
|
DeclareSetting(bool, HideFilterEditButton);
|
|
|
|
DeclareSetting(bool, HideFilterNames);
|
|
|
|
DeclareSetting(bool, HideFilterAllChats);
|
|
|
|
|
|
|
|
DeclareSetting(bool, ProfileTopBarNotifications);
|
2020-05-15 20:20:12 +03:00
|
|
|
|
|
|
|
void SetHoverEmojiPanel(bool enabled);
|
|
|
|
[[nodiscard]] bool HoverEmojiPanel();
|
|
|
|
[[nodiscard]] rpl::producer<bool> HoverEmojiPanelChanges();
|
2020-07-09 11:14:54 +03:00
|
|
|
|
|
|
|
DeclareSetting(bool, ForwardRetainSelection);
|