8#include "ui_pervertexcollectionsettings_form.h"
18#include "Inventor/nodes/SoDrawStyle.h"
19#include "Inventor/nodes/SoLightModel.h"
20#include "Inventor/nodes/SoMaterial.h"
28#include <QDragEnterEvent>
71 theclass->messageVerbose(
"Initialising material editor dialog");
72 editwindow =
new QWidget(0,Qt::WindowStaysOnTopHint);
81 m_d->editwindow->setWindowTitle(t);
92 m_d->initEditWindow();
96 m_d->vertexDrawStyle =
new SoDrawStyle;
97 m_d->vertexDrawStyle->setName(
"VertexDrawStyle");
98 m_d->vertexDrawStyle->pointSize=5.0;
99 m_d->vertexDrawStyle->ref();
101 connect(
m_d->editwindow_ui.horizontalSlider_vertexSize,SIGNAL(valueChanged(
int)),
this,SIGNAL(
vertexSizeChanged(
int)));
103 m_d->vertexLightModel =
new SoLightModel;
104 m_d->vertexLightModel->setName(
"VertexLightModel");
105 m_d->vertexLightModel->ref();
107 connect(
m_d->editwindow_ui.checkBox_verticesUseBaseLightModel,SIGNAL(toggled(
bool)),
this,SLOT(
updateVertexLightModel(
bool)));
135 setAcceptDrops(
true);
148 delete m_d->editwindow;
149 m_d->vertexDrawStyle->unref();
150 m_d->vertexLightModel->unref();
156 if (objectName().isEmpty())
157 setObjectName(
"VertexCollectionSettingsButton");
158 messageVerbose(
"setColButtonProperties: color=" +
str(
m_d->matButton->lastAppliedDiffuseColour()));
172 if (!
m_d->editwindow)
173 m_d->initEditWindow();
175 if (
m_d->editwindow->isHidden())
176 m_d->editwindow->show();
178 m_d->editwindow->hide();
184 if (!
m_d->matButton)
m_d->initEditWindow();
185 m_d->matButton->setMaterial(mat);
191 if (!
m_d->matButton)
m_d->initEditWindow();
192 m_d->matButton->setMaterial(mat);
196 if (!
m_d->matButton)
m_d->initEditWindow();
197 return m_d->matButton->lastAppliedTransparency();
201 if (!
m_d->matButton)
m_d->initEditWindow();
202 return m_d->matButton->lastAppliedShininess();
206 if (!
m_d->matButton)
m_d->initEditWindow();
207 return m_d->matButton->lastAppliedBrightness();
220 if (
m_d->vertexLightModel->model.getValue()!=(
base?SoLightModel::BASE_COLOR:SoLightModel::PHONG)) {
223 m_d->vertexLightModel->model.setValue(SoLightModel::BASE_COLOR);
225 m_d->vertexLightModel->model.setValue(SoLightModel::PHONG);
232 return m_d->vertexDrawStyle;
237 return m_d->vertexLightModel;
242 return m_d->editwindow_ui.horizontalSlider_vertexSize->value();
248 if (event->button() == Qt::LeftButton)
249 m_d->dragStartPosition =
event->pos();
250 QPushButton::mousePressEvent(event);
256 if (event->source()!=
this && event->mimeData()->hasFormat(
"vp1/material"))
257 event->acceptProposedAction();
263 if (!(event->buttons() & Qt::LeftButton))
265 if ((event->pos() -
m_d->dragStartPosition).manhattanLength()
266 < QApplication::startDragDistance())
269 QDrag *drag =
new QDrag(
this);
270 QMimeData *mimeData =
new QMimeData;
279 mimeData->setData(
"vp1/material", byteArray);
308 drag->setMimeData(mimeData);
309 drag->exec(Qt::CopyAction | Qt::MoveAction);
315 QByteArray
data =
event->mimeData()->data(
"vp1/material");
316 event->acceptProposedAction();
327 serialise.save(
m_d->matButton);
332 serialise.save(
m_d->editwindow_ui.horizontalSlider_vertexSize);
333 serialise.save(
m_d->editwindow_ui.checkBox_verticesUseBaseLightModel);
336 serialise.save(
m_d->editwindow_ui.checkBox_cut_r);
337 serialise.save(
m_d->editwindow_ui.checkBox_cut_r_range_forcesymmetric);
338 serialise.save(
m_d->editwindow_ui.checkBox_cut_r_excludeRange);
339 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_r_lower);
340 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_r_upper);
343 serialise.save(
m_d->editwindow_ui.checkBox_cut_y);
344 serialise.save(
m_d->editwindow_ui.checkBox_cut_y_range_forcesymmetric);
345 serialise.save(
m_d->editwindow_ui.checkBox_cut_y_excludeRange);
346 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_y_lower);
347 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_y_upper);
349 serialise.save(
m_d->editwindow_ui.checkBox_cut_z);
350 serialise.save(
m_d->editwindow_ui.checkBox_cut_z_range_forcesymmetric);
351 serialise.save(
m_d->editwindow_ui.checkBox_cut_z_excludeRange);
352 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_z_lower);
353 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_z_upper);
355 serialise.widgetHandled(
this);
356 serialise.warnUnsaved(
this);
357 return serialise.result();
370 state.
restore(
m_d->editwindow_ui.horizontalSlider_vertexSize);
371 state.
restore(
m_d->editwindow_ui.checkBox_verticesUseBaseLightModel);
374 state.
restore(
m_d->editwindow_ui.checkBox_cut_r);
375 state.
restore(
m_d->editwindow_ui.checkBox_cut_r_range_forcesymmetric);
376 state.
restore(
m_d->editwindow_ui.checkBox_cut_r_excludeRange);
377 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_r_lower);
378 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_r_upper);
381 state.
restore(
m_d->editwindow_ui.checkBox_cut_y);
382 state.
restore(
m_d->editwindow_ui.checkBox_cut_y_range_forcesymmetric);
383 state.
restore(
m_d->editwindow_ui.checkBox_cut_y_excludeRange);
384 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_y_lower);
385 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_y_upper);
387 state.
restore(
m_d->editwindow_ui.checkBox_cut_z);
388 state.
restore(
m_d->editwindow_ui.checkBox_cut_z_range_forcesymmetric);
389 state.
restore(
m_d->editwindow_ui.checkBox_cut_z_excludeRange);
390 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_z_lower);
391 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_z_upper);
405 if (!
m_d->editwindow)
406 m_d->initEditWindow();
407 if (!
m_d->editwindow_ui.checkBox_cut_r)
410 const double minFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_r_lower->value()*1000;
411 const double maxFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_r_upper->value()*1000;
415 min = (
m_d->editwindow_ui.checkBox_cut_r->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
416 max = (
m_d->editwindow_ui.checkBox_cut_r->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
431 if (!
m_d->editwindow)
432 m_d->initEditWindow();
433 if (!
m_d->editwindow_ui.checkBox_cut_y)
436 const double minFromInterface =
m_d->editwindow_ui.doubleSpinBox_cut_y_lower->value();
437 const double maxFromInterface =
m_d->editwindow_ui.doubleSpinBox_cut_y_upper->value();
441 min = (
m_d->editwindow_ui.checkBox_cut_y->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
442 max = (
m_d->editwindow_ui.checkBox_cut_y->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
456 if (!
m_d->editwindow)
457 m_d->initEditWindow();
458 if (!
m_d->editwindow_ui.checkBox_cut_z)
461 const double minFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_z_lower->value();
462 const double maxFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_z_upper->value();
466 min = (
m_d->editwindow_ui.checkBox_cut_z->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
467 max = (
m_d->editwindow_ui.checkBox_cut_z->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
char data[hepevt_bytes_allocation_ATLAS]
void restore(QCheckBox *sb)
void warnUnrestored(QObject *)
void widgetHandled(QWidget *)
void messageVerbose(const QString &) const
IVP1System * systemBase() const