diff options
Diffstat (limited to 'include/lobby.h')
| -rw-r--r-- | include/lobby.h | 134 |
1 files changed, 63 insertions, 71 deletions
diff --git a/include/lobby.h b/include/lobby.h index d39d7f9b..e5d35766 100644 --- a/include/lobby.h +++ b/include/lobby.h @@ -1,22 +1,17 @@ #ifndef LOBBY_H #define LOBBY_H -#include "aobutton.h" -#include "aoimage.h" -#include "aopacket.h" -#include "aotextarea.h" - -#include <QLabel> -#include <QLineEdit> -#include <QListWidget> +class QLabel; +class QLineEdit; +class QPushButton; +class QTextBrowser; +class QTreeWidget; +class QTreeWidgetItem; + #include <QMainWindow> -#include <QPlainTextEdit> -#include <QProgressBar> -#include <QTextBrowser> -#include <QTreeWidget> -#include <QDebug> -#include <QScrollBar> -#include <QHeaderView> +#include "networkmanager.h" +#include "file_functions.h" + #ifdef ANDROID #include <QtAndroidExtras/QtAndroid> #endif @@ -25,91 +20,88 @@ class AOApplication; class Lobby : public QMainWindow { Q_OBJECT - public: - Lobby(AOApplication *p_ao_app); + Lobby(AOApplication *p_ao_app, NetworkManager *p_net_man = nullptr); + ~Lobby(); - void set_widgets(); + void set_player_count(int players_online, int max_players); + void set_server_description(const QString &server_description); void list_servers(); + int get_selected_server(); + int pageSelected(); + +private: + AOApplication *ao_app; + NetworkManager *net_manager; + + const QString DEFAULT_UI = "lobby.ui"; + void list_favorites(); + void list_demos(); void get_motd(); void check_for_updates(); - void append_chatmessage(QString f_name, QString f_message); - void append_error(QString f_message); - void set_player_count(int players_online, int max_players); - void set_server_description(const QString& server_description); - void set_stylesheet(QWidget *widget); - void set_stylesheets(); - void set_fonts(); - void set_font(QWidget *widget, QString p_identifier); - void set_loading_text(QString p_text); - void show_loading_overlay() { ui_loading_background->show(); } - void hide_loading_overlay() { ui_loading_background->hide(); } - QString get_chatlog(); - int get_selected_server(); - void enable_connect_button(); void reset_selection(); - void set_loading_value(int p_value); - - bool public_servers_selected = true; - bool doubleclicked = false; + int last_index = -1; - ~Lobby(); + enum TabPage { SERVER, FAVORITES, DEMOS }; -private: - AOApplication *ao_app; + // UI-file Lobby - AOImage *ui_background; + // Top Row + QLabel *ui_game_version_lbl; + QPushButton *ui_settings_button; + QPushButton *ui_about_button; - AOButton *ui_public_servers; - AOButton *ui_favorites; + // Server, Favs and Demo lists + QTabWidget *ui_connections_tabview; - AOButton *ui_refresh; - AOButton *ui_add_to_fav; - AOButton *ui_remove_from_fav; - AOButton *ui_connect; + QTreeWidget *ui_serverlist_tree; + QLineEdit *ui_serverlist_search; - QLabel *ui_version; - AOButton *ui_about; + QTreeWidget *ui_favorites_tree; + QLineEdit *ui_favorites_search; - AOButton *ui_settings; + QTreeWidget *ui_demo_tree; + QLineEdit *ui_demo_search; - QTreeWidget *ui_server_list; - QLineEdit *ui_server_search; + QPushButton *ui_add_to_favorite_button; + QPushButton *ui_add_server_button; + QPushButton *ui_remove_from_favorites_button; + QPushButton *ui_edit_favorite_button; + QPushButton *ui_direct_connect_button; + QPushButton *ui_refresh_button; - QLabel *ui_player_count; - AOTextArea *ui_description; + // Serverinfo / MOTD Horizontal Row + QTextBrowser *ui_motd_text; - AOTextArea *ui_chatbox; + QLabel *ui_server_player_count_lbl; + QTextBrowser *ui_server_description_text; + QPushButton *ui_connect_button; - AOImage *ui_loading_background; - QTextEdit *ui_loading_text; - QProgressBar *ui_progress_bar; - AOButton *ui_cancel; + // Optional Widget + QTextBrowser *ui_game_changelog_text; - int last_index = -1; + void loadUI(); - void set_size_and_pos(QWidget *p_widget, QString p_identifier); + TabPage current_page = SERVER; private slots: - void on_public_servers_clicked(); - void on_favorites_clicked(); - - void on_refresh_pressed(); + void on_tab_changed(int index); void on_refresh_released(); - void on_add_to_fav_pressed(); + void on_direct_connect_released(); void on_add_to_fav_released(); - void on_remove_from_fav_pressed(); + void on_add_server_to_fave_released(); + void on_edit_favorite_released(); void on_remove_from_fav_released(); - void on_connect_pressed(); - void on_connect_released(); void on_about_clicked(); - void on_settings_clicked(); void on_server_list_clicked(QTreeWidgetItem *p_item, int column); - void on_server_list_doubleclicked(QTreeWidgetItem *p_item, int column); - void on_server_list_context_menu_requested(const QPoint &point); + void on_list_doubleclicked(QTreeWidgetItem *p_item, int column); + void on_favorite_tree_clicked(QTreeWidgetItem *p_item, int column); void on_server_search_edited(QString p_text); + void on_demo_clicked(QTreeWidgetItem *item, int column); + void onReloadThemeRequested(); // Oh boy. + void onSettingsRequested(); }; #endif // LOBBY_H |
