Space Home Page

Add a space homepage with the ability to both create new room and add existing rooms to the space. This uses a tree model for the space hierarchy and will go to any number of levels. The user should only see the add options if they have appropriate permissions.

This MR also combines the create space and room pages and adds a lot of optional functionality for managing space children.

![image](/uploads/1764b0319241ff870dc39b18b39f5d51/image.png)
This commit is contained in:
James Graham
2023-09-28 17:36:23 +00:00
parent 08711fc927
commit ecdad9f965
24 changed files with 1486 additions and 80 deletions

View File

@@ -127,6 +127,13 @@ public:
*/
Q_INVOKABLE void leaveRoom(NeoChatRoom *room);
/**
* @brief Enter the home page of the given space.
*
* This method will tell NeoChat to open the home page for the given space.
*/
Q_INVOKABLE void enterSpaceHome(NeoChatRoom *spaceRoom);
// Overrided methods from UriResolverBase
/**
* @brief Resolve a user URI.
@@ -263,6 +270,26 @@ Q_SIGNALS:
*/
void replaceRoom(NeoChatRoom *room, const QString &event);
/**
* @brief Push a new space home page.
*
* Signal triggered when the main window pageStack should push a new page with
* the space home for the given space room.
*
* @param spaceRoom the space room to be shown on the new page.
*/
void pushSpaceHome(NeoChatRoom *spaceRoom);
/**
* @brief Replace the existing space home.
*
* Signal triggered when the currently displayed room page should be changed
* to the space home for the given space room.
*
* @param spaceRoom the space room to be shown on the new page.
*/
void replaceSpaceHome(NeoChatRoom *spaceRoom);
/**
* @brief Go to the specified event in the current room.
*/