diff --git a/aoapplication.cpp b/aoapplication.cpp index 70aeb15..bf73434 100644 --- a/aoapplication.cpp +++ b/aoapplication.cpp @@ -100,3 +100,10 @@ void AOApplication::add_favorite_server(int p_server) write_to_serverlist_txt(server_line); } + +void AOApplication::loading_cancelled() +{ + destruct_courtroom(); + + w_lobby->hide_loading_overlay(); +} diff --git a/aoapplication.h b/aoapplication.h index c9daf86..a63ec41 100644 --- a/aoapplication.h +++ b/aoapplication.h @@ -96,6 +96,9 @@ private: QVector server_list; QVector favorite_list; + +public slots: + void loading_cancelled(); }; #endif // AOAPPLICATION_H diff --git a/lobby.cpp b/lobby.cpp index feeff23..3709114 100644 --- a/lobby.cpp +++ b/lobby.cpp @@ -29,7 +29,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow() ui_chatname = new QLineEdit(this); ui_chatmessage = new QLineEdit(this); 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_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_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_cancel, SIGNAL(clicked()), ao_app, SLOT(loading_cancelled())); set_widgets(); } @@ -104,17 +105,19 @@ void Lobby::set_widgets() ui_loading_background->set_image("loadingbackground.png"); ui_loading_background->resize(m_lobby_width, m_lobby_height); - set_size_and_pos(ui_loading_label, "loading_label"); - ui_loading_label->setFont(QFont("Arial", 20, QFont::Bold)); - ui_loading_label->setStyleSheet("color: rgba(255, 128, 0, 255);" - "qproperty-alignment: AlignCenter;"); - ui_loading_label->setText("Loading"); + set_size_and_pos(ui_loading_text, "loading_label"); + ui_loading_text->setFont(QFont("Arial", 20, QFont::Bold)); + ui_loading_text->setReadOnly(true); + ui_loading_text->setAlignment(Qt::AlignCenter); + 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_cancel, "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); } +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() { ui_public_servers->set_image("publicservers_selected.png"); diff --git a/lobby.h b/lobby.h index 0481ebd..8f9b5ea 100644 --- a/lobby.h +++ b/lobby.h @@ -26,6 +26,9 @@ public: void list_favorites(); void append_chatmessage(QString p_message_line); 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(); @@ -59,7 +62,7 @@ private: QLineEdit *ui_chatmessage; AOImage *ui_loading_background; - QLabel *ui_loading_label; + QTextEdit *ui_loading_text; QProgressBar *ui_progress_bar; AOButton *ui_cancel; diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 014919b..84ace31 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -141,6 +141,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet) construct_courtroom(); + w_lobby->show_loading_overlay(); + w_lobby->set_loading_text("Loading"); + AOPacket *f_packet = new AOPacket("askchar2#%"); send_server_packet(f_packet); } @@ -166,12 +169,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet) f_char.description = sub_elements.at(1); ++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); - - - qDebug() << f_contents.at(n_element + 1); } if (loaded_chars < char_list_size)