ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Member Functions | List of all members
AccountController Class Reference

Controller managing all account-related windows and operations. More...

#include <AccountController.hpp>

Inheritance diagram for AccountController:
Inheritance graph
Collaboration diagram for AccountController:
Collaboration graph

Public Member Functions

 AccountController (QMainWindow *mainWindow, QMdiArea *mdiArea, ClientManager *clientManager, const QString &username, QList< DetachableMdiSubWindow * > &allDetachableWindows, QObject *parent=nullptr)
 Constructs the account controller.
 
 ~AccountController () override
 Destroys the account controller.
 
void showListWindow () override
 Shows the account list window.
 
void closeAllWindows () override
 Closes all windows managed by this controller.
 
- Public Member Functions inherited from EntityController
 EntityController (QMainWindow *mainWindow, QMdiArea *mdiArea, ClientManager *clientManager, const QString &username, QObject *parent=nullptr)
 Constructs an entity controller.
 
void setClientManager (ClientManager *clientManager, const QString &username)
 Updates the client manager and username (e.g. after re-login).
 
void setUsername (const QString &username)
 Updates just the username.
 

Additional Inherited Members

- Signals inherited from EntityController
void statusMessage (const QString &message)
 Emitted when a status message should be shown to the user.
 
void errorMessage (const QString &message)
 Emitted when an error message should be shown to the user.
 
- Protected Member Functions inherited from EntityController
QString build_window_key (const QString &windowType, const QString &identifier) const
 Generates a unique key for tracking windows.
 
bool try_reuse_window (const QString &key)
 Tries to reuse an existing window if one exists for the key.
 
void bring_window_to_front (DetachableMdiSubWindow *window)
 Activates the specified window, handling detached state.
 
void track_window (const QString &key, DetachableMdiSubWindow *window)
 Registers a window for tracking.
 
void untrack_window (const QString &key)
 Unregisters a window from tracking.
 
- Protected Attributes inherited from EntityController
QMainWindow * mainWindow_
 
QMdiArea * mdiArea_
 
ClientManagerclientManager_
 
QString username_
 
QMap< QString, DetachableMdiSubWindow * > managed_windows_
 Map of active windows indexed by unique key.
 

Detailed Description

Controller managing all account-related windows and operations.

The AccountController encapsulates all account management functionality, including:

This controller follows the entity controller pattern where MainWindow delegates all account operations to this controller, keeping the main window clean and entity-agnostic.

Note
Account management is only available to admin users. The MainWindow should check ClientManager::isAdmin() before showing account-related menus.

Constructor & Destructor Documentation

◆ AccountController()

AccountController ( QMainWindow *  mainWindow,
QMdiArea *  mdiArea,
ClientManager clientManager,
const QString &  username,
QList< DetachableMdiSubWindow * > &  allDetachableWindows,
QObject *  parent = nullptr 
)
explicit

Constructs the account controller.

Parameters
mainWindowParent main window (for dialog ownership)
mdiAreaMDI area where windows will be displayed
clientManagerClient manager for network operations
usernameUsername of logged-in user (for audit trails)
allDetachableWindowsReference to MainWindow's window list for detach/reattach operations
parentQObject parent (for Qt ownership)

◆ ~AccountController()

~AccountController ( )
override

Destroys the account controller.

All windows owned by this controller are automatically cleaned up through Qt's parent-child ownership.

Member Function Documentation

◆ showListWindow()

void showListWindow ( )
overridevirtual

Shows the account list window.

If the window already exists, brings it to front. Otherwise, creates a new account list window displaying all accounts from the server.

Note
Inherited from EntityController

Implements EntityController.

◆ closeAllWindows()

void closeAllWindows ( )
overridevirtual

Closes all windows managed by this controller.

Called when disconnecting from the server to clean up all account windows before destroying the controller.

Note
Inherited from EntityController

Implements EntityController.