mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 15:43:55 +02:00
Added tooltip to balance label in credits settings for high values.
This commit is contained in:
parent
6336df2bd6
commit
42d6d0d58a
1 changed files with 42 additions and 1 deletions
|
@ -30,6 +30,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/discrete_sliders.h"
|
#include "ui/widgets/discrete_sliders.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
|
#include "ui/widgets/tooltip.h"
|
||||||
#include "ui/wrap/fade_wrap.h"
|
#include "ui/wrap/fade_wrap.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
@ -49,6 +50,45 @@ namespace {
|
||||||
|
|
||||||
using SectionCustomTopBarData = Info::Settings::SectionCustomTopBarData;
|
using SectionCustomTopBarData = Info::Settings::SectionCustomTopBarData;
|
||||||
|
|
||||||
|
class Balance final
|
||||||
|
: public Ui::RpWidget
|
||||||
|
, public Ui::AbstractTooltipShower {
|
||||||
|
public:
|
||||||
|
using Ui::RpWidget::RpWidget;
|
||||||
|
|
||||||
|
void setBalance(uint64 balance) {
|
||||||
|
_balance = balance;
|
||||||
|
_tooltip = Lang::FormatCountDecimal(balance);
|
||||||
|
}
|
||||||
|
|
||||||
|
void enterEventHook(QEnterEvent *e) override {
|
||||||
|
if (_balance >= 10'000) {
|
||||||
|
Ui::Tooltip::Show(1000, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void leaveEventHook(QEvent *e) override {
|
||||||
|
Ui::Tooltip::Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString tooltipText() const override {
|
||||||
|
return _tooltip;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPoint tooltipPos() const override {
|
||||||
|
return QCursor::pos();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool tooltipWindowActive() const override {
|
||||||
|
return Ui::AppInFocus() && Ui::InFocusChain(window());
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString _tooltip;
|
||||||
|
uint64 _balance = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
[[nodiscard]] uint64 UniqueIdFromOption(
|
[[nodiscard]] uint64 UniqueIdFromOption(
|
||||||
const Data::CreditTopupOption &d) {
|
const Data::CreditTopupOption &d) {
|
||||||
const auto string = QString::number(d.credits)
|
const auto string = QString::number(d.credits)
|
||||||
|
@ -516,7 +556,7 @@ QPointer<Ui::RpWidget> Credits::createPinnedToTop(
|
||||||
}
|
}
|
||||||
}, content->lifetime());
|
}, content->lifetime());
|
||||||
|
|
||||||
const auto balance = Ui::CreateChild<Ui::RpWidget>(content);
|
const auto balance = Ui::CreateChild<Balance>(content);
|
||||||
{
|
{
|
||||||
const auto starSize = _balanceStar.size() / style::DevicePixelRatio();
|
const auto starSize = _balanceStar.size() / style::DevicePixelRatio();
|
||||||
const auto label = balance->lifetime().make_state<Ui::Text::String>(
|
const auto label = balance->lifetime().make_state<Ui::Text::String>(
|
||||||
|
@ -541,6 +581,7 @@ QPointer<Ui::RpWidget> Credits::createPinnedToTop(
|
||||||
count->setText(
|
count->setText(
|
||||||
st::semiboldTextStyle,
|
st::semiboldTextStyle,
|
||||||
Lang::FormatCountToShort(slice.balance).string);
|
Lang::FormatCountToShort(slice.balance).string);
|
||||||
|
balance->setBalance(slice.balance);
|
||||||
resize();
|
resize();
|
||||||
});
|
});
|
||||||
balance->paintRequest(
|
balance->paintRequest(
|
||||||
|
|
Loading…
Add table
Reference in a new issue