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

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

#include <CurrencyController.hpp>

Inheritance diagram for CurrencyController:
Inheritance graph
Collaboration diagram for CurrencyController:
Collaboration graph

Public Member Functions

 CurrencyController (QMainWindow *mainWindow, QMdiArea *mdiArea, ClientManager *clientManager, const QString &username, QList< DetachableMdiSubWindow * > &allDetachableWindows, QObject *parent=nullptr)
 Constructs the currency controller.
 
 ~CurrencyController () override
 Destroys the currency controller.
 
void showListWindow () override
 Shows the currency 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 currency-related windows and operations.

The CurrencyController encapsulates all currency-specific functionality, including:

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

Note
The controller maintains weak references (QPointer) to windows to allow them to be closed independently without leaving dangling pointers.

Constructor & Destructor Documentation

◆ CurrencyController()

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

Constructs the currency 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)

◆ ~CurrencyController()

~CurrencyController ( )
override

Destroys the currency 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 currency list window.

If the window already exists, brings it to front. Otherwise, creates a new currency list window displaying all currencies 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 currency windows before destroying the controller.

Note
Inherited from EntityController

Implements EntityController.