Skip to content

Commit

Permalink
Merge pull request AttorneyOnline#305 from Chrezm/0/filter-server-switch
Browse files Browse the repository at this point in the history
Changed the filter server buttons
  • Loading branch information
Chrezm authored May 4, 2022
2 parents 80f8368 + 6139f18 commit 2290a0a
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 40 deletions.
53 changes: 22 additions & 31 deletions src/lobby.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
this->setWindowTitle("Danganronpa Online");

ui_background = new AOImageDisplay(this, ao_app);
ui_hide_public_servers = new AOButton(this, ao_app);
ui_hide_favorite_servers = new AOButton(this, ao_app);
ui_public_server_filter = new AOButton(this, ao_app);
ui_favorite_server_filter = new AOButton(this, ao_app);
ui_refresh = new AOButton(this, ao_app);
ui_toggle_favorite = new AOButton(this, ao_app);
ui_connect = new AOButton(this, ao_app);
Expand Down Expand Up @@ -75,8 +75,8 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
connect(m_master_client, SIGNAL(motd_changed()), this, SLOT(update_motd()));
connect(m_master_client, SIGNAL(server_list_changed()), this, SLOT(update_server_list()));

connect(ui_hide_public_servers, SIGNAL(clicked()), this, SLOT(toggle_hide_public_servers()));
connect(ui_hide_favorite_servers, SIGNAL(clicked()), this, SLOT(toggle_hide_favorite_servers()));
connect(ui_public_server_filter, SIGNAL(clicked()), this, SLOT(toggle_public_server_filter()));
connect(ui_favorite_server_filter, SIGNAL(clicked()), this, SLOT(toggle_favorite_server_filter()));
connect(ui_refresh, SIGNAL(pressed()), this, SLOT(on_refresh_pressed()));
connect(ui_refresh, SIGNAL(released()), this, SLOT(on_refresh_released()));
connect(ui_toggle_favorite, SIGNAL(pressed()), this, SLOT(on_add_to_fav_pressed()));
Expand Down Expand Up @@ -137,11 +137,12 @@ void Lobby::update_widgets()
set_size_and_pos(ui_background, "lobby", LOBBY_DESIGN_INI, ao_app);
ui_background->set_theme_image("lobbybackground.png");

set_size_and_pos(ui_hide_public_servers, "public_servers", LOBBY_DESIGN_INI, ao_app);
ui_hide_public_servers->set_image(m_hide_public_servers ? "publicservers_selected.png" : "publicservers.png");
set_size_and_pos(ui_public_server_filter, "public_servers", LOBBY_DESIGN_INI, ao_app);
ui_public_server_filter->set_image(m_server_filter == PublicOnly ? "publicservers_selected.png"
: "publicservers.png");

set_size_and_pos(ui_hide_favorite_servers, "favorites", LOBBY_DESIGN_INI, ao_app);
ui_hide_favorite_servers->set_image(m_hide_favorite_servers ? "favorites_selected.png" : "favorites.png");
set_size_and_pos(ui_favorite_server_filter, "favorites", LOBBY_DESIGN_INI, ao_app);
ui_favorite_server_filter->set_image(m_server_filter == FavoriteOnly ? "favorites_selected.png" : "favorites.png");

set_size_and_pos(ui_refresh, "refresh", LOBBY_DESIGN_INI, ao_app);
ui_refresh->set_image("refresh.png");
Expand Down Expand Up @@ -263,8 +264,7 @@ void Lobby::load_settings()
l_ini.setIniCodec("UTF-8");

l_ini.beginGroup("filters");
hide_public_servers(l_ini.value("hide_public", false).toBool());
hide_favorite_servers(l_ini.value("hide_favorites", false).toBool());
m_server_filter = ServerFilter(l_ini.value("server_filter", NoFilter).toInt());
l_ini.endGroup();
}

Expand All @@ -274,8 +274,7 @@ void Lobby::save_settings()
l_ini.setIniCodec("UTF-8");

