Replace std::variant with boost::variant
Unavailable on MacOS < 1.14
This commit is contained in:
parent
e367ef8011
commit
4d0088e72f
@ -6,10 +6,10 @@ namespace Slic3r { namespace GUI {
|
||||
|
||||
void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner)
|
||||
{
|
||||
switch(MsgType(m_data.index())) {
|
||||
switch(MsgType(get_type())) {
|
||||
case Empty: break;
|
||||
case Status: {
|
||||
StatusInfo info = std::get<Status>(m_data);
|
||||
auto info = boost::get<StatusInfo>(m_data);
|
||||
if (runner.get_pri()) {
|
||||
runner.get_pri()->set_progress(info.status);
|
||||
runner.get_pri()->set_status_text(info.msg.c_str());
|
||||
@ -17,7 +17,7 @@ void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner)
|
||||
break;
|
||||
}
|
||||
case Finalize: {
|
||||
JobEntry& entry = std::get<Finalize>(m_data);
|
||||
auto& entry = boost::get<JobEntry>(m_data);
|
||||
entry.job->finalize(entry.canceled, entry.eptr);
|
||||
|
||||
// Unhandled exceptions are rethrown without mercy.
|
||||
@ -27,7 +27,7 @@ void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner)
|
||||
break;
|
||||
}
|
||||
case MainThreadCall: {
|
||||
MainThreadCallData &calldata = std::get<MainThreadCall>(m_data);
|
||||
auto &calldata = boost::get<MainThreadCallData >(m_data);
|
||||
calldata.fn();
|
||||
calldata.promise.set_value();
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef BOOSTTHREADWORKER_HPP
|
||||
#define BOOSTTHREADWORKER_HPP
|
||||
|
||||
#include <variant>
|
||||
#include <boost/variant.hpp>
|
||||
|
||||
#include "Worker.hpp"
|
||||
|
||||
@ -40,10 +40,12 @@ class BoostThreadWorker : public Worker, private Job::Ctl
|
||||
std::promise<void> promise;
|
||||
};
|
||||
|
||||
struct EmptyMessage {};
|
||||
|
||||
class WorkerMessage
|
||||
{
|
||||
enum MsgType { Empty, Status, Finalize, MainThreadCall };
|
||||
std::variant<std::monostate, StatusInfo, JobEntry, MainThreadCallData> m_data;
|
||||
boost::variant<EmptyMessage, StatusInfo, JobEntry, MainThreadCallData> m_data;
|
||||
|
||||
public:
|
||||
WorkerMessage() = default;
|
||||
@ -53,7 +55,7 @@ class BoostThreadWorker : public Worker, private Job::Ctl
|
||||
WorkerMessage(JobEntry &&entry) : m_data{std::move(entry)} {}
|
||||
WorkerMessage(MainThreadCallData fn) : m_data{std::move(fn)} {}
|
||||
|
||||
int get_type () const { return m_data.index(); }
|
||||
int get_type () const { return m_data.which(); }
|
||||
|
||||
void deliver(BoostThreadWorker &runner);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user