1 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net> 2 3 This file is part of the Trojita Qt IMAP e-mail client, 4 http://trojita.flaska.net/ 5 6 This program is free software; you can redistribute it and/or 7 modify it under the terms of the GNU General Public License as 8 published by the Free Software Foundation; either version 2 of 9 the License or (at your option) version 3 or any later version 10 accepted by the membership of KDE e.V. (or its successor approved 11 by the membership of KDE e.V.), which shall act as a proxy 12 defined in Section 14 of version 3 of the license. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef TROJITA_INVOKEMETHOD_H 24 #define TROJITA_INVOKEMETHOD_H 25 26 #include <QMetaObject> 27 28 #define CALL_LATER(OBJECT, MEMBER, ...) \ 29 { bool res = QMetaObject::invokeMethod(OBJECT, #MEMBER, Qt::QueuedConnection, __VA_ARGS__); \ 30 Q_ASSERT(res); Q_UNUSED(res); } 31 32 #define CALL_LATER_NOARG(OBJECT, MEMBER) CALL_LATER(OBJECT, MEMBER, QGenericArgument()) 33 34 #define EMIT_LATER CALL_LATER 35 #define EMIT_LATER_NOARG CALL_LATER_NOARG 36 37 #endif 38