Added "Anonymous" (aka not logged in) as an option for the account chooser
This commit is contained in:
+11
-5
@@ -83,12 +83,14 @@ AccountManager::AccountManager()
|
|||||||
if (user) {
|
if (user) {
|
||||||
debug::Log("[AccountManager:currentUsernameChanged] User successfully updated to {}",
|
debug::Log("[AccountManager:currentUsernameChanged] User successfully updated to {}",
|
||||||
newUsername);
|
newUsername);
|
||||||
// XXX: Should we set the user regardless if the username is found or not?
|
|
||||||
// I can see the logic in setting it to nullptr if the `currentUsername` value has been
|
|
||||||
// set to "" or an invalid username
|
|
||||||
this->Twitch.currentUser = user;
|
this->Twitch.currentUser = user;
|
||||||
this->Twitch.userChanged.invoke();
|
} else {
|
||||||
|
debug::Log(
|
||||||
|
"[AccountManager:currentUsernameChanged] User successfully updated to anonymous");
|
||||||
|
this->Twitch.currentUser = this->Twitch.anonymousUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this->Twitch.userChanged.invoke();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,10 +126,14 @@ void AccountManager::load()
|
|||||||
|
|
||||||
auto currentUser = this->Twitch.findUserByUsername(
|
auto currentUser = this->Twitch.findUserByUsername(
|
||||||
QString::fromStdString(this->Twitch.currentUsername.getValue()));
|
QString::fromStdString(this->Twitch.currentUsername.getValue()));
|
||||||
|
|
||||||
if (currentUser) {
|
if (currentUser) {
|
||||||
this->Twitch.currentUser = currentUser;
|
this->Twitch.currentUser = currentUser;
|
||||||
this->Twitch.userChanged.invoke();
|
} else {
|
||||||
|
this->Twitch.currentUser = this->Twitch.anonymousUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this->Twitch.userChanged.invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|||||||
@@ -129,19 +129,29 @@ QVBoxLayout *SettingsDialog::createAccountsTab()
|
|||||||
// listview
|
// listview
|
||||||
auto listWidget = new QListWidget(this);
|
auto listWidget = new QListWidget(this);
|
||||||
|
|
||||||
|
static QString anonUsername(" - anonymous - ");
|
||||||
|
|
||||||
|
listWidget->addItem(anonUsername);
|
||||||
|
|
||||||
for (const auto &userName : AccountManager::getInstance().Twitch.getUsernames()) {
|
for (const auto &userName : AccountManager::getInstance().Twitch.getUsernames()) {
|
||||||
listWidget->addItem(userName);
|
listWidget->addItem(userName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select the currently logged in user
|
// Select the currently logged in user
|
||||||
if (listWidget->count() > 0) {
|
if (listWidget->count() > 0) {
|
||||||
const QString ¤tUsername =
|
auto currentUser = AccountManager::getInstance().Twitch.getCurrent();
|
||||||
AccountManager::getInstance().Twitch.getCurrent()->getUserName();
|
|
||||||
for (int i = 0; i < listWidget->count(); ++i) {
|
if (currentUser->isAnon()) {
|
||||||
QString itemText = listWidget->item(i)->text();
|
listWidget->setCurrentRow(0);
|
||||||
if (itemText.compare(currentUsername, Qt::CaseInsensitive) == 0) {
|
} else {
|
||||||
listWidget->setCurrentRow(i);
|
const QString ¤tUsername = currentUser->getUserName();
|
||||||
break;
|
for (int i = 0; i < listWidget->count(); ++i) {
|
||||||
|
QString itemText = listWidget->item(i)->text();
|
||||||
|
|
||||||
|
if (itemText.compare(currentUsername, Qt::CaseInsensitive) == 0) {
|
||||||
|
listWidget->setCurrentRow(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,7 +159,11 @@ QVBoxLayout *SettingsDialog::createAccountsTab()
|
|||||||
QObject::connect(listWidget, &QListWidget::clicked, this, [&, listWidget] {
|
QObject::connect(listWidget, &QListWidget::clicked, this, [&, listWidget] {
|
||||||
if (!listWidget->selectedItems().isEmpty()) {
|
if (!listWidget->selectedItems().isEmpty()) {
|
||||||
QString newUsername = listWidget->currentItem()->text();
|
QString newUsername = listWidget->currentItem()->text();
|
||||||
AccountManager::getInstance().Twitch.currentUsername = newUsername.toStdString();
|
if (newUsername.compare(anonUsername, Qt::CaseInsensitive) == 0) {
|
||||||
|
AccountManager::getInstance().Twitch.currentUsername = "";
|
||||||
|
} else {
|
||||||
|
AccountManager::getInstance().Twitch.currentUsername = newUsername.toStdString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user