mirror of
https://github.com/vale981/tdesktop
synced 2025-03-05 17:51:41 -05:00
Show URL tooltip in inline bot results.
This commit is contained in:
parent
d479442a63
commit
89fb121caf
3 changed files with 29 additions and 2 deletions
|
@ -189,7 +189,9 @@ ClickHandlerPtr ItemBase::getResultUrlHandler() const {
|
||||||
|
|
||||||
ClickHandlerPtr ItemBase::getResultContentUrlHandler() const {
|
ClickHandlerPtr ItemBase::getResultContentUrlHandler() const {
|
||||||
if (!_result->_content_url.isEmpty()) {
|
if (!_result->_content_url.isEmpty()) {
|
||||||
return std::make_shared<UrlClickHandler>(_result->_content_url);
|
return std::make_shared<UrlClickHandler>(
|
||||||
|
_result->_content_url,
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
return ClickHandlerPtr();
|
return ClickHandlerPtr();
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,6 +131,17 @@ int Inner::countHeight() {
|
||||||
return result + st::stickerPanPadding;
|
return result + st::stickerPanPadding;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Inner::tooltipText() const {
|
||||||
|
if (const auto lnk = ClickHandler::getActive()) {
|
||||||
|
return lnk->tooltip();
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QPoint Inner::tooltipPos() const {
|
||||||
|
return _lastMousePos;
|
||||||
|
}
|
||||||
|
|
||||||
Inner::~Inner() = default;
|
Inner::~Inner() = default;
|
||||||
|
|
||||||
void Inner::paintEvent(QPaintEvent *e) {
|
void Inner::paintEvent(QPaintEvent *e) {
|
||||||
|
@ -248,6 +259,7 @@ void Inner::mouseMoveEvent(QMouseEvent *e) {
|
||||||
|
|
||||||
void Inner::leaveEventHook(QEvent *e) {
|
void Inner::leaveEventHook(QEvent *e) {
|
||||||
clearSelection();
|
clearSelection();
|
||||||
|
Ui::Tooltip::Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Inner::leaveToChildEvent(QEvent *e, QWidget *child) {
|
void Inner::leaveToChildEvent(QEvent *e, QWidget *child) {
|
||||||
|
@ -683,6 +695,10 @@ void Inner::updateSelected() {
|
||||||
}
|
}
|
||||||
if (ClickHandler::setActive(lnk, lnkhost)) {
|
if (ClickHandler::setActive(lnk, lnkhost)) {
|
||||||
setCursor(lnk ? style::cur_pointer : style::cur_default);
|
setCursor(lnk ? style::cur_pointer : style::cur_default);
|
||||||
|
Ui::Tooltip::Hide();
|
||||||
|
}
|
||||||
|
if (lnk) {
|
||||||
|
Ui::Tooltip::Show(1000, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
|
||||||
#include "ui/rp_widget.h"
|
#include "ui/rp_widget.h"
|
||||||
#include "ui/abstract_button.h"
|
#include "ui/abstract_button.h"
|
||||||
|
#include "ui/widgets/tooltip.h"
|
||||||
#include "ui/effects/animations.h"
|
#include "ui/effects/animations.h"
|
||||||
#include "ui/effects/panel_animation.h"
|
#include "ui/effects/panel_animation.h"
|
||||||
#include "base/timer.h"
|
#include "base/timer.h"
|
||||||
|
@ -48,7 +49,11 @@ struct CacheEntry {
|
||||||
Results results;
|
Results results;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Inner : public TWidget, public Context, private base::Subscriber {
|
class Inner
|
||||||
|
: public TWidget
|
||||||
|
, public Ui::AbstractTooltipShower
|
||||||
|
, public Context
|
||||||
|
, private base::Subscriber {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -76,6 +81,10 @@ public:
|
||||||
_resultSelectedCallback = std::move(callback);
|
_resultSelectedCallback = std::move(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ui::AbstractTooltipShower interface.
|
||||||
|
QString tooltipText() const override;
|
||||||
|
QPoint tooltipPos() const override;
|
||||||
|
|
||||||
~Inner();
|
~Inner();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
Loading…
Add table
Reference in a new issue