aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aocharbutton.cpp11
-rw-r--r--aocharbutton.h4
-rw-r--r--charselect.cpp9
3 files changed, 20 insertions, 4 deletions
diff --git a/aocharbutton.cpp b/aocharbutton.cpp
index 23fd0c6..7661027 100644
--- a/aocharbutton.cpp
+++ b/aocharbutton.cpp
@@ -40,13 +40,22 @@ void AOCharButton::reset()
ui_selector->hide();
}
-void AOCharButton::set_taken()
+void AOCharButton::set_taken(bool is_taken)
+{
+ taken = is_taken;
+}
+
+void AOCharButton::apply_taken_image()
{
if (taken)
{
ui_taken->move(0,0);
ui_taken->show();
}
+ else
+ {
+ ui_taken->hide();
+ }
}
void AOCharButton::set_passworded()
diff --git a/aocharbutton.h b/aocharbutton.h
index 6e5e50e..f372cdf 100644
--- a/aocharbutton.h
+++ b/aocharbutton.h
@@ -20,9 +20,11 @@ public:
void refresh();
void reset();
- void set_taken();
+ void set_taken(bool is_taken);
void set_passworded();
+ void apply_taken_image();
+
void set_image(QString p_character);
private:
diff --git a/charselect.cpp b/charselect.cpp
index 01b6ae7..8e1b912 100644
--- a/charselect.cpp
+++ b/charselect.cpp
@@ -168,8 +168,7 @@ void Courtroom::put_button_in_place(int starting, int chars_on_this_page)
ui_char_button_list_filtered.at(n)->move(x_pos, y_pos);
ui_char_button_list_filtered.at(n)->show();
-
- ui_char_button_list_filtered.at(n)->set_taken();
+ ui_char_button_list_filtered.at(n)->apply_taken_image();
++x_mod_count;
@@ -240,6 +239,12 @@ void Courtroom::filter_character_list()
if (!char_list.at(i).name.contains(ui_char_search->text(), Qt::CaseInsensitive))
continue;
+ // We only really need to update the fact that a character is taken
+ // for the buttons that actually appear.
+ // You'd also update the passwordedness and etc. here later.
+ current_char->reset();
+ current_char->set_taken(char_list.at(i).taken);
+
ui_char_button_list_filtered.append(current_char);
}