loading characters now works with overlay

This commit is contained in:
David Skoland 2017-01-25 19:50:49 +01:00
parent c262bb4974
commit 99aa327318
5 changed files with 36 additions and 12 deletions

View File

@ -100,3 +100,10 @@ void AOApplication::add_favorite_server(int p_server)
write_to_serverlist_txt(server_line); write_to_serverlist_txt(server_line);
} }
void AOApplication::loading_cancelled()
{
destruct_courtroom();
w_lobby->hide_loading_overlay();
}

View File

@ -96,6 +96,9 @@ private:
QVector<server_type> server_list; QVector<server_type> server_list;
QVector<server_type> favorite_list; QVector<server_type> favorite_list;
public slots:
void loading_cancelled();
}; };
#endif // AOAPPLICATION_H #endif // AOAPPLICATION_H

View File

@ -29,7 +29,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
ui_chatname = new QLineEdit(this); ui_chatname = new QLineEdit(this);
ui_chatmessage = new QLineEdit(this); ui_chatmessage = new QLineEdit(this);
ui_loading_background = new AOImage(this, ao_app); ui_loading_background = new AOImage(this, ao_app);
ui_loading_label = new QLabel(ui_loading_background); ui_loading_text = new QTextEdit(ui_loading_background);
ui_progress_bar = new QProgressBar(ui_loading_background); ui_progress_bar = new QProgressBar(ui_loading_background);
ui_cancel = new AOButton(ui_loading_background, ao_app); ui_cancel = new AOButton(ui_loading_background, ao_app);
@ -44,6 +44,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
connect(ui_about, SIGNAL(clicked()), this, SLOT(on_about_clicked())); connect(ui_about, SIGNAL(clicked()), this, SLOT(on_about_clicked()));
connect(ui_server_list, SIGNAL(clicked(QModelIndex)), this, SLOT(on_server_list_clicked(QModelIndex))); connect(ui_server_list, SIGNAL(clicked(QModelIndex)), this, SLOT(on_server_list_clicked(QModelIndex)));
connect(ui_chatmessage, SIGNAL(returnPressed()), this, SLOT(on_chatfield_return_pressed())); connect(ui_chatmessage, SIGNAL(returnPressed()), this, SLOT(on_chatfield_return_pressed()));
connect(ui_cancel, SIGNAL(clicked()), ao_app, SLOT(loading_cancelled()));
set_widgets(); set_widgets();
} }
@ -104,17 +105,19 @@ void Lobby::set_widgets()
ui_loading_background->set_image("loadingbackground.png"); ui_loading_background->set_image("loadingbackground.png");
ui_loading_background->resize(m_lobby_width, m_lobby_height); ui_loading_background->resize(m_lobby_width, m_lobby_height);
set_size_and_pos(ui_loading_label, "loading_label"); set_size_and_pos(ui_loading_text, "loading_label");
ui_loading_label->setFont(QFont("Arial", 20, QFont::Bold)); ui_loading_text->setFont(QFont("Arial", 20, QFont::Bold));
ui_loading_label->setStyleSheet("color: rgba(255, 128, 0, 255);" ui_loading_text->setReadOnly(true);
"qproperty-alignment: AlignCenter;"); ui_loading_text->setAlignment(Qt::AlignCenter);
ui_loading_label->setText("Loading"); ui_loading_text->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
"color: rgba(255, 128, 0, 255);");
ui_loading_text->append("Loading");
set_size_and_pos(ui_progress_bar, "progress_bar"); set_size_and_pos(ui_progress_bar, "progress_bar");
set_size_and_pos(ui_cancel, "cancel"); set_size_and_pos(ui_cancel, "cancel");
ui_cancel->setText("Cancel"); ui_cancel->setText("Cancel");
//ui_loading_background->hide(); ui_loading_background->hide();
} }
@ -142,6 +145,13 @@ void Lobby::set_size_and_pos(QWidget *p_widget, QString p_identifier)
p_widget->resize(design_ini_result.width, design_ini_result.height); p_widget->resize(design_ini_result.width, design_ini_result.height);
} }
void Lobby::set_loading_text(QString p_text)
{
ui_loading_text->clear();
ui_loading_text->setAlignment(Qt::AlignCenter);
ui_loading_text->append(p_text);
}
void Lobby::on_public_servers_clicked() void Lobby::on_public_servers_clicked()
{ {
ui_public_servers->set_image("publicservers_selected.png"); ui_public_servers->set_image("publicservers_selected.png");

View File

@ -26,6 +26,9 @@ public:
void list_favorites(); void list_favorites();
void append_chatmessage(QString p_message_line); void append_chatmessage(QString p_message_line);
void set_player_count(int players_online, int max_players); void set_player_count(int players_online, int max_players);
void set_loading_text(QString p_text);
void show_loading_overlay(){ui_loading_background->show();}
void hide_loading_overlay(){ui_loading_background->hide();}
~Lobby(); ~Lobby();
@ -59,7 +62,7 @@ private:
QLineEdit *ui_chatmessage; QLineEdit *ui_chatmessage;
AOImage *ui_loading_background; AOImage *ui_loading_background;
QLabel *ui_loading_label; QTextEdit *ui_loading_text;
QProgressBar *ui_progress_bar; QProgressBar *ui_progress_bar;
AOButton *ui_cancel; AOButton *ui_cancel;

View File

@ -141,6 +141,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
construct_courtroom(); construct_courtroom();
w_lobby->show_loading_overlay();
w_lobby->set_loading_text("Loading");
AOPacket *f_packet = new AOPacket("askchar2#%"); AOPacket *f_packet = new AOPacket("askchar2#%");
send_server_packet(f_packet); send_server_packet(f_packet);
} }
@ -166,12 +169,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
f_char.description = sub_elements.at(1); f_char.description = sub_elements.at(1);
++loaded_chars; ++loaded_chars;
qDebug() << "loaded_chars" << loaded_chars;
w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size));
w_courtroom->append_char(f_char); w_courtroom->append_char(f_char);
qDebug() << f_contents.at(n_element + 1);
} }
if (loaded_chars < char_list_size) if (loaded_chars < char_list_size)