Carousel
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Properties Pages
Public Member Functions | Protected Member Functions | List of all members
IDialogService Class Referenceabstract

Defines methods for showing the dialogs. More...

#include <IDialogService.h>

Inherits QObject.

Inherited by DialogService.

Public Member Functions

template<typename TDialogModel >
QDialogcreateDialog (TDialogModel *dlgModel) const
 
template<typename TDialogModel >
bool isRegistered () const
 
template<typename TDialog , typename TDialogModel >
void registerDialog ()
 
template<typename TDialogModel >
bool showDialog (TDialogModel *dlgModel) const
 
template<typename TDialogModel >
bool unregisterDialogForModel ()
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
bool blockSignals (bool block)
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThreadthread () const
 

Protected Member Functions

virtual QDialogcreateDialogForModel (const QString &forDlgModelType, void *dlgModel) const =0
 
virtual bool isConstructorRegistered (const QString &forDlgModelType) const =0
 
virtual void registerConstructor (const QString &dlgModelType, IDialogConstructor *constructor)=0
 
virtual bool showDialogForModel (const QString &forDlgModelType, void *dlgModel) const =0
 
virtual bool unregisterConstructor (const QString &forDlgModelType)=0
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Defines methods for showing the dialogs.

Use IDialogService to show dialogs instead of explicitly creating dialogs in code to be able to fake dialogs (and returning results), e.g. for unit testing.

It is registered into the application services by the InteractionServiceComponent.

Member Function Documentation

template<typename TDialogModel >
QDialog * IDialogService::createDialog ( TDialogModel *  dlgModel) const

Creates and returns a new instance of the dialog, if any was registered for the TDialogModel. Otherwise, returns nullptr.

Note, that created dialog will be set with Qt::WA_DeleteOnClose flag;

Parameters
TDialogModelthe type of dialog model.
See Also
registerDialog(), showDialog()
template<typename TDialogModel >
bool IDialogService::isRegistered ( ) const

Returns true if dialog for the specified model type has been already registered. Otherwise, returns false.

See Also
registerDialog(), unregisterDialogForModel()
template<typename TDialog , typename TDialogModel >
void IDialogService::registerDialog ( )

Registers the TDialog type, that expects a TDialogModel pointer in the constructor. This dialog will be shown from the showDialog() method.

A new TDialog type is pushed to the top of dialog stack for the specified TDialogModel type, so to use older dialogs for this model, you should pop newer dialog type by calling unregisterDialogForModel().

The model should be derived from the QObject (dirctly or indirectly) and it should implement method

* void injectServiceLocator(IServiceLocator *locator);
*
Parameters
TDialogthe type of dialog.
TDialogModelthe type of dialog model.
Note
the TDialog should take ownership of the TDialogModel.
See Also
unregisterDialogForModel()
template<typename TDialogModel >
bool IDialogService::showDialog ( TDialogModel *  dlgModel) const

Creates new instance of the dialog (if any was registered for the TDialogModel), opens a modal dialog and returns true if user accept it, otherwise false. Also returns false, if dialog was not registered for the TDialogModel.

This method was added for convinient, and it uses createDialog() inside.

Parameters
TDialogModelthe type of dialog model.
See Also
registerDialog(), createDialog()
template<typename TDialogModel >
bool IDialogService::unregisterDialogForModel ( )

Unregisters (pops) last registered dialog (that had to display model) for the specified model type TDialogModel.

Component, that is going to shut down, should unregister all dialogs to restore old ones (if any were).

Returns true if dialog for the specified model type has been registered. Otherwise, returns false.

See Also
registerDialog()
virtual QDialog* IDialogService::createDialogForModel ( const QString forDlgModelType,
void *  dlgModel 
) const
protectedpure virtual

When overridden creates a new instance of the registered dialog with specified model, using constructor.

This method is invoked from the showDialogForModel().

See Also
showDialogForModel()

Implemented in DialogService.

virtual bool IDialogService::isConstructorRegistered ( const QString forDlgModelType) const
protectedpure virtual

When overridden returns true if dialog for the specified model type has been already registered. Otherwise, returns false.

Implemented in DialogService.

virtual void IDialogService::registerConstructor ( const QString dlgModelType,
IDialogConstructor constructor 
)
protectedpure virtual

When overridden registers the specified dialog constructor with the model type name for the creating dialog by demand (by the passed model type name).

This method is invoked from the template registerDialog() method, which gets model type name from the template model, and specializes dialog constructor with specified dialog and model types.

See Also
showDialog(), registerDialog()

Implemented in DialogService.

virtual bool IDialogService::showDialogForModel ( const QString forDlgModelType,
void *  dlgModel 
) const
protectedpure virtual

When overridden creates a new instance of the registered dialog with specified model, shows it and returns closing code. If dialog was not registered for this model type, returns false.

See Also
showDialog()

Implemented in DialogService.

virtual bool IDialogService::unregisterConstructor ( const QString forDlgModelType)
protectedpure virtual

When overridden removes dialog constructor for the specified model type.

Returns true if dialog constructor for the specified model type has been registered. Otherwise, returns false.

See Also
registerDialog()

Implemented in DialogService.