45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
|
#include "settings_pane.hh"
|
||
|
|
||
|
#include <QCheckBox>
|
||
|
#include <QDoubleSpinBox>
|
||
|
#include <QFormLayout>
|
||
|
|
||
|
|
||
|
SettingsPane::SettingsPane(QWidget *parent)
|
||
|
:QWidget(parent) {
|
||
|
QDoubleSpinBox *sphere_radius = new QDoubleSpinBox();
|
||
|
QCheckBox *show_trajectories = new QCheckBox();
|
||
|
QCheckBox *show_support_lines = new QCheckBox();
|
||
|
collisions = new QListWidget();
|
||
|
|
||
|
connect(sphere_radius, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||
|
this, &SettingsPane::sphereRadiusChanged);
|
||
|
connect(show_trajectories, &QCheckBox::stateChanged,
|
||
|
this, &SettingsPane::toggledTrajectories);
|
||
|
connect(show_support_lines, &QCheckBox::stateChanged,
|
||
|
this, &SettingsPane::toggledSupportLines);
|
||
|
|
||
|
QFormLayout *layout = new QFormLayout;
|
||
|
layout->addRow("Taille de la sphère de collision", sphere_radius);
|
||
|
layout->addRow("Afficher les trajectoires", show_trajectories);
|
||
|
layout->addRow("Afficher les lignes de support", show_support_lines);
|
||
|
layout->addRow(collisions);
|
||
|
setLayout(layout);
|
||
|
}
|
||
|
|
||
|
|
||
|
void SettingsPane::addCollision(int idA, int idB, int frame) {
|
||
|
QListWidgetItem *item = new QListWidgetItem(QString::number(frame) + ": "
|
||
|
+ QString::number(idA) + " / " + QString::number(idB));
|
||
|
item->setFlags(Qt::ItemIsEnabled | Qt::ItemNeverHasChildren);
|
||
|
collisions->addItem(item);
|
||
|
}
|
||
|
|
||
|
|
||
|
void SettingsPane::clearCollisions() {
|
||
|
QListWidgetItem *item;
|
||
|
while ((item = collisions->takeItem(0)) != nullptr) {
|
||
|
delete item;
|
||
|
}
|
||
|
}
|