mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-04-01 23:00:58 +00:00
Blue online in top bar in conversation with user. Profile styles fix.
This commit is contained in:
parent
b93e5ba32a
commit
5ffc5dd218
@ -161,7 +161,7 @@ defaultLeftOutlineButton: OutlineButton {
|
|||||||
textFgOver: windowActiveTextFg;
|
textFgOver: windowActiveTextFg;
|
||||||
|
|
||||||
font: normalFont;
|
font: normalFont;
|
||||||
padding: margins(11px, 6px, 11px, 6px);
|
padding: margins(11px, 5px, 11px, 5px);
|
||||||
}
|
}
|
||||||
attentionLeftOutlineButton: OutlineButton(defaultLeftOutlineButton) {
|
attentionLeftOutlineButton: OutlineButton(defaultLeftOutlineButton) {
|
||||||
outlineFgOver: #e43f3f;
|
outlineFgOver: #e43f3f;
|
||||||
@ -237,19 +237,24 @@ defaultCheckbox: Checkbox {
|
|||||||
checkFgOver: #b3b3b3;
|
checkFgOver: #b3b3b3;
|
||||||
checkFgActive: #40ace3;
|
checkFgActive: #40ace3;
|
||||||
|
|
||||||
width: -46px;
|
width: -44px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
|
|
||||||
textPosition: point(34px, 0px);
|
textPosition: point(32px, 2px);
|
||||||
diameter: 22px;
|
diameter: 22px;
|
||||||
thickness: 2px;
|
thickness: 2px;
|
||||||
checkIcon: icon {
|
checkIcon: icon {
|
||||||
{ "default_checkbox_check", #ffffff, point(4px, 7px) }
|
{ "default_checkbox_check", #ffffff, point(4px, 7px) }
|
||||||
};
|
};
|
||||||
|
|
||||||
font: boxTextFont;
|
font: normalFont;
|
||||||
duration: 120;
|
duration: 120;
|
||||||
}
|
}
|
||||||
|
defaultBoxCheckbox: Checkbox {
|
||||||
|
width: -46px;
|
||||||
|
textPosition: point(34px, 0px);
|
||||||
|
font: boxTextFont;
|
||||||
|
}
|
||||||
defaultRadiobutton: Radiobutton {
|
defaultRadiobutton: Radiobutton {
|
||||||
textFg: black;
|
textFg: black;
|
||||||
textBg: white;
|
textBg: white;
|
||||||
@ -397,8 +402,9 @@ titleRed: #ee4928;
|
|||||||
titleGray: #777;
|
titleGray: #777;
|
||||||
titleGreen: #41a903;
|
titleGreen: #41a903;
|
||||||
|
|
||||||
titleStatusColor: #999;
|
titleStatusFg: #999;
|
||||||
titleTypingColor: #0080c0;
|
titleStatusActiveFg: #0080c0;
|
||||||
|
titleTypingFg: #0080c0;
|
||||||
|
|
||||||
statusFont: font(fsize);
|
statusFont: font(fsize);
|
||||||
versionColor: #777;
|
versionColor: #777;
|
||||||
@ -1561,7 +1567,7 @@ contactsNewItemTop: 18px;
|
|||||||
contactsNewItemFg: #4b82af;
|
contactsNewItemFg: #4b82af;
|
||||||
contactsAboutBg: #f7f7f7;
|
contactsAboutBg: #f7f7f7;
|
||||||
contactsAboutShadow: #0000001F;
|
contactsAboutShadow: #0000001F;
|
||||||
contactsAdminCheckbox: Checkbox(defaultCheckbox) {
|
contactsAdminCheckbox: Checkbox(defaultBoxCheckbox) {
|
||||||
font: semiboldFont;
|
font: semiboldFont;
|
||||||
textBg: #f7f7f7;
|
textBg: #f7f7f7;
|
||||||
textPosition: point(34px, 1px);
|
textPosition: point(34px, 1px);
|
||||||
@ -1638,8 +1644,8 @@ confirmCompressedSkip: 10px;
|
|||||||
profileMaxWidth: 410px;
|
profileMaxWidth: 410px;
|
||||||
profilePadding: margins(28px, 30px, 28px, 0px);
|
profilePadding: margins(28px, 30px, 28px, 0px);
|
||||||
|
|
||||||
profileOnlineColor: titleTypingColor;
|
profileOnlineFg: titleStatusActiveFg;
|
||||||
profileOfflineColor: titleStatusColor;
|
profileOfflineFg: titleStatusFg;
|
||||||
|
|
||||||
membersPadding: margins(0px, 10px, 0px, 10px);
|
membersPadding: margins(0px, 10px, 0px, 10px);
|
||||||
|
|
||||||
|
@ -1161,7 +1161,7 @@ EditChannelBox::EditChannelBox(ChannelData *channel) : AbstractBox()
|
|||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton)
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton)
|
||||||
, _title(this, st::defaultInputField, lang(lng_dlg_new_channel_name), _channel->name)
|
, _title(this, st::defaultInputField, lang(lng_dlg_new_channel_name), _channel->name)
|
||||||
, _description(this, st::newGroupDescription, lang(lng_create_group_description), _channel->about())
|
, _description(this, st::newGroupDescription, lang(lng_create_group_description), _channel->about())
|
||||||
, _sign(this, lang(lng_edit_sign_messages), channel->addsSignature())
|
, _sign(this, lang(lng_edit_sign_messages), channel->addsSignature(), st::defaultBoxCheckbox)
|
||||||
, _publicLink(this, lang(channel->isPublic() ? lng_profile_edit_public_link : lng_profile_create_public_link), st::defaultBoxLinkButton)
|
, _publicLink(this, lang(channel->isPublic() ? lng_profile_edit_public_link : lng_profile_create_public_link), st::defaultBoxLinkButton)
|
||||||
, _saveTitleRequestId(0)
|
, _saveTitleRequestId(0)
|
||||||
, _saveDescriptionRequestId(0)
|
, _saveDescriptionRequestId(0)
|
||||||
|
@ -382,7 +382,7 @@ PinMessageBox::PinMessageBox(ChannelData *channel, MsgId msgId) : AbstractBox(st
|
|||||||
, _channel(channel)
|
, _channel(channel)
|
||||||
, _msgId(msgId)
|
, _msgId(msgId)
|
||||||
, _text(this, lang(lng_pinned_pin_sure), FlatLabel::InitType::Simple, st::boxLabel)
|
, _text(this, lang(lng_pinned_pin_sure), FlatLabel::InitType::Simple, st::boxLabel)
|
||||||
, _notify(this, lang(lng_pinned_notify), true)
|
, _notify(this, lang(lng_pinned_notify), true, st::defaultBoxCheckbox)
|
||||||
, _pin(this, lang(lng_pinned_pin), st::defaultBoxButton)
|
, _pin(this, lang(lng_pinned_pin), st::defaultBoxButton)
|
||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
||||||
_text.resizeToWidth(st::boxWidth - st::boxPadding.left() - st::boxButtonPadding.right());
|
_text.resizeToWidth(st::boxWidth - st::boxPadding.left() - st::boxButtonPadding.right());
|
||||||
@ -441,9 +441,9 @@ RichDeleteMessageBox::RichDeleteMessageBox(ChannelData *channel, UserData *from,
|
|||||||
, _from(from)
|
, _from(from)
|
||||||
, _msgId(msgId)
|
, _msgId(msgId)
|
||||||
, _text(this, lang(lng_selected_delete_sure_this), FlatLabel::InitType::Simple, st::boxLabel)
|
, _text(this, lang(lng_selected_delete_sure_this), FlatLabel::InitType::Simple, st::boxLabel)
|
||||||
, _banUser(this, lang(lng_ban_user), false)
|
, _banUser(this, lang(lng_ban_user), false, st::defaultBoxCheckbox)
|
||||||
, _reportSpam(this, lang(lng_report_spam), false)
|
, _reportSpam(this, lang(lng_report_spam), false, st::defaultBoxCheckbox)
|
||||||
, _deleteAll(this, lang(lng_delete_all_from), false)
|
, _deleteAll(this, lang(lng_delete_all_from), false, st::defaultBoxCheckbox)
|
||||||
, _delete(this, lang(lng_box_delete), st::defaultBoxButton)
|
, _delete(this, lang(lng_box_delete), st::defaultBoxButton)
|
||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
||||||
t_assert(_channel != nullptr);
|
t_assert(_channel != nullptr);
|
||||||
|
@ -35,7 +35,7 @@ ConnectionBox::ConnectionBox() : AbstractBox(st::boxWidth)
|
|||||||
, _autoRadio(this, qsl("conn_type"), dbictAuto, lang(lng_connection_auto_rb), (cConnectionType() == dbictAuto))
|
, _autoRadio(this, qsl("conn_type"), dbictAuto, lang(lng_connection_auto_rb), (cConnectionType() == dbictAuto))
|
||||||
, _httpProxyRadio(this, qsl("conn_type"), dbictHttpProxy, lang(lng_connection_http_proxy_rb), (cConnectionType() == dbictHttpProxy))
|
, _httpProxyRadio(this, qsl("conn_type"), dbictHttpProxy, lang(lng_connection_http_proxy_rb), (cConnectionType() == dbictHttpProxy))
|
||||||
, _tcpProxyRadio(this, qsl("conn_type"), dbictTcpProxy, lang(lng_connection_tcp_proxy_rb), (cConnectionType() == dbictTcpProxy))
|
, _tcpProxyRadio(this, qsl("conn_type"), dbictTcpProxy, lang(lng_connection_tcp_proxy_rb), (cConnectionType() == dbictTcpProxy))
|
||||||
, _tryIPv6(this, lang(lng_connection_try_ipv6), cTryIPv6())
|
, _tryIPv6(this, lang(lng_connection_try_ipv6), cTryIPv6(), st::defaultBoxCheckbox)
|
||||||
, _save(this, lang(lng_connection_save), st::defaultBoxButton)
|
, _save(this, lang(lng_connection_save), st::defaultBoxButton)
|
||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
||||||
|
|
||||||
@ -223,14 +223,14 @@ void ConnectionBox::onSave() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AutoDownloadBox::AutoDownloadBox() : AbstractBox(st::boxWidth)
|
AutoDownloadBox::AutoDownloadBox() : AbstractBox(st::boxWidth)
|
||||||
, _photoPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadPhoto() & dbiadNoPrivate))
|
, _photoPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadPhoto() & dbiadNoPrivate), st::defaultBoxCheckbox)
|
||||||
, _photoGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadPhoto() & dbiadNoGroups))
|
, _photoGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadPhoto() & dbiadNoGroups), st::defaultBoxCheckbox)
|
||||||
, _audioPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadAudio() & dbiadNoPrivate))
|
, _audioPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadAudio() & dbiadNoPrivate), st::defaultBoxCheckbox)
|
||||||
, _audioGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadAudio() & dbiadNoGroups))
|
, _audioGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadAudio() & dbiadNoGroups), st::defaultBoxCheckbox)
|
||||||
, _gifPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadGif() & dbiadNoPrivate))
|
, _gifPrivate(this, lang(lng_media_auto_private_chats), !(cAutoDownloadGif() & dbiadNoPrivate), st::defaultBoxCheckbox)
|
||||||
, _gifGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadGif() & dbiadNoGroups))
|
, _gifGroups(this, lang(lng_media_auto_groups), !(cAutoDownloadGif() & dbiadNoGroups), st::defaultBoxCheckbox)
|
||||||
, _gifPlay(this, lang(lng_media_auto_play), cAutoPlayGif())
|
, _gifPlay(this, lang(lng_media_auto_play), cAutoPlayGif(), st::defaultBoxCheckbox)
|
||||||
, _sectionHeight(st::boxTitleHeight + 2 * (st::defaultCheckbox.height + st::setLittleSkip))
|
, _sectionHeight(st::boxTitleHeight + 2 * (st::defaultBoxCheckbox.height + st::setLittleSkip))
|
||||||
, _save(this, lang(lng_connection_save), st::defaultBoxButton)
|
, _save(this, lang(lng_connection_save), st::defaultBoxButton)
|
||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton) {
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ PhotoSendBox::PhotoSendBox(const FileLoadResultPtr &file) : AbstractBox(st::boxW
|
|||||||
, _animated(false)
|
, _animated(false)
|
||||||
, _caption(this, st::confirmCaptionArea, lang(lng_photo_caption))
|
, _caption(this, st::confirmCaptionArea, lang(lng_photo_caption))
|
||||||
, _compressedFromSettings(_file->type == PrepareAuto)
|
, _compressedFromSettings(_file->type == PrepareAuto)
|
||||||
, _compressed(this, lang(lng_send_image_compressed), _compressedFromSettings ? cCompressPastedImage() : true)
|
, _compressed(this, lang(lng_send_image_compressed), _compressedFromSettings ? cCompressPastedImage() : true, st::defaultBoxCheckbox)
|
||||||
, _send(this, lang(lng_send_button), st::defaultBoxButton)
|
, _send(this, lang(lng_send_button), st::defaultBoxButton)
|
||||||
, _cancel(this, lang(lng_cancel), st::cancelBoxButton)
|
, _cancel(this, lang(lng_cancel), st::cancelBoxButton)
|
||||||
, _thumbx(0)
|
, _thumbx(0)
|
||||||
|
@ -5958,10 +5958,10 @@ void HistoryWidget::paintTopBar(Painter &p, float64 over, int32 decreaseWidth) {
|
|||||||
QRect rectForName(st::topBarForwardPadding.left() + increaseLeft, st::topBarForwardPadding.top(), width() - decreaseWidth - st::topBarForwardPadding.left() - st::topBarForwardPadding.right(), st::msgNameFont->height);
|
QRect rectForName(st::topBarForwardPadding.left() + increaseLeft, st::topBarForwardPadding.top(), width() - decreaseWidth - st::topBarForwardPadding.left() - st::topBarForwardPadding.right(), st::msgNameFont->height);
|
||||||
p.setFont(st::dialogsTextFont);
|
p.setFont(st::dialogsTextFont);
|
||||||
if (_history->typing.isEmpty() && _history->sendActions.isEmpty()) {
|
if (_history->typing.isEmpty() && _history->sendActions.isEmpty()) {
|
||||||
p.setPen(st::titleStatusColor->p);
|
p.setPen(_titlePeerTextOnline ? st::titleStatusActiveFg : st::titleStatusFg);
|
||||||
p.drawText(rectForName.x(), st::topBarHeight - st::topBarForwardPadding.bottom() - st::dialogsTextFont->height + st::dialogsTextFont->ascent, _titlePeerText);
|
p.drawText(rectForName.x(), st::topBarHeight - st::topBarForwardPadding.bottom() - st::dialogsTextFont->height + st::dialogsTextFont->ascent, _titlePeerText);
|
||||||
} else {
|
} else {
|
||||||
p.setPen(st::titleTypingColor->p);
|
p.setPen(st::titleTypingFg);
|
||||||
_history->typingText.drawElided(p, rectForName.x(), st::topBarHeight - st::topBarForwardPadding.bottom() - st::dialogsTextFont->height, rectForName.width());
|
_history->typingText.drawElided(p, rectForName.x(), st::topBarHeight - st::topBarForwardPadding.bottom() - st::dialogsTextFont->height, rectForName.width());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5990,8 +5990,10 @@ void HistoryWidget::updateOnlineDisplay(int32 x, int32 w) {
|
|||||||
|
|
||||||
QString text;
|
QString text;
|
||||||
int32 t = unixtime();
|
int32 t = unixtime();
|
||||||
if (_peer->isUser()) {
|
bool titlePeerTextOnline = false;
|
||||||
text = App::onlineText(_peer->asUser(), t);
|
if (auto user = _peer->asUser()) {
|
||||||
|
text = App::onlineText(user, t);
|
||||||
|
titlePeerTextOnline = App::onlineColorUse(user, t);
|
||||||
} else if (_peer->isChat()) {
|
} else if (_peer->isChat()) {
|
||||||
ChatData *chat = _peer->asChat();
|
ChatData *chat = _peer->asChat();
|
||||||
if (!chat->amIn()) {
|
if (!chat->amIn()) {
|
||||||
@ -6037,6 +6039,7 @@ void HistoryWidget::updateOnlineDisplay(int32 x, int32 w) {
|
|||||||
}
|
}
|
||||||
if (_titlePeerText != text) {
|
if (_titlePeerText != text) {
|
||||||
_titlePeerText = text;
|
_titlePeerText = text;
|
||||||
|
_titlePeerTextOnline = titlePeerTextOnline;
|
||||||
_titlePeerTextWidth = st::dialogsTextFont->width(_titlePeerText);
|
_titlePeerTextWidth = st::dialogsTextFont->width(_titlePeerText);
|
||||||
if (App::main()) {
|
if (App::main()) {
|
||||||
App::main()->topBar()->update();
|
App::main()->topBar()->update();
|
||||||
|
@ -1118,7 +1118,8 @@ private:
|
|||||||
uint64 _confirmWithTextId = 0;
|
uint64 _confirmWithTextId = 0;
|
||||||
|
|
||||||
QString _titlePeerText;
|
QString _titlePeerText;
|
||||||
int32 _titlePeerTextWidth = 0;
|
bool _titlePeerTextOnline = false;
|
||||||
|
int _titlePeerTextWidth = 0;
|
||||||
|
|
||||||
Animation _a_show;
|
Animation _a_show;
|
||||||
QPixmap _cacheUnder, _cacheOver;
|
QPixmap _cacheUnder, _cacheOver;
|
||||||
|
@ -118,8 +118,8 @@ profileBlockWideWidthMin: 300px;
|
|||||||
profileBlockWideWidthMax: 340px;
|
profileBlockWideWidthMax: 340px;
|
||||||
profileBlockMarginTop: 14px;
|
profileBlockMarginTop: 14px;
|
||||||
profileBlockMarginRight: 10px;
|
profileBlockMarginRight: 10px;
|
||||||
profileBlockMarginBottom: 4px;
|
profileBlockMarginBottom: 7px;
|
||||||
profileBlockTitleHeight: 25px;
|
profileBlockTitleHeight: 24px;
|
||||||
profileBlockTitleFont: font(14px semibold);
|
profileBlockTitleFont: font(14px semibold);
|
||||||
profileBlockTitleFg: #333333;
|
profileBlockTitleFg: #333333;
|
||||||
profileBlockTitlePosition: point(24px, 0px);
|
profileBlockTitlePosition: point(24px, 0px);
|
||||||
@ -137,6 +137,9 @@ profileBlockOneLineTextPart: flatLabel(profileBlockTextPart) {
|
|||||||
profileBlockOneLineSkip: 9px;
|
profileBlockOneLineSkip: 9px;
|
||||||
profileBlockOneLineWidthMax: 240px;
|
profileBlockOneLineWidthMax: 240px;
|
||||||
|
|
||||||
|
profileEnableNotificationsTop: 7px;
|
||||||
|
profileSettingsBlockSkip: 8px;
|
||||||
|
|
||||||
profileInviteLinkText: flatLabel(profileBlockTextPart) {
|
profileInviteLinkText: flatLabel(profileBlockTextPart) {
|
||||||
width: 1px; // Required for BreakEverywhere
|
width: 1px; // Required for BreakEverywhere
|
||||||
}
|
}
|
||||||
|
@ -78,10 +78,10 @@ void SettingsWidget::notifyPeerUpdated(const Notify::PeerUpdate &update) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int SettingsWidget::resizeGetHeight(int newWidth) {
|
int SettingsWidget::resizeGetHeight(int newWidth) {
|
||||||
int newHeight = contentTop();
|
int newHeight = contentTop() + st::profileEnableNotificationsTop;
|
||||||
|
|
||||||
_enableNotifications->moveToLeft(st::profileBlockTitlePosition.x(), newHeight);
|
_enableNotifications->moveToLeft(st::profileBlockTitlePosition.x(), newHeight);
|
||||||
newHeight += _enableNotifications->height() + st::profileBlockOneLineSkip;
|
newHeight += _enableNotifications->height() + st::profileSettingsBlockSkip;
|
||||||
|
|
||||||
auto moveLink = [&newHeight, newWidth](Ui::LeftOutlineButton *button) {
|
auto moveLink = [&newHeight, newWidth](Ui::LeftOutlineButton *button) {
|
||||||
if (!button) return;
|
if (!button) return;
|
||||||
|
@ -426,7 +426,7 @@ void SettingsInner::paintEvent(QPaintEvent *e) {
|
|||||||
|
|
||||||
p.setFont(st::setStatusFont->f);
|
p.setFont(st::setStatusFont->f);
|
||||||
bool connecting = App::wnd()->connectingVisible();
|
bool connecting = App::wnd()->connectingVisible();
|
||||||
p.setPen((connecting ? st::profileOfflineColor : st::profileOnlineColor)->p);
|
p.setPen((connecting ? st::profileOfflineFg : st::profileOnlineFg)->p);
|
||||||
p.drawText(_uploadPhoto.x() + st::setStatusLeft, top + st::setStatusTop + st::setStatusFont->ascent, lang(connecting ? lng_status_connecting : lng_status_online));
|
p.drawText(_uploadPhoto.x() + st::setStatusLeft, top + st::setStatusTop + st::setStatusFont->ascent, lang(connecting ? lng_status_connecting : lng_status_online));
|
||||||
|
|
||||||
top += st::setPhotoSize;
|
top += st::setPhotoSize;
|
||||||
|
Loading…
Reference in New Issue
Block a user