7#ifndef __KIS_ASYNC_ACTION_FEEDBACK_H
8#define __KIS_ASYNC_ACTION_FEEDBACK_H
10#include <QScopedPointer>
31 template <
typename Mutex>
36 template<
typename Mutex,
typename CallbackFunc = DefaultWaitingMessageCallback>
40 template<
typename ...Args>
47 if (!Mutex::try_lock()) {
49 f.waitForMutex(
static_cast<Mutex&
>(*
this));
86 return mutex.try_lock();
94 const QScopedPointer<Private>
m_d;
MutexWrapper(Args ...args)
const QScopedPointer< Private > m_d
KisImportExportErrorCode runAction(std::function< KisImportExportErrorCode()> func)
void waitForMutex(Mutex &mutex)
~KisAsyncActionFeedback()
KisAsyncActionFeedback(const QString &message, QWidget *parent)
void runVoidAction(std::function< void()> func)
void waitForMutexLikeImpl(std::unique_ptr< MutexLikeBase > &&mutex)
QString operator()() const
virtual ~MutexLikeBase()=default
virtual bool try_lock()=0