38 lines
1.4 KiB
C++
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;
|
|
}
|