l_ini.beginGroup("filters");
l_ini.setValue("hide_public", m_hide_public_servers);
l_ini.setValue("hide_favorites", m_hide_favorite_servers);
l_ini.setValue("server_filter", int(m_server_filter));
l_ini.endGroup();
l_ini.sync();
}
Expand Down Expand Up @@ -403,7 +402,7 @@ void Lobby::filter_server_listing()
for (int i = 0; i < ui_server_list->count(); ++i)
{
QListWidgetItem *l_server_item = ui_server_list->item(i);
l_server_item->setHidden(m_combined_server_list.at(i).favorite ? m_hide_favorite_servers : m_hide_public_servers);
l_server_item->setHidden(m_server_filter == (m_combined_server_list.at(i).favorite ? PublicOnly : FavoriteOnly));
}
select_current_server();
}
Expand All @@ -423,34 +422,26 @@ void Lobby::select_current_server()
}
}

void Lobby::hide_public_servers(bool p_on)
void Lobby::toggle_public_server_filter()
{
if (m_hide_public_servers == p_on)
return;
m_hide_public_servers = p_on;
ui_hide_public_servers->set_image(m_hide_public_servers ? "publicservers_selected.png" : "publicservers.png");
filter_server_listing();
m_server_filter = m_server_filter == PublicOnly ? NoFilter : PublicOnly;
update_server_filter_buttons();
}

void Lobby::toggle_hide_public_servers()
void Lobby::toggle_favorite_server_filter()
{
hide_public_servers(!m_hide_public_servers);
m_server_filter = m_server_filter == FavoriteOnly ? NoFilter : FavoriteOnly;
update_server_filter_buttons();
}

void Lobby::hide_favorite_servers(bool p_on)
void Lobby::update_server_filter_buttons()
{
if (m_hide_favorite_servers == p_on)
return;
m_hide_favorite_servers = p_on;
ui_hide_favorite_servers->set_image(m_hide_favorite_servers ? "favorites_selected.png" : "favorites.png");
ui_public_server_filter->set_image(m_server_filter == PublicOnly ? "publicservers_selected.png"
: "publicservers.png");
ui_favorite_server_filter->set_image(m_server_filter == FavoriteOnly ? "favorites_selected.png" : "favorites.png");
filter_server_listing();
}

void Lobby::toggle_hide_favorite_servers()
{
hide_favorite_servers(!m_hide_favorite_servers);
}

void Lobby::on_refresh_pressed()
{
ui_refresh->set_image("refresh_pressed.png");
Expand Down
21 changes: 12 additions & 9 deletions src/lobby.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,18 @@ class Lobby : public QMainWindow
DRServerInfoList m_favorite_server_list;
DRServerInfoList m_combined_server_list;
DRServerInfo m_current_server;
bool is_public_server_selected = true;

// ui
AOImageDisplay *ui_background = nullptr;
AOButton *ui_hide_public_servers = nullptr;
bool m_hide_public_servers = false;
AOButton *ui_hide_favorite_servers = nullptr;
bool m_hide_favorite_servers = false;
AOButton *ui_public_server_filter = nullptr;
AOButton *ui_favorite_server_filter = nullptr;
enum ServerFilter
{
NoFilter,
PublicOnly,
FavoriteOnly,
};
ServerFilter m_server_filter = NoFilter;
AOButton *ui_refresh = nullptr;
AOButton *ui_toggle_favorite = nullptr;
AOButton *ui_connect = nullptr;
Expand Down Expand Up @@ -91,10 +95,9 @@ private slots:
void update_server_list();
void set_favorite_server_list(DRServerInfoList server_list);
void update_combined_server_list();
void hide_public_servers(bool on);
void toggle_hide_public_servers();
void hide_favorite_servers(bool on);
void toggle_hide_favorite_servers();
void toggle_public_server_filter();
void toggle_favorite_server_filter();
void update_server_filter_buttons();
void update_server_listing();
void filter_server_listing();
void select_current_server();
Expand Down

0 comments on commit 2290a0a

Please sign in to comment.