mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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_unmute_small" = "Unmute";
|
||||||
"lng_group_call_more" = "More";
|
"lng_group_call_more" = "More";
|
||||||
"lng_group_call_unmute" = "Unmute";
|
"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_you_are_live" = "You are Live";
|
||||||
"lng_group_call_force_muted" = "Muted by admin";
|
"lng_group_call_force_muted" = "Muted by admin";
|
||||||
"lng_group_call_force_muted_sub" = "You are in Listen Only mode";
|
"lng_group_call_force_muted_sub" = "You are in Listen Only mode";
|
||||||
|
|
|
@ -1254,3 +1254,9 @@ groupCallLargeVideo: GroupCallLargeVideo {
|
||||||
|
|
||||||
groupCallVideoSmallSkip: 4px;
|
groupCallVideoSmallSkip: 4px;
|
||||||
groupCallVideoLargeSkip: 6px;
|
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
|
: mute == MuteState::Muted
|
||||||
? tr::lng_group_call_unmute(tr::now)
|
? tr::lng_group_call_unmute(tr::now)
|
||||||
: tr::lng_group_call_you_are_live(tr::now)),
|
: tr::lng_group_call_you_are_live(tr::now)),
|
||||||
.subtext = ((scheduleDate || wide)
|
.tooltip = ((!scheduleDate && mute == MuteState::Muted)
|
||||||
? 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
|
|
||||||
? tr::lng_group_call_unmute_sub(tr::now)
|
? tr::lng_group_call_unmute_sub(tr::now)
|
||||||
: QString()),
|
: QString()),
|
||||||
.type = (scheduleDate
|
.type = (scheduleDate
|
||||||
|
|
|
@ -696,6 +696,17 @@ void CallMuteButton::init() {
|
||||||
const auto &button = _st->active.button;
|
const auto &button = _st->active.button;
|
||||||
_content->resize(button.width, button.height);
|
_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(
|
rpl::combine(
|
||||||
_radialInfo.rawShowProgress.value(),
|
_radialInfo.rawShowProgress.value(),
|
||||||
anim::Disables()
|
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() {
|
void CallMuteButton::updateLabelsGeometry() {
|
||||||
updateLabelGeometry(_content->geometry(), _label->size());
|
updateLabelGeometry(_content->geometry(), _label->size());
|
||||||
updateCenterLabelGeometry(_content->geometry(), _centerLabel->size());
|
updateCenterLabelGeometry(_content->geometry(), _centerLabel->size());
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "ui/effects/cross_line.h"
|
#include "ui/effects/cross_line.h"
|
||||||
#include "ui/effects/gradient.h"
|
#include "ui/effects/gradient.h"
|
||||||
#include "ui/effects/radial_animation.h"
|
#include "ui/effects/radial_animation.h"
|
||||||
|
#include "ui/widgets/tooltip.h"
|
||||||
#include "lottie/lottie_icon.h"
|
#include "lottie/lottie_icon.h"
|
||||||
|
|
||||||
namespace style {
|
namespace style {
|
||||||
|
@ -46,10 +47,11 @@ enum class CallMuteButtonType {
|
||||||
struct CallMuteButtonState {
|
struct CallMuteButtonState {
|
||||||
QString text;
|
QString text;
|
||||||
QString subtext;
|
QString subtext;
|
||||||
|
QString tooltip;
|
||||||
CallMuteButtonType type = CallMuteButtonType::Connecting;
|
CallMuteButtonType type = CallMuteButtonType::Connecting;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CallMuteButton final {
|
class CallMuteButton final : private AbstractTooltipShower {
|
||||||
public:
|
public:
|
||||||
explicit CallMuteButton(
|
explicit CallMuteButton(
|
||||||
not_null<RpWidget*> parent,
|
not_null<RpWidget*> parent,
|
||||||
|
@ -143,6 +145,11 @@ private:
|
||||||
void startIconState(const IconState &state);
|
void startIconState(const IconState &state);
|
||||||
void iconAnimationCallback();
|
void iconAnimationCallback();
|
||||||
|
|
||||||
|
QString tooltipText() const override;
|
||||||
|
QPoint tooltipPos() const override;
|
||||||
|
bool tooltipWindowActive() const override;
|
||||||
|
const style::Tooltip *tooltipSt() const override;
|
||||||
|
|
||||||
[[nodiscard]] static HandleMouseState HandleMouseStateFromType(
|
[[nodiscard]] static HandleMouseState HandleMouseStateFromType(
|
||||||
CallMuteButtonType type);
|
CallMuteButtonType type);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue