mumble-voip_mumble/src/User.cpp

38 lines
1.4 KiB
C++

// Copyright 2009-2023 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#include "User.h"
#include "Channel.h"
User::User() {
uiSession = 0;
iId = -1;
bMute = bDeaf = false;
bSelfMute = bSelfDeaf = false;
bPrioritySpeaker = false;
bRecording = false;
bSuppress = false;
cChannel = 0;
}
bool User::lessThan(const User *first, const User *second) {
// We explicitly don't use localeAwareCompare as this would result in a different
// ordering of users on clients with different locales. This is not what one would
// expect and thus we don't take the locale into account for comparing users.
// First we compare case-insensitively, in order to sort users with different names
// in a case-insensitive (intuitive) way. However, if some users have the same name
// that only differs in casing (theoretically possible), a case-insensitive comparison
// would not yield a (guaranteed) stable order of such users, which is why we compare
// such cases in a case-sensitive way.
int result = QString::compare(first->qsName, second->qsName, Qt::CaseInsensitive);
if (result == 0) {
// Names are equal (except for casing)
result = QString::compare(first->qsName, second->qsName, Qt::CaseSensitive);
}
return result < 0;
}