From 5d54bfca96499b7a349a59d3d52933dbc87f00d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Tue, 27 Sep 2011 00:11:13 +0200 Subject: [PATCH] Make qtplug compile again. --- plugins/qtplug/CMakeLists.txt | 3 ++- plugins/qtplug/qtplug.cpp | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/plugins/qtplug/CMakeLists.txt b/plugins/qtplug/CMakeLists.txt index 651d9f0e4..aaeb165e6 100644 --- a/plugins/qtplug/CMakeLists.txt +++ b/plugins/qtplug/CMakeLists.txt @@ -7,12 +7,13 @@ if(QT4_FOUND AND OPENGL_FOUND AND OPENGL_GLU_FOUND) set( QT_USE_QTOPENGL TRUE ) INCLUDE( ${QT_USE_FILE} ) - include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) + include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} "${dfhack_SOURCE_DIR}/library/depends/tthread") set ( qtplug_SRCS qtplug.cpp blankslade.cpp glwidget.cpp + ${dfhack_SOURCE_DIR}/library/depends/tthread/tinythread.cpp ) SET ( qtplug_UI diff --git a/plugins/qtplug/qtplug.cpp b/plugins/qtplug/qtplug.cpp index 7ca0be120..2c6dbf3ad 100644 --- a/plugins/qtplug/qtplug.cpp +++ b/plugins/qtplug/qtplug.cpp @@ -12,15 +12,16 @@ #include #include "blankslade.h" +#include "tinythread.h" using std::vector; using std::string; using std::stack; using namespace DFHack; -static int runnable(void *); -static SDL::Mutex * instance_mutex = 0; +static void runnable(void *); +static tthread::mutex * instance_mutex = 0; static bool running = false; -static SDL::Thread * QTThread; +static tthread::thread * QTThread; DFhackCExport command_result runqt (Core * c, vector & parameters); @@ -31,7 +32,7 @@ DFhackCExport const char * plugin_name ( void ) DFhackCExport command_result plugin_init ( Core * c, std::vector &commands) { - instance_mutex = SDL_CreateMutex(); + instance_mutex = new tthread::mutex(); commands.clear(); commands.push_back(PluginCommand("runqt","Open an interactive Qt gui.",runqt)); return CR_OK; @@ -44,29 +45,28 @@ DFhackCExport command_result plugin_shutdown ( Core * c ) DFhackCExport command_result runqt (Core * c, vector & parameters) { - SDL_mutexP(instance_mutex); + instance_mutex->lock(); if(!running) { running = true; - QTThread = SDL_CreateThread(runnable, 0); + QTThread = new tthread::thread(runnable, 0); } else { c->con.printerr("The Qt test plugin is already running!\n"); } - SDL_mutexV(instance_mutex); + instance_mutex->unlock(); return CR_OK; } -static int runnable(void *) +static void runnable(void *) { - int zero = 0; + int zero = 0; QApplication app(zero, 0); blankslade appGui; appGui.show(); - int ret = app.exec(); - SDL_mutexP(instance_mutex); + app.exec(); + instance_mutex->lock(); running = false; - SDL_mutexV(instance_mutex); - return ret; + instance_mutex->unlock(); }