diff --git a/Hardware/3rdparty/bugui b/Hardware/3rdparty/bugui index 6e18b2d..ceddf20 160000 --- a/Hardware/3rdparty/bugui +++ b/Hardware/3rdparty/bugui @@ -1 +1 @@ -Subproject commit 6e18b2d897e89ced5eb420aafe7c50f29026bfb6 +Subproject commit ceddf2006062b5bcc83f8c3043a9bac79e485b81 diff --git a/Hardware/Controller.cpp b/Hardware/Controller.cpp index b203d91..5fc3b8f 100644 --- a/Hardware/Controller.cpp +++ b/Hardware/Controller.cpp @@ -8,8 +8,8 @@ namespace Hardware { Controller::Controller(const score::DocumentContext& doc) - : bugui::painter{[&doc, this] - (bugui::commands com, const bool& shift) + : bugui::controller{[&doc, this] + (bugui::commands com, const bool& shift) { switch (com) { @@ -29,12 +29,12 @@ Controller::Controller(const score::DocumentContext& doc) if (shift) { v_zoom += .2; - draw_intervals(); + update(); } else { v_ofset += .02; - draw_intervals(); + update(); } break; case bugui::Down: @@ -43,13 +43,13 @@ Controller::Controller(const score::DocumentContext& doc) if (v_zoom > .2) { v_zoom -= .2; - draw_intervals(); + update(); } } else { v_ofset -= .02; - draw_intervals(); + update(); } break; case bugui::Left: @@ -58,7 +58,7 @@ Controller::Controller(const score::DocumentContext& doc) if (h_zoom > .02) { h_zoom -= .02; - draw_intervals(); + update(); } } else @@ -66,7 +66,7 @@ Controller::Controller(const score::DocumentContext& doc) if (h_ofset > 0) { h_ofset -= .02; - draw_intervals(); + update(); } } break; @@ -74,12 +74,12 @@ Controller::Controller(const score::DocumentContext& doc) if (shift) { h_zoom += .02; - draw_intervals(); + update(); } else { h_ofset += .02; - draw_intervals(); + update(); } break; default: @@ -106,32 +106,30 @@ void Controller::setup_scenario(Scenario::ProcessModel* s) connect(scenar, &Scenario::ProcessModel::intervalMoved, - [this] { draw_intervals(); }); + [this] { update(); }); } void Controller::on_interval_changed(const Scenario::IntervalModel &) { - draw_intervals(); + update(); } -void Controller::draw_intervals() +void Controller::paint(bugui::painter &painter) { - if (!ctl || !scenar) return; + if (!scenar) return; // Copied from MiniscenarioView auto& skin = Process::Style::instance(); const auto col = skin.IntervalBase().color(); - set_color(col.redF(), col.greenF(), col.blackF(), col.alphaF()); + painter.set_color(col.redF(), col.greenF(), col.blackF(), col.alphaF()); for(const Scenario::IntervalModel& c : scenar->intervals) { auto def = c.duration.defaultDuration().sec() * h_zoom; auto st = (c.date().sec() * h_zoom) - h_ofset; auto y = (c.heightPercentage() * v_zoom) + v_ofset; - draw_line({st, y}, {st + def, y}); + painter.draw_line({st, y}, {st + def, y}); } - - update_grid(); } } diff --git a/Hardware/Controller.hpp b/Hardware/Controller.hpp index 1e69aa6..c1e06c3 100644 --- a/Hardware/Controller.hpp +++ b/Hardware/Controller.hpp @@ -5,12 +5,12 @@ #include #include -#include +#include namespace Hardware { class SCORE_ADDON_HARDWARE_EXPORT Controller - : public bugui::painter + : public bugui::controller , public QObject { W_OBJECT(Controller) @@ -19,7 +19,7 @@ public: explicit Controller(const score::DocumentContext& doc); void setup_scenario(Scenario::ProcessModel* s); - void draw_intervals(); + void paint(bugui::painter& painter) override; private: Scenario::ProcessModel* scenar;