mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Fix bug with emoji font setting and clean linting
This commit is contained in:
parent
778921be8a
commit
86888ee713
8 changed files with 42 additions and 41 deletions
|
@ -90,13 +90,13 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
|
|||
connect(sidebarActions_, &SideBarActions::joinRoom, this, &ChatPage::joinRoom);
|
||||
connect(sidebarActions_, &SideBarActions::createRoom, this, &ChatPage::createRoom);
|
||||
|
||||
user_info_widget_ = new UserInfoWidget(sideBar_);
|
||||
//user_mentions_widget_ = new UserMentionsWidget(sideBar_);
|
||||
room_list_ = new RoomList(sideBar_);
|
||||
user_info_widget_ = new UserInfoWidget(sideBar_);
|
||||
// user_mentions_widget_ = new UserMentionsWidget(sideBar_);
|
||||
room_list_ = new RoomList(sideBar_);
|
||||
connect(room_list_, &RoomList::joinRoom, this, &ChatPage::joinRoom);
|
||||
|
||||
sideBarLayout_->addWidget(user_info_widget_);
|
||||
//sideBarLayout_->addWidget(user_mentions_widget_);
|
||||
// sideBarLayout_->addWidget(user_mentions_widget_);
|
||||
sideBarLayout_->addWidget(room_list_);
|
||||
sideBarLayout_->addWidget(sidebarActions_);
|
||||
|
||||
|
@ -159,7 +159,8 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
|
|||
1000,
|
||||
"",
|
||||
"highlight",
|
||||
[this, mentionsPos](const mtx::responses::Notifications &res, mtx::http::RequestErr err) {
|
||||
[this, mentionsPos](const mtx::responses::Notifications &res,
|
||||
mtx::http::RequestErr err) {
|
||||
if (err) {
|
||||
nhlog::net()->warn("failed to retrieve notifications: {} ({})",
|
||||
err->matrix_error.error,
|
||||
|
@ -218,8 +219,6 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
connect(room_list_, &RoomList::roomChanged, this, [this](const QString &roomid) {
|
||||
QStringList users;
|
||||
|
||||
|
@ -1007,10 +1006,11 @@ ChatPage::showNotificationsDialog(const mtx::responses::Notifications &res, cons
|
|||
nhlog::db()->warn("error while sending desktop notification: {}", e.what());
|
||||
}
|
||||
}
|
||||
notifDialog->setGeometry(widgetPos.x() - (width() / 10), widgetPos.y() + 25, width() / 5, height() / 2);
|
||||
//notifDialog->move(widgetPos.x(), widgetPos.y());
|
||||
//notifDialog->setFixedWidth(width() / 10);
|
||||
//notifDialog->setFixedHeight(height() / 2);
|
||||
notifDialog->setGeometry(
|
||||
widgetPos.x() - (width() / 10), widgetPos.y() + 25, width() / 5, height() / 2);
|
||||
// notifDialog->move(widgetPos.x(), widgetPos.y());
|
||||
// notifDialog->setFixedWidth(width() / 10);
|
||||
// notifDialog->setFixedHeight(height() / 2);
|
||||
notifDialog->raise();
|
||||
notifDialog->show();
|
||||
}
|
||||
|
|
|
@ -89,7 +89,8 @@ signals:
|
|||
void messageReply(const RelatedInfo &related);
|
||||
|
||||
void notificationsRetrieved(const mtx::responses::Notifications &);
|
||||
void highlightedNotifsRetrieved(const mtx::responses::Notifications &, const QPoint widgetPos);
|
||||
void highlightedNotifsRetrieved(const mtx::responses::Notifications &,
|
||||
const QPoint widgetPos);
|
||||
|
||||
void uploadFailed(const QString &msg);
|
||||
void imageUploaded(const QString &roomid,
|
||||
|
|
|
@ -239,7 +239,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
|
|||
fontSizeOptionLayout->addWidget(fontSizeLabel);
|
||||
fontSizeOptionLayout->addWidget(fontSizeCombo_, 0, Qt::AlignRight);
|
||||
|
||||
auto fontFamilyOptionLayout = new QHBoxLayout;
|
||||
auto fontFamilyOptionLayout = new QHBoxLayout;
|
||||
auto emojiFontFamilyOptionLayout = new QHBoxLayout;
|
||||
fontFamilyOptionLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
|
||||
emojiFontFamilyOptionLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
|
||||
|
|
|
@ -96,7 +96,6 @@ public:
|
|||
QString font() const { return font_; }
|
||||
QString emojiFont() const { return emojiFont_; }
|
||||
|
||||
|
||||
signals:
|
||||
void groupViewStateChanged(bool state);
|
||||
|
||||
|
@ -111,7 +110,6 @@ private:
|
|||
double baseFontSize_;
|
||||
QString font_;
|
||||
QString emojiFont_;
|
||||
|
||||
};
|
||||
|
||||
class HorizontalLine : public QFrame
|
||||
|
|
|
@ -26,6 +26,29 @@ utils::localUser()
|
|||
return settings.value("auth/user_id").toString();
|
||||
}
|
||||
|
||||
QString
|
||||
utils::replaceEmoji(const QString &body)
|
||||
{
|
||||
QString fmtBody = "";
|
||||
|
||||
QVector<uint> utf32_string = body.toUcs4();
|
||||
|
||||
QSettings settings;
|
||||
QString userFontFamily = settings.value("user/emoji_font_family", "emoji").toString();
|
||||
|
||||
for (auto &code : utf32_string) {
|
||||
// TODO: Be more precise here.
|
||||
if (code > 9000)
|
||||
fmtBody +=
|
||||
QString("<span style=\"font-family: " + userFontFamily + ";\">") +
|
||||
QString::fromUcs4(&code, 1) + "</span>";
|
||||
else
|
||||
fmtBody += QString::fromUcs4(&code, 1);
|
||||
}
|
||||
|
||||
return fmtBody;
|
||||
}
|
||||
|
||||
void
|
||||
utils::setScaleFactor(float factor)
|
||||
{
|
||||
|
|
|
@ -34,6 +34,9 @@ namespace utils {
|
|||
|
||||
using TimelineEvent = mtx::events::collections::TimelineEvents;
|
||||
|
||||
QString
|
||||
replaceEmoji(const QString &body);
|
||||
|
||||
QString
|
||||
localUser();
|
||||
|
||||
|
|
|
@ -650,7 +650,7 @@ TimelineItem::markReceived(bool isEncrypted)
|
|||
void
|
||||
TimelineItem::generateBody(const QString &body)
|
||||
{
|
||||
body_ = new TextLabel(replaceEmoji(body), this);
|
||||
body_ = new TextLabel(utils::replaceEmoji(body), this);
|
||||
body_->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextBrowserInteraction);
|
||||
|
||||
connect(body_, &TextLabel::userProfileTriggered, this, [](const QString &user_id) {
|
||||
|
@ -727,7 +727,7 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
|
|||
|
||||
userName_ = new QLabel(this);
|
||||
userName_->setFont(usernameFont);
|
||||
userName_->setText(replaceEmoji(fm.elidedText(sender, Qt::ElideRight, 500)));
|
||||
userName_->setText(utils::replaceEmoji(fm.elidedText(sender, Qt::ElideRight, 500)));
|
||||
userName_->setToolTip(user_id);
|
||||
userName_->setToolTipDuration(1500);
|
||||
userName_->setAttribute(Qt::WA_Hover);
|
||||
|
@ -773,29 +773,6 @@ TimelineItem::generateTimestamp(const QDateTime &time)
|
|||
QString("<span style=\"color: #999\"> %1 </span>").arg(time.toString("HH:mm")));
|
||||
}
|
||||
|
||||
QString
|
||||
TimelineItem::replaceEmoji(const QString &body)
|
||||
{
|
||||
QString fmtBody = "";
|
||||
|
||||
QVector<uint> utf32_string = body.toUcs4();
|
||||
|
||||
QSettings settings;
|
||||
QString userFontFamily = settings.value("user/emoji_font_family", "emoji").toString();
|
||||
|
||||
for (auto &code : utf32_string) {
|
||||
// TODO: Be more precise here.
|
||||
if (code > 9000)
|
||||
fmtBody +=
|
||||
QString("<span style=\"font-family: " + userFontFamily + ";\">") +
|
||||
QString::fromUcs4(&code, 1) + "</span>";
|
||||
else
|
||||
fmtBody += QString::fromUcs4(&code, 1);
|
||||
}
|
||||
|
||||
return fmtBody;
|
||||
}
|
||||
|
||||
void
|
||||
TimelineItem::setupAvatarLayout(const QString &userName)
|
||||
{
|
||||
|
|
|
@ -276,7 +276,6 @@ private:
|
|||
|
||||
QFutureWatcher<QString> *colorGenerating_;
|
||||
|
||||
QString replaceEmoji(const QString &body);
|
||||
QString event_id_;
|
||||
mtx::events::MessageType message_type_;
|
||||
QString room_id_;
|
||||
|
|
Loading…
Reference in a new issue