From d0ccffd7db79f5dbff6f2cb4f8b77a8bb3435e57 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 8 Aug 2013 12:36:22 +0300 Subject: add autocomplete support for online list. --- src/gui/chatwindow.cpp | 6 ++++++ src/gui/whoisonline.cpp | 7 +++++++ src/gui/whoisonline.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/src/gui/chatwindow.cpp b/src/gui/chatwindow.cpp index b33a14a0e..04c2a2d9a 100644 --- a/src/gui/chatwindow.cpp +++ b/src/gui/chatwindow.cpp @@ -43,6 +43,7 @@ #include "gui/sdlfont.h" #include "gui/sdlinput.h" #include "gui/viewport.h" +#include "gui/whoisonline.h" #include "gui/widgets/battletab.h" #include "gui/widgets/dropdown.h" @@ -1262,6 +1263,11 @@ void ChatWindow::autoComplete() } if (newName.empty()) newName = autoComplete(name, &mCustomWords); + if (newName.empty()) + { + whoIsOnline->getPlayerNames(nameList); + newName = autoComplete(nameList, name); + } if (!newName.empty()) { diff --git a/src/gui/whoisonline.cpp b/src/gui/whoisonline.cpp index e5eb90cd1..741e1e771 100644 --- a/src/gui/whoisonline.cpp +++ b/src/gui/whoisonline.cpp @@ -797,6 +797,13 @@ void WhoIsOnline::setNeutralColor(OnlinePlayer *const player) player->setText("0"); } +void WhoIsOnline::getPlayerNames(StringVect &names) +{ + names.clear(); + FOR_EACH (std::set::const_iterator, it, mOnlineNicks) + names.push_back(*it); +} + void OnlinePlayer::setText(std::string color) { mText.clear(); diff --git a/src/gui/whoisonline.h b/src/gui/whoisonline.h index 8301897cb..f3d299f41 100644 --- a/src/gui/whoisonline.h +++ b/src/gui/whoisonline.h @@ -154,6 +154,8 @@ public: void setNeutralColor(OnlinePlayer *const player); + void getPlayerNames(StringVect &names); + private: void download(); -- cgit v1.2.3-70-g09d2