mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Use same sorting method in emote popup as in the completion model
Fixes #1549
This commit is contained in:
parent
b93de7c0f6
commit
64c58e724a
4
CHANGELOG.md
Normal file
4
CHANGELOG.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
## Unversioned
|
||||||
|
- Minor: Emotes in the emote popup are now sorted in the same order as the tab completion (#1549)
|
|
@ -38,13 +38,7 @@ bool CompletionModel::TaggedString::operator<(const TaggedString &that) const
|
||||||
return this->isEmote();
|
return this->isEmote();
|
||||||
}
|
}
|
||||||
|
|
||||||
// try comparing insensitively, if they are the same then senstively
|
return CompletionModel::compareStrings(this->string, that.string);
|
||||||
// (fixes order of LuL and LUL)
|
|
||||||
int k = QString::compare(this->string, that.string, Qt::CaseInsensitive);
|
|
||||||
if (k == 0)
|
|
||||||
return this->string > that.string;
|
|
||||||
|
|
||||||
return k < 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -191,4 +185,15 @@ void CompletionModel::refresh(const QString &prefix, bool isFirstWord)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CompletionModel::compareStrings(const QString &a, const QString &b)
|
||||||
|
{
|
||||||
|
// try comparing insensitively, if they are the same then senstively
|
||||||
|
// (fixes order of LuL and LUL)
|
||||||
|
int k = QString::compare(a, b, Qt::CaseInsensitive);
|
||||||
|
if (k == 0)
|
||||||
|
return a > b;
|
||||||
|
|
||||||
|
return k < 0;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|
|
@ -49,6 +49,8 @@ public:
|
||||||
|
|
||||||
void refresh(const QString &prefix, bool isFirstWord = false);
|
void refresh(const QString &prefix, bool isFirstWord = false);
|
||||||
|
|
||||||
|
static bool compareStrings(const QString &a, const QString &b);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TaggedString createUser(const QString &str);
|
TaggedString createUser(const QString &str);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "EmotePopup.hpp"
|
#include "EmotePopup.hpp"
|
||||||
|
|
||||||
#include "Application.hpp"
|
#include "Application.hpp"
|
||||||
|
#include "common/CompletionModel.hpp"
|
||||||
#include "controllers/accounts/AccountController.hpp"
|
#include "controllers/accounts/AccountController.hpp"
|
||||||
#include "debug/Benchmark.hpp"
|
#include "debug/Benchmark.hpp"
|
||||||
#include "messages/Message.hpp"
|
#include "messages/Message.hpp"
|
||||||
|
@ -37,7 +38,8 @@ namespace {
|
||||||
std::sort(vec.begin(), vec.end(),
|
std::sort(vec.begin(), vec.end(),
|
||||||
[](const std::pair<EmoteName, EmotePtr> &l,
|
[](const std::pair<EmoteName, EmotePtr> &l,
|
||||||
const std::pair<EmoteName, EmotePtr> &r) {
|
const std::pair<EmoteName, EmotePtr> &r) {
|
||||||
return l.first.string < r.first.string;
|
return CompletionModel::compareStrings(
|
||||||
|
l.first.string, r.first.string);
|
||||||
});
|
});
|
||||||
for (const auto &emote : vec)
|
for (const auto &emote : vec)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue