diff -r d7fc66ccd6fb -r e44a8c097b15 vmbx/vmbxengine/inc/dialogwaiter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vmbx/vmbxengine/inc/dialogwaiter.h Fri May 14 16:24:46 2010 +0300 @@ -0,0 +1,62 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: dialog waiter +* +* +*/ + +#ifndef DIALOGWAITER_H +#define DIALOGWAITER_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATION +class HbAction; + +/** + * This utility synchronises access to dialogs, popups, menus and + * other ORBIT resources. How to use: + * + * HbDialog* dialog = new HbDialog(); + * DialogWaiter waiter(); + * dialog->open(&waiter, SLOT(done(HbAction*))); + * HbAction* result = waiter.wait(); + * delete dialog; + * if (result==...) ... + * + */ +class DialogWaiter : public QObject +{ + Q_OBJECT + + public: + + /** + * waits until dialog exits + * returns dialog exit action + */ + HbAction* wait(); + + private slots: + void done(HbAction* result); + + private: + QEventLoop mLoop; + HbAction* mResult; + +}; + +#endif // DIALOGWAITER_H