From 91f8e460293f31f729d8a4e888b43d576b625d0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 30 Mar 2017 21:17:34 +0200 Subject: [PATCH] Revert `ProgressConnector` Doesn't work with `IdleRegister`. --- rtgui/progressconnector.h | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/rtgui/progressconnector.h b/rtgui/progressconnector.h index 4cf9b1e4e..3ce20f8f8 100644 --- a/rtgui/progressconnector.h +++ b/rtgui/progressconnector.h @@ -65,36 +65,32 @@ public: template class ProgressConnector { -private: + sigc::signal0 opStart; sigc::signal0 opEnd; T retval; Glib::Thread *workThread; - IdleRegister idle_register; + + static int emitEndSignalUI (void* data) + { + + sigc::signal0* opEnd = (sigc::signal0*) data; + int r = opEnd->emit (); + delete opEnd; + + return r; + } void workingThread () { - retval = opStart.emit(); - - const auto func = [](gpointer data) -> gboolean { - sigc::signal0* const opEnd = static_cast*>(data); - const gboolean res = opEnd->emit(); - delete opEnd; - - return res; - }; - - idle_register.add(func, new sigc::signal0(opEnd)); - + retval = opStart.emit (); + gdk_threads_add_idle(ProgressConnector::emitEndSignalUI, new sigc::signal0(opEnd)); workThread = nullptr; } public: + ProgressConnector (): retval( 0 ), workThread( nullptr ) { } - ~ProgressConnector() - { - idle_register.destroy(); - } void startFunc (const sigc::slot0& startHandler, const sigc::slot0& endHandler ) {