aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLeifa♥ <26681464+TrickyLeifa@users.noreply.github.com>2022-07-31 04:57:01 +0200
committerGitHub <noreply@github.com>2022-07-31 05:57:01 +0300
commit1cfbfd51a70ae61279f53a1b14dbc0c81fe1d259 (patch)
tree65bb1eee810a15016498740c0c8d23d073e664b3 /include
parent14731a0fca83f3ce193ec03a19bc2f5fefe70c6c (diff)
Added server list context menu, ... (#835)
* Added server list context menu, ... Resolve #832, #560 * The demo server listing now always appears at the top for consistency. * Add a context menu to server listing. Only appears during favorite server listing. Requires a valid item under cursor. Cannot be the demo server item. * Add a new UI element: `remove_from_fav` Only appears during favorite server listing. Require a selection to remove. Cannot be the demo server. Uses `removefromfav.png` and `removefromfav_pressed.png` images as textures. * Favorite servers are now loaded whenever the Lobby is created in addition to refresh and server listing switch. * `serverlist.txt` is now renamed to `(deprecated)serverlist.txt` if read from. * Updated comments * Typos
Diffstat (limited to 'include')
-rw-r--r--include/aoapplication.h24
-rw-r--r--include/lobby.h4
2 files changed, 23 insertions, 5 deletions
diff --git a/include/aoapplication.h b/include/aoapplication.h
index f1ba9d7..52b7673 100644
--- a/include/aoapplication.h
+++ b/include/aoapplication.h
@@ -131,11 +131,14 @@ public:
///////////////////////////////////////////
- void set_favorite_list();
+ void load_favorite_list();
+ void save_favorite_list();
QVector<server_type> &get_favorite_list() { return favorite_list; }
// Adds the server to favorite_servers.ini
void add_favorite_server(int p_server);
+ void remove_favorite_server(int p_server);
+ void prompt_remove_favorite_server(int p_server);
void set_server_list(QVector<server_type> &servers) { server_list = servers; }
QVector<server_type> &get_server_list() { return server_list; }
@@ -331,13 +334,24 @@ public:
// Append to the currently open demo file if there is one
void append_to_demofile(QString packet_string);
- // Returns the contents of serverlist.txt
- QVector<server_type> read_serverlist_txt();
+ /**
+ * @brief Reads favorite_servers.ini and returns a list of servers.
+ *
+ * The demo server entry is always present at the top of the list.
+ *
+ * If the server list returned was to be empty (exluding the demo server entry),
+ * will return a list of servers from the legacy serverlist.txt file.
+ *
+ * @return A list of servers.
+ */
+ QVector<server_type> read_favorite_servers();
/**
- * @brief Migrates the favorite serverlist format from txt to ini.
+ * @brief Reads serverlist.txt and returns a list of servers.
+ *
+ * @return A list of servers.
*/
- void migrate_serverlist_txt(QFile &p_serverlist_txt);
+ QVector<server_type> read_legacy_favorite_servers();
// Returns the value of p_identifier in the design.ini file in p_design_path
QString read_design_ini(QString p_identifier, VPath p_design_path);
diff --git a/include/lobby.h b/include/lobby.h
index 18d4c4e..d39d7f9 100644
--- a/include/lobby.h
+++ b/include/lobby.h
@@ -67,6 +67,7 @@ private:
AOButton *ui_refresh;
AOButton *ui_add_to_fav;
+ AOButton *ui_remove_from_fav;
AOButton *ui_connect;
QLabel *ui_version;
@@ -99,12 +100,15 @@ private slots:
void on_refresh_released();
void on_add_to_fav_pressed();
void on_add_to_fav_released();
+ void on_remove_from_fav_pressed();
+ 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_server_search_edited(QString p_text);
};