diff --git a/Telegram/Resources/default.tdesktop-theme b/Telegram/Resources/default.tdesktop-theme new file mode 100644 index 00000000000000..45d3d59a48ed9a --- /dev/null +++ b/Telegram/Resources/default.tdesktop-theme @@ -0,0 +1,381 @@ +// +// This is a sample Telegram Desktop theme file. +// It was generated from the 'colors.palette' style file. +// +// To create a theme with a background image included you should +// put two files in a .zip archive: +// +// First one is the color scheme like the one you're viewing +// right now, this file should be named 'colors.tdesktop-theme'. +// +// Second one should be the background image and it can be named +// 'background.jpg', 'background.png', 'tiled.jpg' or 'tiled.png'. +// You should name it 'background' (if you'd like it not to be tiled), +// or it can be named 'tiled' (if you'd like it to be tiled). +// +// After that you need to change the extension of your .zip archive +// to 'tdesktop-theme', so you'll have: +// +// mytheme.tdesktop-theme +// |-colors.tdesktop-theme +// |-background.jpg (or tiled.jpg, background.png, tiled.png) +// + +windowBg: #ffffff; +windowFg: #000000; +windowBgOver: #f1f1f1; +windowBgRipple: #e5e5e5; +windowFgOver: windowFg; +windowSubTextFg: #999999; +windowSubTextFgOver: #919191; +windowBoldFg: #222222; +windowBoldFgOver: #222222; +windowBgActive: #40a7e3; +windowFgActive: #ffffff; +windowActiveTextFg: #168acd; +windowShadowFg: #000000; +windowShadowFgFallback: #f1f1f1; +shadowFg: #00000018; +slideFadeOutBg: #0000003c; +slideFadeOutShadowFg: windowShadowFg; +imageBg: #000000; +imageBgTransparent: #ffffff; +activeButtonBg: windowBgActive; +activeButtonBgOver: #39a5db; +activeButtonBgRipple: #2095d0; +activeButtonFg: windowFgActive; +activeButtonFgOver: activeButtonFg; +activeButtonSecondaryFg: #cceeff; +activeButtonSecondaryFgOver: activeButtonSecondaryFg; +activeLineFg: #37a1de; +activeLineFgError: #e48383; +lightButtonBg: windowBg; +lightButtonBgOver: #e3f1fa; +lightButtonBgRipple: #c9e4f6; +lightButtonFg: windowActiveTextFg; +lightButtonFgOver: lightButtonFg; +attentionButtonFg: #d14e4e; +attentionButtonFgOver: #d14e4e; +attentionButtonBgOver: #fcdfde; +attentionButtonBgRipple: #f4c3c2; +outlineButtonBg: windowBg; +outlineButtonBgOver: lightButtonBgOver; +outlineButtonOutlineFg: windowBgActive; +outlineButtonBgRipple: lightButtonBgRipple; +menuBg: windowBg; +menuBgOver: windowBgOver; +menuBgRipple: windowBgRipple; +menuIconFg: #a8a8a8; +menuIconFgOver: #999999; +menuSubmenuArrowFg: #373737; +menuFgDisabled: #cccccc; +menuSeparatorFg: #f1f1f1; +scrollBarBg: #00000053; +scrollBarBgOver: #0000007a; +scrollBg: #0000001a; +scrollBgOver: #0000002c; +smallCloseIconFg: #c7c7c7; +smallCloseIconFgOver: #a3a3a3; +radialFg: windowFgActive; +radialBg: #00000056; +placeholderFg: windowSubTextFg; +placeholderFgActive: #aaaaaa; +inputBorderFg: #e0e0e0; +filterInputBorderFg: #54c3f3; +checkboxFg: #b3b3b3; +sliderBgInactive: #e1eaef; +sliderBgActive: windowBgActive; +tooltipBg: #eef2f5; +tooltipFg: #5d6c80; +tooltipBorderFg: #c9d1db; +titleBg: windowBgOver; +titleShadow: #00000003; +titleButtonFg: #ababab; +titleButtonBgOver: #e5e5e5; +titleButtonFgOver: #9a9a9a; +titleButtonCloseBgOver: #e81123; +titleButtonCloseFgOver: windowFgActive; +titleFgActive: #3e3c3e; +titleFg: #acacac; +trayCounterBg: #f23c34; +trayCounterBgMute: #888888; +trayCounterFg: #ffffff; +trayCounterBgMacInvert: #ffffff; +trayCounterFgMacInvert: #ffffff01; +layerBg: #0000007f; +cancelIconFg: menuIconFg; +cancelIconFgOver: menuIconFgOver; +boxBg: windowBg; +boxTextFg: windowFg; +boxTextFgGood: #4ab44a; +boxTextFgError: #d84d4d; +boxTitleFg: #404040; +boxSearchBg: boxBg; +boxSearchCancelIconFg: cancelIconFg; +boxSearchCancelIconFgOver: cancelIconFgOver; +boxTitleAdditionalFg: #808080; +boxTitleCloseFg: cancelIconFg; +boxTitleCloseFgOver: cancelIconFgOver; +membersAboutLimitFg: windowSubTextFgOver; +contactsBg: windowBg; +contactsBgOver: windowBgOver; +contactsNameFg: boxTextFg; +contactsStatusFg: windowSubTextFg; +contactsStatusFgOver: windowSubTextFgOver; +contactsStatusFgOnline: windowActiveTextFg; +photoCropFadeBg: layerBg; +photoCropPointFg: #ffffff7f; +introBg: windowBg; +introTitleFg: windowBoldFg; +introDescriptionFg: windowSubTextFg; +introErrorFg: windowSubTextFg; +introCoverTopBg: #0f89d0; +introCoverBottomBg: #39b0f0; +introCoverIconsFg: #5ec6ff; +introCoverPlaneTrace: #5ec6ff69; +introCoverPlaneInner: #c6d8e8; +introCoverPlaneOuter: #a1bed4; +introCoverPlaneTop: #ffffff; +dialogsMenuIconFg: menuIconFg; +dialogsMenuIconFgOver: menuIconFgOver; +dialogsBg: windowBg; +dialogsNameFg: windowBoldFg; +dialogsChatIconFg: dialogsNameFg; +dialogsDateFg: windowSubTextFg; +dialogsTextFg: windowSubTextFg; +dialogsTextFgService: windowActiveTextFg; +dialogsDraftFg: #dd4b39; +dialogsVerifiedIconBg: windowBgActive; +dialogsVerifiedIconFg: windowFgActive; +dialogsSendingIconFg: #c1c1c1; +dialogsSentIconFg: #5dc452; +dialogsUnreadBg: windowBgActive; +dialogsUnreadBgMuted: #bbbbbb; +dialogsUnreadFg: windowFgActive; +dialogsBgOver: windowBgOver; +dialogsNameFgOver: windowBoldFgOver; +dialogsChatIconFgOver: dialogsNameFgOver; +dialogsDateFgOver: windowSubTextFgOver; +dialogsTextFgOver: windowSubTextFgOver; +dialogsTextFgServiceOver: dialogsTextFgService; +dialogsDraftFgOver: dialogsDraftFg; +dialogsVerifiedIconBgOver: dialogsVerifiedIconBg; +dialogsVerifiedIconFgOver: dialogsVerifiedIconFg; +dialogsSendingIconFgOver: dialogsSendingIconFg; +dialogsSentIconFgOver: dialogsSentIconFg; +dialogsUnreadBgOver: dialogsUnreadBg; +dialogsUnreadBgMutedOver: dialogsUnreadBgMuted; +dialogsUnreadFgOver: dialogsUnreadFg; +dialogsBgActive: #419fd9; +dialogsNameFgActive: windowFgActive; +dialogsChatIconFgActive: dialogsNameFgActive; +dialogsDateFgActive: windowFgActive; +dialogsTextFgActive: windowFgActive; +dialogsTextFgServiceActive: dialogsTextFgActive; +dialogsDraftFgActive: #c6e1f7; +dialogsVerifiedIconBgActive: dialogsTextFgActive; +dialogsVerifiedIconFgActive: dialogsBgActive; +dialogsSendingIconFgActive: #ffffff99; +dialogsSentIconFgActive: dialogsTextFgActive; +dialogsUnreadBgActive: dialogsTextFgActive; +dialogsUnreadBgMutedActive: dialogsDraftFgActive; +dialogsUnreadFgActive: dialogsBgActive; +dialogsForwardBg: dialogsBgActive; +dialogsForwardFg: dialogsNameFgActive; +searchedBarBg: windowBgOver; +searchedBarBorder: shadowFg; +searchedBarFg: windowSubTextFgOver; +topBarBg: windowBg; +emojiPanBg: windowBg; +emojiPanCategories: #f7f7f7; // windowBg; +emojiPanHeaderFg: windowSubTextFg; +emojiPanHeaderBg: #fffffff2; // emojiPanBg; +stickerPanDeleteBg: #000000cc; +stickerPanDeleteFg: windowFgActive; +stickerPreviewBg: #ffffffb0; +historyTextInFg: windowFg; +historyTextOutFg: windowFg; +historyCaptionInFg: historyTextInFg; +historyCaptionOutFg: historyTextOutFg; +historyFileNameInFg: historyTextInFg; +historyFileNameOutFg: historyTextOutFg; +historyOutIconFg: dialogsSentIconFg; +historyOutIconFgSelected: #4da79f; +historyIconFgInverted: windowFgActive; +historySendingOutIconFg: #98d292; +historySendingInIconFg: #a0adb5; +historySendingInvertedIconFg: #ffffffc8; +historySystemBg: #89a0b47f; +historySystemBgSelected: #bbc8d4a2; +historySystemFg: windowFgActive; +historyUnreadBarBg: #fcfbfa; +historyUnreadBarBorder: shadowFg; +historyUnreadBarFg: #538bb4; +historyForwardChooseBg: #0000004c; +historyForwardChooseFg: windowFgActive; +historyPeer1NameFg: #c03d33; +historyPeer1UserpicBg: #e17076; +historyPeer2NameFg: #4fad2d; +historyPeer2UserpicBg: #7bc862; +historyPeer3NameFg: #d09306; +historyPeer3UserpicBg: #e5ca77; +historyPeer4NameFg: windowActiveTextFg; +historyPeer4UserpicBg: #65aadd; +historyPeer5NameFg: #8544d6; +historyPeer5UserpicBg: #a695e7; +historyPeer6NameFg: #cd4073; +historyPeer6UserpicBg: #ee7aae; +historyPeer7NameFg: #2996ad; +historyPeer7UserpicBg: #6ec9cb; +historyPeer8NameFg: #ce671b; +historyPeer8UserpicBg: #faa774; +historyPeerUserpicFg: windowFgActive; +historyScrollBarBg: #556e837a; +historyScrollBarBgOver: #556e83bc; +historyScrollBg: #556e834c; +historyScrollBgOver: #556e836b; +msgInBg: windowBg; +msgInBgSelected: #c2dcf2; +msgOutBg: #effdde; +msgOutBgSelected: #b7dbdb; +msgSelectOverlay: #358cd44c; +msgStickerOverlay: #358cd47f; +msgInServiceFg: windowActiveTextFg; +msgInServiceFgSelected: windowActiveTextFg; +msgOutServiceFg: #3a8e26; +msgOutServiceFgSelected: #367570; +msgInShadow: #748ea229; +msgInShadowSelected: #548dbb29; +msgOutShadow: #3ac34740; +msgOutShadowSelected: #37a78e40; +msgInDateFg: #a0acb6; +msgInDateFgSelected: #6a9cc5; +msgOutDateFg: #6cc264; +msgOutDateFgSelected: #50a79c; +msgServiceFg: windowFgActive; +msgServiceBg: #556e837f; +msgServiceBgSelected: #8ca0b3a2; +msgInReplyBarColor: activeLineFg; +msgInReplyBarSelColor: activeLineFg; +msgOutReplyBarColor: historyOutIconFg; +msgOutReplyBarSelColor: historyOutIconFgSelected; +msgImgReplyBarColor: msgServiceFg; +msgInMonoFg: #4e7391; +msgOutMonoFg: #469165; +msgDateImgFg: msgServiceFg; +msgDateImgBg: #00000054; +msgDateImgBgOver: #00000074; +msgDateImgBgSelected: #1c4a7187; +msgFileThumbLinkInFg: lightButtonFg; +msgFileThumbLinkInFgSelected: lightButtonFgOver; +msgFileThumbLinkOutFg: #5eba5b; +msgFileThumbLinkOutFgSelected: #31a298; +msgFileInBg: windowBgActive; +msgFileInBgOver: #4eade3; +msgFileInBgSelected: #51a3d3; +msgFileOutBg: #78c67f; +msgFileOutBgOver: #6bc272; +msgFileOutBgSelected: #5fb389; +msgFile1Bg: #72b1df; +msgFile1BgDark: #5c9ece; +msgFile1BgOver: #5294c4; +msgFile1BgSelected: #5099d0; +msgFile2Bg: #61b96e; +msgFile2BgDark: #4da859; +msgFile2BgOver: #44a050; +msgFile2BgSelected: #46a07e; +msgFile3Bg: #e47272; +msgFile3BgDark: #cd5b5e; +msgFile3BgOver: #c35154; +msgFile3BgSelected: #9f6a82; +msgFile4Bg: #efc274; +msgFile4BgDark: #e6a561; +msgFile4BgOver: #dc9c5a; +msgFile4BgSelected: #b19d84; +msgWaveformInActive: windowBgActive; +msgWaveformInActiveSelected: #51a3d3; +msgWaveformInInactive: #d4dee6; +msgWaveformInInactiveSelected: #9cc1e1; +msgWaveformOutActive: #78c67f; +msgWaveformOutActiveSelected: #6badad; +msgWaveformOutInactive: #b3e2b4; +msgWaveformOutInactiveSelected: #91c3c3; +msgBotKbOverBgAdd: #ffffff20; +msgBotKbIconFg: msgServiceFg; +msgBotKbRippleBg: #00000020; +mediaInFg: msgInDateFg; +mediaInFgSelected: msgInDateFgSelected; +mediaOutFg: msgOutDateFg; +mediaOutFgSelected: msgOutDateFgSelected; +youtubePlayIconBg: #e83131c8; +youtubePlayIconFg: windowFgActive; +videoPlayIconBg: #0000007f; +videoPlayIconFg: #ffffff; +toastBg: #000000b2; +toastFg: windowFgActive; +reportSpamBg: emojiPanHeaderBg; +reportSpamFg: windowFg; +historyToDownShadow: #00000040; +historyComposeAreaBg: msgInBg; +historyComposeAreaFg: historyTextInFg; +historyComposeAreaFgService: msgInDateFg; +historyComposeIconFg: menuIconFg; +historyComposeIconFgOver: menuIconFgOver; +historySendIconFg: windowBgActive; +historySendIconFgOver: windowBgActive; +historyPinnedBg: historyComposeAreaBg; +historyReplyBg: historyComposeAreaBg; +historyReplyCancelFg: cancelIconFg; +historyReplyCancelFgOver: cancelIconFgOver; +historyComposeButtonBg: historyComposeAreaBg; +historyComposeButtonBgOver: windowBgOver; +historyComposeButtonBgRipple: windowBgRipple; +overviewCheckBg: #00000040; +overviewCheckFg: windowBg; +overviewCheckFgActive: windowBg; +overviewPhotoSelectOverlay: #40ace333; +profileStatusFgOver: #7c99b2; +notificationsBoxMonitorFg: windowFg; +notificationsBoxScreenBg: dialogsBgActive; +notificationSampleUserpicFg: windowBgActive; +notificationSampleCloseFg: #d7d7d7; // windowSubTextFg; +notificationSampleTextFg: #d7d7d7; // windowSubTextFg; +notificationSampleNameFg: #939393; // windowSubTextFg; +mainMenuBg: windowBg; +mainMenuCoverBg: dialogsBgActive; +mainMenuCoverFg: windowFgActive; +mediaPlayerBg: windowBg; +mediaPlayerActiveFg: windowBgActive; +mediaPlayerInactiveFg: sliderBgInactive; +mediaPlayerDisabledFg: #9dd1ef; +mediaviewFileBg: windowBg; +mediaviewFileNameFg: windowFg; +mediaviewFileSizeFg: windowSubTextFg; +mediaviewFileRedCornerFg: #d55959; +mediaviewFileYellowCornerFg: #e8a659; +mediaviewFileGreenCornerFg: #49a957; +mediaviewFileBlueCornerFg: #599dcf; +mediaviewFileExtFg: activeButtonFg; +mediaviewMenuBg: #383838; +mediaviewMenuBgOver: #505050; +mediaviewMenuBgRipple: #676767; +mediaviewMenuFg: windowFgActive; +mediaviewBg: #222222eb; +mediaviewVideoBg: imageBg; +mediaviewControlBg: #0000003c; +mediaviewControlFg: windowFgActive; +mediaviewCaptionBg: #11111180; +mediaviewCaptionFg: mediaviewControlFg; +mediaviewTextLinkFg: #91d9ff; +mediaviewSaveMsgBg: toastBg; +mediaviewSaveMsgFg: toastFg; +mediaviewPlaybackActive: #c7c7c7; +mediaviewPlaybackInactive: #252525; +mediaviewPlaybackActiveOver: #ffffff; +mediaviewPlaybackInactiveOver: #474747; +mediaviewPlaybackProgressFg: #ffffffc7; +mediaviewPlaybackIconFg: mediaviewPlaybackActive; +mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver; +mediaviewTransparentBg: #ffffff; +mediaviewTransparentFg: #cccccc; +notificationBg: windowBg; diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 2fd7b43545436e..a1479d84e7ba9d 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -125,6 +125,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org "lng_gif_error" = "An error has occured while reading GIF animation :("; "lng_edit_error" = "You cannot edit this message"; "lng_join_channel_error" = "Sorry, you have joined too many channels and supergroups. Please leave some before joining."; +"lng_error_phone_flood" = "Sorry, you have deleted and re-created your account too many times recently. Please wait for a few days before signing up again."; + "lng_edit_deleted" = "This message was deleted"; "lng_edit_too_long" = "Your message text is too long"; "lng_edit_message" = "Edit message"; diff --git a/Telegram/Resources/sample.tdesktop-theme b/Telegram/Resources/sample.tdesktop-theme deleted file mode 100644 index 687ebe05d31903..00000000000000 --- a/Telegram/Resources/sample.tdesktop-theme +++ /dev/null @@ -1,381 +0,0 @@ -// -// This is a sample Telegram Desktop theme file. -// It was generated from the 'colors.palette' style file. -// -// To create a theme with a background image included you should -// put two files in a .zip archive: -// -// First one is the color scheme like the one you're viewing -// right now, this file should be named 'colors.tdesktop-theme'. -// -// Second one should be the background image and it can be named -// 'background.jpg', 'background.png', 'tiled.jpg' or 'tiled.png'. -// You should name it 'background' (if you'd like it not to be tiled), -// or it can be named 'tiled' (if you'd like it to be tiled). -// -// After that you need to change the extension of your .zip archive -// to 'tdesktop-theme', so you'll have: -// -// mytheme.tdesktop-theme -// |-colors.tdesktop-theme -// |-background.jpg (or tiled.jpg, background.png, tiled.png) -// - -windowBg: #ffffff; -windowFg: #000000; -windowBgOver: #f1f1f1; -windowBgRipple: #e5e5e5; -windowFgOver: #000000; // windowBgOver; -windowSubTextFg: #999999; -windowSubTextFgOver: #919191; -windowBoldFg: #222222; -windowBoldFgOver: #222222; -windowBgActive: #40a7e3; -windowFgActive: #ffffff; -windowActiveTextFg: #168acd; -windowShadowFg: #000000; -windowShadowFgFallback: #f1f1f1; -shadowFg: #00000018; -slideFadeOutBg: #0000003c; -slideFadeOutShadowFg: #000000; // windowShadowFgFallback; -imageBg: #000000; -imageBgTransparent: #ffffff; -activeButtonBg: #40a7e3; // windowFgActive; -activeButtonBgOver: #39a5db; -activeButtonBgRipple: #2095d0; -activeButtonFg: #ffffff; // windowActiveTextFg; -activeButtonFgOver: activeButtonFgOver; -activeButtonSecondaryFg: #cceeff; -activeButtonSecondaryFgOver: activeButtonSecondaryFgOver; -activeLineFg: #37a1de; -activeLineFgError: #e48383; -lightButtonBg: #ffffff; // windowFg; -lightButtonBgOver: #e3f1fa; -lightButtonBgRipple: #c9e4f6; -lightButtonFg: #168acd; // windowShadowFg; -lightButtonFgOver: lightButtonFgOver; -attentionButtonFg: #d14e4e; -attentionButtonFgOver: #d14e4e; -attentionButtonBgOver: #fcdfde; -attentionButtonBgRipple: #f4c3c2; -outlineButtonBg: #ffffff; // windowFg; -outlineButtonBgOver: #e3f1fa; // lightButtonBgRipple; -outlineButtonOutlineFg: #40a7e3; // windowFgActive; -outlineButtonBgRipple: #c9e4f6; // lightButtonFg; -menuBg: #ffffff; // windowFg; -menuBgOver: #f1f1f1; // windowBgRipple; -menuBgRipple: #e5e5e5; // windowFgOver; -menuIconFg: #a8a8a8; -menuIconFgOver: #999999; -menuSubmenuArrowFg: #373737; -menuFgDisabled: #cccccc; -menuSeparatorFg: #f1f1f1; -scrollBarBg: #00000053; -scrollBarBgOver: #0000007a; -scrollBg: #0000001a; -scrollBgOver: #0000002c; -smallCloseIconFg: #c7c7c7; -smallCloseIconFgOver: #a3a3a3; -radialFg: #ffffff; // windowActiveTextFg; -radialBg: #00000056; -placeholderFg: #999999; // windowSubTextFgOver; -placeholderFgActive: #aaaaaa; -inputBorderFg: #e0e0e0; -filterInputBorderFg: #54c3f3; -checkboxFg: #b3b3b3; -sliderBgInactive: #e1eaef; -sliderBgActive: #40a7e3; // windowFgActive; -tooltipBg: #eef2f5; -tooltipFg: #5d6c80; -tooltipBorderFg: #c9d1db; -titleBg: #f1f1f1; // windowBgRipple; -titleShadow: #00000003; -titleButtonFg: #ababab; -titleButtonBgOver: #e5e5e5; -titleButtonFgOver: #9a9a9a; -titleButtonCloseBgOver: #e81123; -titleButtonCloseFgOver: #ffffff; // windowActiveTextFg; -titleFgActive: #3e3c3e; -titleFg: #acacac; -trayCounterBg: #f23c34; -trayCounterBgMute: #888888; -trayCounterFg: #ffffff; -trayCounterBgMacInvert: #ffffff; -trayCounterFgMacInvert: #ffffff01; -layerBg: #0000007f; -cancelIconFg: #a8a8a8; // menuIconFgOver; -cancelIconFgOver: #999999; // menuSubmenuArrowFg; -boxBg: #ffffff; // windowFg; -boxTextFg: #000000; // windowBgOver; -boxTextFgGood: #4ab44a; -boxTextFgError: #d84d4d; -boxTitleFg: #404040; -boxSearchBg: #ffffff; // boxTextFg; -boxSearchCancelIconFg: #a8a8a8; // cancelIconFgOver; -boxSearchCancelIconFgOver: #999999; // boxBg; -boxTitleAdditionalFg: #808080; -boxTitleCloseFg: #a8a8a8; // cancelIconFgOver; -boxTitleCloseFgOver: #999999; // boxBg; -membersAboutLimitFg: #919191; // windowBoldFg; -contactsBg: #ffffff; // windowFg; -contactsBgOver: #f1f1f1; // windowBgRipple; -contactsNameFg: #000000; // boxTextFgGood; -contactsStatusFg: #999999; // windowSubTextFgOver; -contactsStatusFgOver: #919191; // windowBoldFg; -contactsStatusFgOnline: #168acd; // windowShadowFg; -photoCropFadeBg: #0000007f; // cancelIconFg; -photoCropPointFg: #ffffff7f; -introBg: #ffffff; // windowFg; -introTitleFg: windowBoldFgOver; -introDescriptionFg: #999999; // windowSubTextFgOver; -introErrorFg: #999999; // windowSubTextFgOver; -introCoverTopBg: #0f89d0; -introCoverBottomBg: #39b0f0; -introCoverIconsFg: #5ec6ff; -introCoverPlaneTrace: #5ec6ff69; -introCoverPlaneInner: #c6d8e8; -introCoverPlaneOuter: #a1bed4; -introCoverPlaneTop: #ffffff; -dialogsMenuIconFg: #a8a8a8; // menuIconFgOver; -dialogsMenuIconFgOver: #999999; // menuSubmenuArrowFg; -dialogsBg: #ffffff; // windowFg; -dialogsNameFg: windowBoldFgOver; -dialogsChatIconFg: dialogsChatIconFg; -dialogsDateFg: #999999; // windowSubTextFgOver; -dialogsTextFg: #999999; // windowSubTextFgOver; -dialogsTextFgService: #168acd; // windowShadowFg; -dialogsDraftFg: #dd4b39; -dialogsVerifiedIconBg: #40a7e3; // windowFgActive; -dialogsVerifiedIconFg: #ffffff; // windowActiveTextFg; -dialogsSendingIconFg: #c1c1c1; -dialogsSentIconFg: #5dc452; -dialogsUnreadBg: #40a7e3; // windowFgActive; -dialogsUnreadBgMuted: #bbbbbb; -dialogsUnreadFg: #ffffff; // windowActiveTextFg; -dialogsBgOver: #f1f1f1; // windowBgRipple; -dialogsNameFgOver: #222222; // windowBgActive; -dialogsChatIconFgOver: dialogsChatIconFgOver; -dialogsDateFgOver: #919191; // windowBoldFg; -dialogsTextFgOver: #919191; // windowBoldFg; -dialogsTextFgServiceOver: #168acd; // dialogsDraftFg; -dialogsDraftFgOver: #dd4b39; // dialogsVerifiedIconBg; -dialogsVerifiedIconBgOver: #40a7e3; // dialogsVerifiedIconFg; -dialogsVerifiedIconFgOver: #ffffff; // dialogsSendingIconFg; -dialogsSendingIconFgOver: #c1c1c1; // dialogsSentIconFg; -dialogsSentIconFgOver: #5dc452; // dialogsUnreadBg; -dialogsUnreadBgOver: #40a7e3; // dialogsUnreadBgMuted; -dialogsUnreadBgMutedOver: #bbbbbb; // dialogsUnreadFg; -dialogsUnreadFgOver: #ffffff; // dialogsBgOver; -dialogsBgActive: #419fd9; -dialogsNameFgActive: #ffffff; // windowActiveTextFg; -dialogsChatIconFgActive: dialogsChatIconFgActive; -dialogsDateFgActive: #ffffff; // windowActiveTextFg; -dialogsTextFgActive: #ffffff; // windowActiveTextFg; -dialogsTextFgServiceActive: dialogsTextFgServiceActive; -dialogsDraftFgActive: #c6e1f7; -dialogsVerifiedIconBgActive: dialogsTextFgServiceActive; -dialogsVerifiedIconFgActive: #419fd9; // dialogsNameFgActive; -dialogsSendingIconFgActive: #ffffff99; -dialogsSentIconFgActive: dialogsTextFgServiceActive; -dialogsUnreadBgActive: dialogsTextFgServiceActive; -dialogsUnreadBgMutedActive: #c6e1f7; // dialogsVerifiedIconBgActive; -dialogsUnreadFgActive: #419fd9; // dialogsNameFgActive; -dialogsForwardBg: #419fd9; // dialogsNameFgActive; -dialogsForwardFg: dialogsChatIconFgActive; -searchedBarBg: #f1f1f1; // windowBgRipple; -searchedBarBorder: #00000018; // slideFadeOutBg; -searchedBarFg: #919191; // windowBoldFg; -topBarBg: #ffffff; // windowFg; -emojiPanBg: #ffffff; // windowFg; -emojiPanCategories: #f7f7f7; // windowFg; -emojiPanHeaderFg: #999999; // windowSubTextFgOver; -emojiPanHeaderBg: #fffffff2; // emojiPanCategories; -stickerPanDeleteBg: #000000cc; -stickerPanDeleteFg: #ffffff; // windowActiveTextFg; -stickerPreviewBg: #ffffffb0; -historyTextInFg: #000000; // windowBgOver; -historyTextOutFg: #000000; // windowBgOver; -historyCaptionInFg: historyTextOutFg; -historyCaptionOutFg: historyCaptionInFg; -historyFileNameInFg: historyTextOutFg; -historyFileNameOutFg: historyCaptionInFg; -historyOutIconFg: #5dc452; // dialogsUnreadBg; -historyOutIconFgSelected: #4da79f; -historyIconFgInverted: #ffffff; // windowActiveTextFg; -historySendingOutIconFg: #98d292; -historySendingInIconFg: #a0adb5; -historySendingInvertedIconFg: #ffffffc8; -historySystemBg: #89a0b47f; -historySystemBgSelected: #bbc8d4a2; -historySystemFg: #ffffff; // windowActiveTextFg; -historyUnreadBarBg: #fcfbfa; -historyUnreadBarBorder: #00000018; // slideFadeOutBg; -historyUnreadBarFg: #538bb4; -historyForwardChooseBg: #0000004c; -historyForwardChooseFg: #ffffff; // windowActiveTextFg; -historyPeer1NameFg: #c03d33; -historyPeer1UserpicBg: #e17076; -historyPeer2NameFg: #4fad2d; -historyPeer2UserpicBg: #7bc862; -historyPeer3NameFg: #d09306; -historyPeer3UserpicBg: #e5ca77; -historyPeer4NameFg: #168acd; // windowShadowFg; -historyPeer4UserpicBg: #65aadd; -historyPeer5NameFg: #8544d6; -historyPeer5UserpicBg: #a695e7; -historyPeer6NameFg: #cd4073; -historyPeer6UserpicBg: #ee7aae; -historyPeer7NameFg: #2996ad; -historyPeer7UserpicBg: #6ec9cb; -historyPeer8NameFg: #ce671b; -historyPeer8UserpicBg: #faa774; -historyPeerUserpicFg: #ffffff; // windowActiveTextFg; -historyScrollBarBg: #556e837a; -historyScrollBarBgOver: #556e83bc; -historyScrollBg: #556e834c; -historyScrollBgOver: #556e836b; -msgInBg: #ffffff; // windowFg; -msgInBgSelected: #c2dcf2; -msgOutBg: #effdde; -msgOutBgSelected: #b7dbdb; -msgSelectOverlay: #358cd44c; -msgStickerOverlay: #358cd47f; -msgInServiceFg: #168acd; // windowShadowFg; -msgInServiceFgSelected: #168acd; // windowShadowFg; -msgOutServiceFg: #3a8e26; -msgOutServiceFgSelected: #367570; -msgInShadow: #748ea229; -msgInShadowSelected: #548dbb29; -msgOutShadow: #3ac34740; -msgOutShadowSelected: #37a78e40; -msgInDateFg: #a0acb6; -msgInDateFgSelected: #6a9cc5; -msgOutDateFg: #6cc264; -msgOutDateFgSelected: #50a79c; -msgServiceFg: #ffffff; // windowActiveTextFg; -msgServiceBg: #556e837f; -msgServiceBgSelected: #8ca0b3a2; -msgInReplyBarColor: #37a1de; // activeLineFgError; -msgInReplyBarSelColor: #37a1de; // activeLineFgError; -msgOutReplyBarColor: #5dc452; // historyOutIconFgSelected; -msgOutReplyBarSelColor: #4da79f; // historyIconFgInverted; -msgImgReplyBarColor: #ffffff; // msgServiceBg; -msgInMonoFg: #4e7391; -msgOutMonoFg: #469165; -msgDateImgFg: #ffffff; // msgServiceBg; -msgDateImgBg: #00000054; -msgDateImgBgOver: #00000074; -msgDateImgBgSelected: #1c4a7187; -msgFileThumbLinkInFg: lightButtonFgOver; -msgFileThumbLinkInFgSelected: #168acd; // attentionButtonFg; -msgFileThumbLinkOutFg: #5eba5b; -msgFileThumbLinkOutFgSelected: #31a298; -msgFileInBg: #40a7e3; // windowFgActive; -msgFileInBgOver: #4eade3; -msgFileInBgSelected: #51a3d3; -msgFileOutBg: #78c67f; -msgFileOutBgOver: #6bc272; -msgFileOutBgSelected: #5fb389; -msgFile1Bg: #72b1df; -msgFile1BgDark: #5c9ece; -msgFile1BgOver: #5294c4; -msgFile1BgSelected: #5099d0; -msgFile2Bg: #61b96e; -msgFile2BgDark: #4da859; -msgFile2BgOver: #44a050; -msgFile2BgSelected: #46a07e; -msgFile3Bg: #e47272; -msgFile3BgDark: #cd5b5e; -msgFile3BgOver: #c35154; -msgFile3BgSelected: #9f6a82; -msgFile4Bg: #efc274; -msgFile4BgDark: #e6a561; -msgFile4BgOver: #dc9c5a; -msgFile4BgSelected: #b19d84; -msgWaveformInActive: #40a7e3; // windowFgActive; -msgWaveformInActiveSelected: #51a3d3; -msgWaveformInInactive: #d4dee6; -msgWaveformInInactiveSelected: #9cc1e1; -msgWaveformOutActive: #78c67f; -msgWaveformOutActiveSelected: #6badad; -msgWaveformOutInactive: #b3e2b4; -msgWaveformOutInactiveSelected: #91c3c3; -msgBotKbOverBgAdd: #ffffff20; -msgBotKbIconFg: #ffffff; // msgServiceBg; -msgBotKbRippleBg: #00000020; -mediaInFg: #a0acb6; // msgInDateFgSelected; -mediaInFgSelected: #6a9cc5; // msgOutDateFg; -mediaOutFg: #6cc264; // msgOutDateFgSelected; -mediaOutFgSelected: #50a79c; // msgServiceFg; -youtubePlayIconBg: #e83131c8; -youtubePlayIconFg: #ffffff; // windowActiveTextFg; -videoPlayIconBg: #0000007f; -videoPlayIconFg: #ffffff; -toastBg: #000000b2; -toastFg: #ffffff; // windowActiveTextFg; -reportSpamBg: #fffffff2; // stickerPanDeleteBg; -reportSpamFg: #000000; // windowBgOver; -historyToDownShadow: #00000040; -historyComposeAreaBg: #ffffff; // msgInBgSelected; -historyComposeAreaFg: historyTextOutFg; -historyComposeAreaFgService: #a0acb6; // msgInDateFgSelected; -historyComposeIconFg: #a8a8a8; // menuIconFgOver; -historyComposeIconFgOver: #999999; // menuSubmenuArrowFg; -historySendIconFg: #40a7e3; // windowFgActive; -historySendIconFgOver: #40a7e3; // windowFgActive; -historyPinnedBg: #ffffff; // historyComposeAreaFg; -historyReplyBg: #ffffff; // historyComposeAreaFg; -historyReplyCancelFg: #a8a8a8; // cancelIconFgOver; -historyReplyCancelFgOver: #999999; // boxBg; -historyComposeButtonBg: #ffffff; // historyComposeAreaFg; -historyComposeButtonBgOver: #f1f1f1; // windowBgRipple; -historyComposeButtonBgRipple: #e5e5e5; // windowFgOver; -overviewCheckBg: #00000040; -overviewCheckFg: #ffffff; // windowFg; -overviewCheckFgActive: #ffffff; // windowFg; -overviewPhotoSelectOverlay: #40ace333; -profileStatusFgOver: #7c99b2; -notificationsBoxMonitorFg: #000000; // windowBgOver; -notificationsBoxScreenBg: #419fd9; // dialogsNameFgActive; -notificationSampleUserpicFg: #40a7e3; // windowFgActive; -notificationSampleCloseFg: #d7d7d7; // windowSubTextFgOver; -notificationSampleTextFg: #d7d7d7; // windowSubTextFgOver; -notificationSampleNameFg: #939393; // windowSubTextFgOver; -mainMenuBg: #ffffff; // windowFg; -mainMenuCoverBg: #419fd9; // dialogsNameFgActive; -mainMenuCoverFg: #ffffff; // windowActiveTextFg; -mediaPlayerBg: #ffffff; // windowFg; -mediaPlayerActiveFg: #40a7e3; // windowFgActive; -mediaPlayerInactiveFg: #e1eaef; // sliderBgActive; -mediaPlayerDisabledFg: #9dd1ef; -mediaviewFileBg: #ffffff; // windowFg; -mediaviewFileNameFg: #000000; // windowBgOver; -mediaviewFileSizeFg: #999999; // windowSubTextFgOver; -mediaviewFileRedCornerFg: #d55959; -mediaviewFileYellowCornerFg: #e8a659; -mediaviewFileGreenCornerFg: #49a957; -mediaviewFileBlueCornerFg: #599dcf; -mediaviewFileExtFg: activeButtonFgOver; -mediaviewMenuBg: #383838; -mediaviewMenuBgOver: #505050; -mediaviewMenuBgRipple: #676767; -mediaviewMenuFg: #ffffff; // windowActiveTextFg; -mediaviewBg: #222222eb; -mediaviewVideoBg: #000000; // imageBgTransparent; -mediaviewControlBg: #0000003c; -mediaviewControlFg: #ffffff; // windowActiveTextFg; -mediaviewCaptionBg: #11111180; -mediaviewCaptionFg: #ffffff; // mediaviewCaptionBg; -mediaviewTextLinkFg: #91d9ff; -mediaviewSaveMsgBg: #000000b2; // toastFg; -mediaviewSaveMsgFg: #ffffff; // reportSpamBg; -mediaviewPlaybackActive: #c7c7c7; -mediaviewPlaybackInactive: #252525; -mediaviewPlaybackActiveOver: #ffffff; -mediaviewPlaybackInactiveOver: #474747; -mediaviewPlaybackProgressFg: #ffffffc7; -mediaviewPlaybackIconFg: #c7c7c7; // mediaviewPlaybackInactive; -mediaviewPlaybackIconFgOver: #ffffff; // mediaviewPlaybackInactiveOver; -mediaviewTransparentBg: #ffffff; -mediaviewTransparentFg: #cccccc; -notificationBg: #ffffff; // windowFg; diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc index 9b19cecc922bac..1c651926b2994c 100644 --- a/Telegram/Resources/winrc/Telegram.rc +++ b/Telegram/Resources/winrc/Telegram.rc @@ -34,8 +34,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,10,20,7 - PRODUCTVERSION 0,10,20,7 + FILEVERSION 0,10,21,0 + PRODUCTVERSION 0,10,21,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,10 +51,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Telegram Messenger LLP" - VALUE "FileVersion", "0.10.20.7" + VALUE "FileVersion", "0.10.21.0" VALUE "LegalCopyright", "Copyright (C) 2014-2016" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "0.10.20.7" + VALUE "ProductVersion", "0.10.21.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc index 25724e404d661d..d72c2d488bbca7 100644 --- a/Telegram/Resources/winrc/Updater.rc +++ b/Telegram/Resources/winrc/Updater.rc @@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,10,20,7 - PRODUCTVERSION 0,10,20,7 + FILEVERSION 0,10,21,0 + PRODUCTVERSION 0,10,21,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -43,10 +43,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram Messenger LLP" VALUE "FileDescription", "Telegram Updater" - VALUE "FileVersion", "0.10.20.7" + VALUE "FileVersion", "0.10.21.0" VALUE "LegalCopyright", "Copyright (C) 2014-2016" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "0.10.20.7" + VALUE "ProductVersion", "0.10.21.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp index d345ad6c6f4b1a..3cda10dee60eea 100644 --- a/Telegram/SourceFiles/application.cpp +++ b/Telegram/SourceFiles/application.cpp @@ -1069,8 +1069,8 @@ void AppClass::checkMapVersion() { if (Local::oldMapVersion() < AppVersion) { if (Local::oldMapVersion()) { QString versionFeatures; - if ((cAlphaVersion() || cBetaVersion()) && Local::oldMapVersion() < 10017) { - versionFeatures = QString::fromUtf8("\xe2\x80\x94 New cute control for adding members to your groups"); + if ((cAlphaVersion() || cBetaVersion()) && Local::oldMapVersion() < 10021) { + versionFeatures = QString::fromUtf8("\xe2\x80\x94 Fabulous new material-style design and animations.\n\xe2\x80\x94 This version already supports custom themes that are coming soon.\n\xe2\x80\x94 Pin important chats to the top of the list so that you never miss a new message (right click on a chat, then choose 'Pin to top').\n\xe2\x80\x94 Groups in common. A new option in your contacts' profiles that shows a list of all groups you share with that person."); } else if (!(cAlphaVersion() || cBetaVersion()) && Local::oldMapVersion() < 10018) { versionFeatures = langNewVersionText(); } else { diff --git a/Telegram/SourceFiles/boxes/stickersetbox.cpp b/Telegram/SourceFiles/boxes/stickersetbox.cpp index 12e7e40e7e35fd..1f12bd9e73759a 100644 --- a/Telegram/SourceFiles/boxes/stickersetbox.cpp +++ b/Telegram/SourceFiles/boxes/stickersetbox.cpp @@ -289,7 +289,7 @@ void StickerSetBox::Inner::mouseReleaseEvent(QMouseEvent *e) { if (_previewTimer.isActive()) { _previewTimer.stop(); int index = stickerFromGlobalPos(e->globalPos()); - if (index >= 0 && index < _pack.size()) { + if (index >= 0 && index < _pack.size() && !isMasksSet()) { if (auto main = App::main()) { if (main->onSendSticker(_pack.at(index))) { Ui::hideSettingsAndLayer(); diff --git a/Telegram/SourceFiles/codegen/style/generator.cpp b/Telegram/SourceFiles/codegen/style/generator.cpp index 40983ec0856638..f2e0b7b08dfc1f 100644 --- a/Telegram/SourceFiles/codegen/style/generator.cpp +++ b/Telegram/SourceFiles/codegen/style/generator.cpp @@ -1254,7 +1254,7 @@ bool Generator::writeSampleTheme(const QString &filepath) { auto fallbackIndex = paletteIndices_.value(colorFallbackName(variable.value), -1); auto colorString = paletteColorValue(color); if (fallbackIndex >= 0) { - auto fallbackVariable = module_.findVariableInModule(names[fallbackIndex], module_); + auto fallbackVariable = module_.findVariableInModule(names[fallbackIndex - 1], module_); if (!fallbackVariable || fallbackVariable->value.type().tag != structure::TypeTag::Color) { return false; } diff --git a/Telegram/SourceFiles/codegen/style/processor.cpp b/Telegram/SourceFiles/codegen/style/processor.cpp index 395644e3e8d58a..f486c3c6f87562 100644 --- a/Telegram/SourceFiles/codegen/style/processor.cpp +++ b/Telegram/SourceFiles/codegen/style/processor.cpp @@ -81,7 +81,7 @@ bool Processor::write(const structure::Module &module) const { if (!generator.writeSource()) { return false; } - auto themePath = srcFile.absoluteDir().absolutePath() + "/sample.tdesktop-theme"; + auto themePath = srcFile.absoluteDir().absolutePath() + "/default.tdesktop-theme"; if (options_.isPalette && !generator.writeSampleTheme(themePath)) { return false; } diff --git a/Telegram/SourceFiles/core/task_queue.cpp b/Telegram/SourceFiles/core/task_queue.cpp index 297fd09ed2acef..0835ddf0905458 100644 --- a/Telegram/SourceFiles/core/task_queue.cpp +++ b/Telegram/SourceFiles/core/task_queue.cpp @@ -195,7 +195,7 @@ TaskQueue *TaskQueue::TaskQueueList::TakeFirst(int list_index_) { void TaskQueue::TaskThreadPool::AddQueueTask(TaskQueue *queue, Task &&task) { QMutexLocker lock(&queues_mutex_); - queue->tasks_.push_back(new Task(std::move(task))); + queue->tasks_.push_back(new Task(std_::move(task))); auto list_was_empty = queue_list_.Empty(kAllQueuesList); auto threads_count = threads_.size(); auto all_threads_processing = (threads_count == tasks_in_process_); @@ -332,7 +332,7 @@ TaskQueue::TaskQueue(Type type, Priority priority) TaskQueue::~TaskQueue() { if (type_ != Type::Main && type_ != Type::Special) { - if (auto thread_pool = weak_thread_pool_.lock()) { + if (auto thread_pool = weak_thread_pool_.toStrongRef()) { thread_pool->RemoveQueue(this); } } @@ -344,12 +344,12 @@ TaskQueue::~TaskQueue() { void TaskQueue::Put(Task &&task) { if (type_ == Type::Main) { QMutexLocker lock(&tasks_mutex_); - tasks_.push_back(new Task(std::move(task))); + tasks_.push_back(new Task(std_::move(task))); Sandbox::MainThreadTaskAdded(); } else { t_assert(type_ != Type::Special); - TaskThreadPool::Instance()->AddQueueTask(this, std::move(task)); + TaskThreadPool::Instance()->AddQueueTask(this, std_::move(task)); } } diff --git a/Telegram/SourceFiles/core/utils.cpp b/Telegram/SourceFiles/core/utils.cpp index 7999b7a60d87d4..73ddbbb7c79d8f 100644 --- a/Telegram/SourceFiles/core/utils.cpp +++ b/Telegram/SourceFiles/core/utils.cpp @@ -938,41 +938,52 @@ QString rusKeyboardLayoutSwitch(const QString &from) { QStringList MimeType::globPatterns() const { switch (_type) { - case WebP: return QStringList(qsl("*.webp")); + case Known::WebP: return QStringList(qsl("*.webp")); + case Known::TDesktopTheme: return QStringList(qsl("*.tdesktop-theme")); default: break; } return _typeStruct.globPatterns(); } QString MimeType::filterString() const { switch (_type) { - case WebP: return qsl("WebP image (*.webp)"); + case Known::WebP: return qsl("WebP image (*.webp)"); + case Known::TDesktopTheme: return qsl("Theme files (*.tdesktop-theme)"); default: break; } return _typeStruct.filterString(); } QString MimeType::name() const { switch (_type) { - case WebP: return qsl("image/webp"); + case Known::WebP: return qsl("image/webp"); + case Known::TDesktopTheme: return qsl("application/x-tdesktop-theme"); default: break; } return _typeStruct.name(); } MimeType mimeTypeForName(const QString &mime) { - if (mime == qsl("image/webp")) return MimeType(MimeType::WebP); + if (mime == qsl("image/webp")) { + return MimeType(MimeType::Known::WebP); + } else if (mime == qsl("application/x-tdesktop-theme")) { + return MimeType(MimeType::Known::TDesktopTheme); + } return MimeType(QMimeDatabase().mimeTypeForName(mime)); } MimeType mimeTypeForFile(const QFileInfo &file) { QString path = file.absoluteFilePath(); - if (path.endsWith(qsl(".webp"), Qt::CaseInsensitive)) return MimeType(MimeType::WebP); + if (path.endsWith(qsl(".webp"), Qt::CaseInsensitive)) { + return MimeType(MimeType::Known::WebP); + } else if (path.endsWith(qsl(".tdesktop-theme"), Qt::CaseInsensitive)) { + return MimeType(MimeType::Known::TDesktopTheme); + } { QFile f(path); if (f.open(QIODevice::ReadOnly)) { QByteArray magic = f.read(12); if (magic.size() >= 12) { if (!memcmp(magic.constData(), "RIFF", 4) && !memcmp(magic.constData() + 8, "WEBP", 4)) { - return MimeType(MimeType::WebP); + return MimeType(MimeType::Known::WebP); } } f.close(); @@ -984,7 +995,7 @@ MimeType mimeTypeForFile(const QFileInfo &file) { MimeType mimeTypeForData(const QByteArray &data) { if (data.size() >= 12) { if (!memcmp(data.constData(), "RIFF", 4) && !memcmp(data.constData() + 8, "WEBP", 4)) { - return MimeType(MimeType::WebP); + return MimeType(MimeType::Known::WebP); } } return MimeType(QMimeDatabase().mimeTypeForData(data)); diff --git a/Telegram/SourceFiles/core/utils.h b/Telegram/SourceFiles/core/utils.h index 7626b9efced71d..9a588d2a6dbf2d 100644 --- a/Telegram/SourceFiles/core/utils.h +++ b/Telegram/SourceFiles/core/utils.h @@ -429,24 +429,23 @@ inline QString strMakeFromLetters(const uint32 *letters, int32 len) { class MimeType { public: - - enum TypeEnum { + enum class Known { Unknown, + TDesktopTheme, WebP, }; - MimeType(const QMimeType &type) : _typeStruct(type), _type(Unknown) { + MimeType(const QMimeType &type) : _typeStruct(type) { } - MimeType(TypeEnum type) : _type(type) { + MimeType(Known type) : _type(type) { } QStringList globPatterns() const; QString filterString() const; QString name() const; private: - QMimeType _typeStruct; - TypeEnum _type; + Known _type = Known::Unknown; }; diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h index 065a17a3b6dfc4..a9e34306f0ac58 100644 --- a/Telegram/SourceFiles/core/version.h +++ b/Telegram/SourceFiles/core/version.h @@ -22,9 +22,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "core/utils.h" -#define BETA_VERSION_MACRO (10020007ULL) +#define BETA_VERSION_MACRO (0ULL) -constexpr int AppVersion = 10020; -constexpr str_const AppVersionStr = "0.10.20"; -constexpr bool AppAlphaVersion = false; +constexpr int AppVersion = 10021; +constexpr str_const AppVersionStr = "0.10.21"; +constexpr bool AppAlphaVersion = true; constexpr uint64 AppBetaVersion = BETA_VERSION_MACRO; diff --git a/Telegram/SourceFiles/history/history_media_types.cpp b/Telegram/SourceFiles/history/history_media_types.cpp index a41fb4daa631c3..9da212d63b8b18 100644 --- a/Telegram/SourceFiles/history/history_media_types.cpp +++ b/Telegram/SourceFiles/history/history_media_types.cpp @@ -91,10 +91,10 @@ namespace { int32 documentMaxStatusWidth(DocumentData *document) { int32 result = st::normalFont->width(formatDownloadText(document->size, document->size)); - if (SongData *song = document->song()) { + if (auto song = document->song()) { result = qMax(result, st::normalFont->width(formatPlayedText(song->duration, song->duration))); result = qMax(result, st::normalFont->width(formatDurationAndSizeText(song->duration, document->size))); - } else if (VoiceData *voice = document->voice()) { + } else if (auto voice = document->voice()) { result = qMax(result, st::normalFont->width(formatPlayedText(voice->duration, voice->duration))); result = qMax(result, st::normalFont->width(formatDurationAndSizeText(voice->duration, document->size))); } else if (document->isVideo()) { @@ -1206,22 +1206,22 @@ void HistoryDocument::draw(Painter &p, const QRect &r, TextSelection selection, auto namewidth = _width - nameleft - nameright; if (auto voice = Get()) { - const VoiceWaveform *wf = 0; + const VoiceWaveform *wf = nullptr; uchar norm_value = 0; if (_data->voice()) { wf = &_data->voice()->waveform; if (wf->isEmpty()) { - wf = 0; + wf = nullptr; if (loaded) { Local::countVoiceWaveform(_data); } } else if (wf->at(0) < 0) { - wf = 0; + wf = nullptr; } else { norm_value = _data->voice()->wavemax; } } - float64 prg = voice->_playback ? voice->_playback->a_progress.current() : 0; + auto prg = voice->_playback ? voice->_playback->a_progress.current() : 0.; // rescale waveform by going in waveform.size * bar_count 1D grid auto &active = outbg ? (selected ? st::msgWaveformOutActiveSelected : st::msgWaveformOutActive) : (selected ? st::msgWaveformInActiveSelected : st::msgWaveformInActive); @@ -1232,7 +1232,8 @@ void HistoryDocument::draw(Painter &p, const QRect &r, TextSelection selection, } int32 bar_count = qMin(availw / int32(st::msgWaveformBar + st::msgWaveformSkip), wf_size); uchar max_value = 0; - int32 max_delta = st::msgWaveformMax - st::msgWaveformMin, bottom = st::msgFilePadding.top() + st::msgWaveformMax; + auto max_delta = st::msgWaveformMax - st::msgWaveformMin; + auto bottom = st::msgFilePadding.top() - topMinus + st::msgWaveformMax; p.setPen(Qt::NoPen); for (int32 i = 0, bar_x = 0, sum_i = 0; i < wf_size; ++i) { uchar value = wf ? wf->at(i) : 0; diff --git a/Telegram/SourceFiles/intro/intro.style b/Telegram/SourceFiles/intro/intro.style index 364149d4c20997..4f1acf3447c004 100644 --- a/Telegram/SourceFiles/intro/intro.style +++ b/Telegram/SourceFiles/intro/intro.style @@ -92,7 +92,7 @@ introStepHeight: 266px; introStepHeightAdd: 30px; introStepHeightFull: 590px; introSlideDuration: 200; -introCoverDuration: 300; +introCoverDuration: 200; introNextButton: RoundButton(defaultActiveButton) { width: 300px; diff --git a/Telegram/SourceFiles/intro/introphone.cpp b/Telegram/SourceFiles/intro/introphone.cpp index 681163c5ac0c01..09d7d8df8b9eb1 100644 --- a/Telegram/SourceFiles/intro/introphone.cpp +++ b/Telegram/SourceFiles/intro/introphone.cpp @@ -29,6 +29,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "ui/widgets/labels.h" #include "ui/effects/widget_fade_wrap.h" #include "core/click_handler_types.h" +#include "boxes/confirmbox.h" namespace Intro { @@ -210,7 +211,10 @@ bool PhoneWidget::phoneSubmitFail(const RPCError &error) { stopCheck(); _sentRequest = 0; auto &err = error.type(); - if (err == qstr("PHONE_NUMBER_INVALID")) { // show error + if (err == qstr("PHONE_NUMBER_FLOOD")) { + Ui::show(Box(lang(lng_error_phone_flood))); + return true; + } else if (err == qstr("PHONE_NUMBER_INVALID")) { // show error showPhoneError(lang(lng_bad_phone)); return true; } diff --git a/Telegram/SourceFiles/intro/introsignup.cpp b/Telegram/SourceFiles/intro/introsignup.cpp index c79beb7f33ff0b..06215a4ff74134 100644 --- a/Telegram/SourceFiles/intro/introsignup.cpp +++ b/Telegram/SourceFiles/intro/introsignup.cpp @@ -25,6 +25,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "styles/style_boxes.h" #include "ui/filedialog.h" #include "boxes/photocropbox.h" +#include "boxes/confirmbox.h" #include "lang.h" #include "application.h" #include "ui/widgets/buttons.h" @@ -170,7 +171,10 @@ bool SignupWidget::nameSubmitFail(const RPCError &error) { stopCheck(); auto &err = error.type(); - if (err == qstr("PHONE_NUMBER_INVALID") || err == qstr("PHONE_CODE_EXPIRED") || + if (err == qstr("PHONE_NUMBER_FLOOD")) { + Ui::show(Box(lang(lng_error_phone_flood))); + return true; + } else if (err == qstr("PHONE_NUMBER_INVALID") || err == qstr("PHONE_CODE_EXPIRED") || err == qstr("PHONE_CODE_EMPTY") || err == qstr("PHONE_CODE_INVALID") || err == qstr("PHONE_NUMBER_OCCUPIED")) { goBack(); diff --git a/Telegram/SourceFiles/localstorage.cpp b/Telegram/SourceFiles/localstorage.cpp index ba0780a9c368f8..8d6f6b5dcd0014 100644 --- a/Telegram/SourceFiles/localstorage.cpp +++ b/Telegram/SourceFiles/localstorage.cpp @@ -3664,6 +3664,11 @@ bool readBackground() { } _backgroundCanWrite = true; return true; + } else if (id == Window::Theme::kThemeBackground && pngData.isEmpty()) { + _backgroundCanWrite = false; + Window::Theme::Background()->setImage(id); + _backgroundCanWrite = true; + return true; } QImage image; diff --git a/Telegram/SourceFiles/window/window_theme.cpp b/Telegram/SourceFiles/window/window_theme.cpp index a7fc6bbaaae0fe..604f081bbc6d3f 100644 --- a/Telegram/SourceFiles/window/window_theme.cpp +++ b/Telegram/SourceFiles/window/window_theme.cpp @@ -509,6 +509,7 @@ void ChatBackground::keepApplied() { _id = kThemeBackground; _themeImage = _image.toImage(); _themeTile = _tile; + writeNewBackgroundSettings(); } else if (_id == internal::kTestingDefaultBackground) { _id = kDefaultBackground; _themeImage = QImage(); diff --git a/Telegram/build/version b/Telegram/build/version index 068790447028b4..d9c4aadb6348b1 100644 --- a/Telegram/build/version +++ b/Telegram/build/version @@ -1,6 +1,6 @@ -AppVersion 10020 +AppVersion 10021 AppVersionStrMajor 0.10 -AppVersionStrSmall 0.10.20 -AppVersionStr 0.10.20 -AlphaChannel 0 -BetaVersion 10020007 +AppVersionStrSmall 0.10.21 +AppVersionStr 0.10.21 +AlphaChannel 1 +BetaVersion 0