Skip to content

Commit e7e7ee3

Browse files
authored
fix: bring back grid item tooltip (#817)
1 parent eb025ef commit e7e7ee3

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

vicinae/src/extensions/vicinae/search-emojis/emoji-browser-model.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22
#include "ui/vlist/common/simple-grid-model.hpp"
33
#include "services/emoji-service/emoji-service.hpp"
4+
#include "utils.hpp"
45

56
class EmojiBrowserModel : public vicinae::ui::SimpleGridModel<EmojiData, int> {
67
public:
@@ -19,7 +20,8 @@ class EmojiBrowserModel : public vicinae::ui::SimpleGridModel<EmojiData, int> {
1920
void setDisplayMode(DisplayMode mode) { m_root = mode == DisplayMode::Root; }
2021

2122
GridData createItemData(const EmojiData &item) const override {
22-
return {.icon = ImageURL::emoji(QString::fromUtf8(item.emoji.data(), item.emoji.size()))};
23+
return {.icon = ImageURL::emoji(qStringFromStdView(item.emoji)),
24+
.tooltip = qStringFromStdView(item.name)};
2325
}
2426

2527
VListModel::StableID stableId(const EmojiData &item, int sectionId) const override {

vicinae/src/ui/omni-grid/grid-item-content-widget.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "theme.hpp"
44
#include "theme/colors.hpp"
55
#include "ui/omni-painter/omni-painter.hpp"
6+
#include "ui/tooltip/tooltip.hpp"
67
#include <absl/strings/internal/str_format/extension.h>
78
#include <qnamespace.h>
89
#include <qwidget.h>
@@ -75,7 +76,7 @@ void GridItemContentWidget::recalculate() {
7576
void GridItemContentWidget::mousePressEvent(QMouseEvent *event) { emit clicked(); }
7677
void GridItemContentWidget::mouseDoubleClickEvent(QMouseEvent *event) { emit doubleClicked(); }
7778

78-
void GridItemContentWidget::hideEvent(QHideEvent *event) { /*m_tooltip->hide();*/ }
79+
void GridItemContentWidget::hideEvent(QHideEvent *event) { m_tooltip->hide(); }
7980

8081
QSize GridItemContentWidget::innerWidgetSize() const {
8182
int inset = insetForSize(m_inset, size());
@@ -116,17 +117,17 @@ void GridItemContentWidget::setInset(Inset inset) {
116117
update();
117118
}
118119

119-
void GridItemContentWidget::hideTooltip() { /* m_tooltip->hide();*/ }
120+
void GridItemContentWidget::hideTooltip() { m_tooltip->hide(); }
120121

121122
void GridItemContentWidget::showTooltip() {}
122123

123-
void GridItemContentWidget::setTooltipText(const QString &text) { /*m_tooltip->setText(text);*/ }
124+
void GridItemContentWidget::setTooltipText(const QString &text) { m_tooltip->setText(text); }
124125

125126
GridItemContentWidget::GridItemContentWidget()
126-
: m_widget(nullptr), m_selected(false), m_tooltip(nullptr), m_inset(Inset::Small) {
127+
: m_widget(nullptr), m_selected(false), m_tooltip(new TooltipWidget), m_inset(Inset::Small) {
127128
setAttribute(Qt::WA_Hover);
128-
// m_tooltip->hide();
129-
// m_tooltip->setTarget(this);
129+
m_tooltip->hide();
130+
m_tooltip->setTarget(this);
130131
}
131132

132-
GridItemContentWidget::~GridItemContentWidget() { /*m_tooltip->deleteLater();*/ }
133+
GridItemContentWidget::~GridItemContentWidget() { m_tooltip->deleteLater(); }

vicinae/src/ui/tooltip/tooltip.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ bool TooltipWidget::eventFilter(QObject *watched, QEvent *event) {
77
if (watched != m_target) return QWidget::eventFilter(watched, event);
88

99
if (event->type() == QEvent::HoverEnter) {
10-
if (m_target->isVisible()) { show(); }
10+
if (m_target->isVisible() && m_content) { show(); }
1111
}
1212
if (event->type() == QEvent::HoverLeave) { hide(); }
1313
if (event->type() == QEvent::Hide) { hide(); }

vicinae/src/ui/vlist/common/simple-grid-model.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class SimpleGridModel : public vicinae::ui::GridModel<ItemType, SectionId> {
1414
ImageURL icon;
1515
std::optional<QString> title;
1616
std::optional<QString> subtitle;
17+
std::optional<QString> tooltip;
1718
};
1819

1920
virtual GridData createItemData(const ItemType &item) const = 0;
@@ -63,6 +64,7 @@ class SimpleGridModel : public vicinae::ui::GridModel<ItemType, SectionId> {
6364
w->setAspectRatio(1);
6465
w->setTitle(data.title.value_or(""));
6566
w->setSubtitle(data.subtitle.value_or(""));
67+
w->setTooltipText(data.tooltip.value_or(""));
6668
}
6769
};
6870
}; // namespace vicinae::ui

0 commit comments

Comments
 (0)