diff --git a/Hardware/3rdparty/bugui b/Hardware/3rdparty/bugui index a35f73f..0a04a68 160000 --- a/Hardware/3rdparty/bugui +++ b/Hardware/3rdparty/bugui @@ -1 +1 @@ -Subproject commit a35f73f5e0600726458454c23ffcf1e1ceb98d8e +Subproject commit 0a04a681f6f1baf201c48ce2c27ff848b2101ed2 diff --git a/Hardware/Widgets/EventWidget.cpp b/Hardware/Widgets/EventWidget.cpp index 7bf5b14..f118e1c 100644 --- a/Hardware/Widgets/EventWidget.cpp +++ b/Hardware/Widgets/EventWidget.cpp @@ -100,7 +100,12 @@ void EventWidget::on_state_removed(const Scenario::StateModel& state) void EventWidget::on_press(int x, int y, bool pressed) { - qDebug() << "is inside!"; + qDebug() << "event pressed"; +} + +void EventWidget::on_double_press(int x, int y, bool pressed) +{ + qDebug() << "event double pressed"; } } // namespace Hardware diff --git a/Hardware/Widgets/EventWidget.hpp b/Hardware/Widgets/EventWidget.hpp index 0145c14..16f146b 100644 --- a/Hardware/Widgets/EventWidget.hpp +++ b/Hardware/Widgets/EventWidget.hpp @@ -25,6 +25,8 @@ private: void paint(bugui::painter& painter) const override; void on_press(int x, int y, bool pressed) override; + void on_double_press(int x, int y, bool pressed); + void on_state_added(Scenario::StateModel& state); void on_state_removed(const Scenario::StateModel& state); diff --git a/Hardware/Widgets/IntervalWidget.cpp b/Hardware/Widgets/IntervalWidget.cpp index b4168f4..55bc93e 100644 --- a/Hardware/Widgets/IntervalWidget.cpp +++ b/Hardware/Widgets/IntervalWidget.cpp @@ -9,28 +9,7 @@ IntervalWidget::IntervalWidget(Scenario::IntervalModel& interval, ScenarioWidget* scenario, bugui::container_widget* parent) : ScenarioComponentSpec{interval, scenario, parent} -{ - connect(&model, - &Scenario::IntervalModel::heightPercentageChanged, - this, - [scenario] (double) { scenario->update(); }); - - connect(&model, - &Scenario::IntervalModel::dateChanged, - this, - [scenario] (const TimeVal&) { scenario->update(); }); -} - -IntervalWidget::~IntervalWidget() -{ - disconnect(&model, - &Scenario::IntervalModel::heightPercentageChanged, - this, 0); - - disconnect(&model, - &Scenario::IntervalModel::dateChanged, - this, 0); -} +{ } int IntervalWidget::x() const { @@ -47,19 +26,12 @@ int IntervalWidget::width() const return model.duration.defaultDuration().sec(); } -void IntervalWidget::paint(bugui::painter& painter) const -{ - // Copied from MiniscenarioView - // const auto col = skin.IntervalBase().color(); - // painter.set_color(col.red(), col.green(), col.blue(), col.alpha()); - - // painter.draw_line(0, 0, width(), 0); -} - bool IntervalWidget::contains(int px, int py) const { - if (px >= 0 && - px <= width() && + // ignore first and last cell + // so that timesyncs are pressed + // at the extremeties + if (px > 0 && px < width() && py == 0) return true; @@ -68,12 +40,12 @@ bool IntervalWidget::contains(int px, int py) const void IntervalWidget::on_press(int x, int y, bool pressed) { - qDebug() << "is inside!"; + qDebug() << "interval pressed"; } void IntervalWidget::on_double_press(int x, int y) { - qDebug() << "double pressed !"; + qDebug() << "interval double pressed"; } void IntervalWidget::on_drag(int from_x, int from_y, int to_x, int to_y) @@ -83,6 +55,3 @@ void IntervalWidget::on_drag(int from_x, int from_y, int to_x, int to_y) } } // namespace hardware - -#include -W_OBJECT_IMPL(Hardware::IntervalWidget); diff --git a/Hardware/Widgets/IntervalWidget.hpp b/Hardware/Widgets/IntervalWidget.hpp index f2043d5..8efede0 100644 --- a/Hardware/Widgets/IntervalWidget.hpp +++ b/Hardware/Widgets/IntervalWidget.hpp @@ -8,23 +8,16 @@ namespace Hardware { struct IntervalWidget final : ScenarioComponentSpec - , QObject { explicit IntervalWidget(Scenario::IntervalModel& interval, ScenarioWidget* scenario, bugui::container_widget* parent); - ~IntervalWidget() override; - int x() const override; int y() const override; int width() const override; private: - W_OBJECT(IntervalWidget) - - void paint(bugui::painter& painter) const override; - bool contains(int px, int py) const override; void on_press(int x, int y, bool pressed) override; diff --git a/Hardware/Widgets/ScenarioWidget.cpp b/Hardware/Widgets/ScenarioWidget.cpp index c5bbbbe..6be0f6e 100644 --- a/Hardware/Widgets/ScenarioWidget.cpp +++ b/Hardware/Widgets/ScenarioWidget.cpp @@ -41,7 +41,7 @@ int ScenarioWidget::width() const int ScenarioWidget::height() const { - return bugui::base_widget::parent->height(); + return 15; } Scenario::ProcessModel *ScenarioWidget::get_model() const diff --git a/Hardware/Widgets/StateWidget.cpp b/Hardware/Widgets/StateWidget.cpp index 2ca54b9..794a3ae 100644 --- a/Hardware/Widgets/StateWidget.cpp +++ b/Hardware/Widgets/StateWidget.cpp @@ -25,6 +25,7 @@ StateWidget::StateWidget(Scenario::StateModel& state, StateWidget::~StateWidget() { + // FIXME : this disconnect seem to cause crashes // disconnect(&model, // &Scenario::StateModel::heightPercentageChanged, // this, 0); @@ -53,12 +54,12 @@ bool StateWidget::contains(int px, int py) const void StateWidget::on_press(int x, int y, bool pressed) { - qDebug() << "is inside!"; + qDebug() << "state pressed"; } void StateWidget::on_double_press(int x, int y) { - qDebug() << "double pressed !"; + qDebug() << "state double pressed"; } void StateWidget::on_drag(int from_x, int from_y, int to_x, int to_y) diff --git a/Hardware/Widgets/TimeSyncWidget.cpp b/Hardware/Widgets/TimeSyncWidget.cpp index 215b6a6..db390ee 100644 --- a/Hardware/Widgets/TimeSyncWidget.cpp +++ b/Hardware/Widgets/TimeSyncWidget.cpp @@ -114,7 +114,7 @@ bool TimeSyncWidget::contains(int px, int py) const void TimeSyncWidget::on_press(int x, int y, bool pressed) { - qDebug() << "is inside!"; + qDebug() << "timeSync pressed"; } } // namespace Hardware