Fix bug with emoji font setting and clean linting

This commit is contained in:
Joseph Donofry 2019-07-26 17:44:44 -04:00
parent 778921be8a
commit 86888ee713
No known key found for this signature in database
GPG Key ID: E8A1D78EF044B0CB
8 changed files with 42 additions and 41 deletions

View File

@ -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();
}

View File

@ -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,

View File

@ -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);

View File

@ -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

View File

@ -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)
{

View File

@ -34,6 +34,9 @@ namespace utils {
using TimelineEvent = mtx::events::collections::TimelineEvents;
QString
replaceEmoji(const QString &body);
QString
localUser();

View File

@ -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)
{

View File

@ -276,7 +276,6 @@ private:
QFutureWatcher<QString> *colorGenerating_;
QString replaceEmoji(const QString &body);
QString event_id_;
mtx::events::MessageType message_type_;
QString room_id_;