mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-19 07:37:11 +02:00
Show unmute button tooltip about space bar.
This commit is contained in:
parent
cb630c69f0
commit
d659200a42
5 changed files with 45 additions and 11 deletions
|
@ -2006,7 +2006,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
"lng_group_call_unmute_small" = "Unmute";
|
||||
"lng_group_call_more" = "More";
|
||||
"lng_group_call_unmute" = "Unmute";
|
||||
"lng_group_call_unmute_sub" = "or hold spacebar to talk";
|
||||
"lng_group_call_unmute_sub" = "Hold space bar to temporarily unmute.";
|
||||
"lng_group_call_you_are_live" = "You are Live";
|
||||
"lng_group_call_force_muted" = "Muted by admin";
|
||||
"lng_group_call_force_muted_sub" = "You are in Listen Only mode";
|
||||
|
|
|
@ -1254,3 +1254,9 @@ groupCallLargeVideo: GroupCallLargeVideo {
|
|||
|
||||
groupCallVideoSmallSkip: 4px;
|
||||
groupCallVideoLargeSkip: 6px;
|
||||
|
||||
groupCallTooltip: Tooltip(defaultTooltip) {
|
||||
textBg: groupCallMembersBg;
|
||||
textFg: groupCallMembersFg;
|
||||
textBorder: groupCallMembersBgOver;
|
||||
}
|
||||
|
|
|
@ -871,15 +871,7 @@ void Panel::setupRealMuteButtonState(not_null<Data::GroupCall*> real) {
|
|||
: mute == MuteState::Muted
|
||||
? tr::lng_group_call_unmute(tr::now)
|
||||
: tr::lng_group_call_you_are_live(tr::now)),
|
||||
.subtext = ((scheduleDate || wide)
|
||||
? QString()
|
||||
: state == GroupCall::InstanceState::Disconnected
|
||||
? QString()
|
||||
: mute == MuteState::ForceMuted
|
||||
? tr::lng_group_call_raise_hand_tip(tr::now)
|
||||
: mute == MuteState::RaisedHand
|
||||
? tr::lng_group_call_raised_hand_sub(tr::now)
|
||||
: mute == MuteState::Muted
|
||||
.tooltip = ((!scheduleDate && mute == MuteState::Muted)
|
||||
? tr::lng_group_call_unmute_sub(tr::now)
|
||||
: QString()),
|
||||
.type = (scheduleDate
|
||||
|
|
|
@ -696,6 +696,17 @@ void CallMuteButton::init() {
|
|||
const auto &button = _st->active.button;
|
||||
_content->resize(button.width, button.height);
|
||||
|
||||
_content->events(
|
||||
) | rpl::start_with_next([=](not_null<QEvent*> e) {
|
||||
if (e->type() == QEvent::MouseMove) {
|
||||
if (!_state.current().tooltip.isEmpty()) {
|
||||
Ui::Tooltip::Show(1000, this);
|
||||
}
|
||||
} else if (e->type() == QEvent::Leave) {
|
||||
Ui::Tooltip::Hide();
|
||||
}
|
||||
}, _content->lifetime());
|
||||
|
||||
rpl::combine(
|
||||
_radialInfo.rawShowProgress.value(),
|
||||
anim::Disables()
|
||||
|
@ -922,6 +933,24 @@ void CallMuteButton::iconAnimationCallback() {
|
|||
}
|
||||
}
|
||||
|
||||
QString CallMuteButton::tooltipText() const {
|
||||
return _state.current().tooltip;
|
||||
}
|
||||
|
||||
QPoint CallMuteButton::tooltipPos() const {
|
||||
return QCursor::pos();
|
||||
}
|
||||
|
||||
bool CallMuteButton::tooltipWindowActive() const {
|
||||
return Ui::AppInFocus()
|
||||
&& Ui::InFocusChain(_content->window())
|
||||
&& _content->mapToGlobal(_content->rect()).contains(QCursor::pos());
|
||||
}
|
||||
|
||||
const style::Tooltip *CallMuteButton::tooltipSt() const {
|
||||
return &st::groupCallTooltip;
|
||||
}
|
||||
|
||||
void CallMuteButton::updateLabelsGeometry() {
|
||||
updateLabelGeometry(_content->geometry(), _label->size());
|
||||
updateCenterLabelGeometry(_content->geometry(), _centerLabel->size());
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "ui/effects/cross_line.h"
|
||||
#include "ui/effects/gradient.h"
|
||||
#include "ui/effects/radial_animation.h"
|
||||
#include "ui/widgets/tooltip.h"
|
||||
#include "lottie/lottie_icon.h"
|
||||
|
||||
namespace style {
|
||||
|
@ -46,10 +47,11 @@ enum class CallMuteButtonType {
|
|||
struct CallMuteButtonState {
|
||||
QString text;
|
||||
QString subtext;
|
||||
QString tooltip;
|
||||
CallMuteButtonType type = CallMuteButtonType::Connecting;
|
||||
};
|
||||
|
||||
class CallMuteButton final {
|
||||
class CallMuteButton final : private AbstractTooltipShower {
|
||||
public:
|
||||
explicit CallMuteButton(
|
||||
not_null<RpWidget*> parent,
|
||||
|
@ -143,6 +145,11 @@ private:
|
|||
void startIconState(const IconState &state);
|
||||
void iconAnimationCallback();
|
||||
|
||||
QString tooltipText() const override;
|
||||
QPoint tooltipPos() const override;
|
||||
bool tooltipWindowActive() const override;
|
||||
const style::Tooltip *tooltipSt() const override;
|
||||
|
||||
[[nodiscard]] static HandleMouseState HandleMouseStateFromType(
|
||||
CallMuteButtonType type);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue