diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp index c773b305a695b2564df03d85feb02669e1578739..68fa3621a0a6663ba105e9677effb4e4f32f6e38 100644 --- a/src/pulsaranimationwidget.cpp +++ b/src/pulsaranimationwidget.cpp @@ -508,6 +508,15 @@ void PulsarAnimationWidget::stopAnimation() updateGL(); } +void PulsarAnimationWidget::resetViewpoint() +{ + m_mouseAngleH = 0.0; + m_mouseAngleV = 0.0; + m_cameraZoom = 30.0; + + updateCameraPosition(m_mouseAngleH, m_mouseAngleV, m_cameraZoom); +} + void PulsarAnimationWidget::updateFrame() { m_pulsarRotationAngle += m_pulsarRotationDelta; diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h index 3dbafa9bb75a8afec44b520bb486424e6bf668a0..21b582d44d355643db41a1abec0ce55fbe611c19 100644 --- a/src/pulsaranimationwidget.h +++ b/src/pulsaranimationwidget.h @@ -49,6 +49,7 @@ public slots: void runAnimation(); void pauseAnimation(); void stopAnimation(); + void resetViewpoint(); void updateFrame(); diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index fd4b727da53fdeb67f9be3b485b418bcd7a47806..3de1bec2004c0d49751f7ef83f3e34088d85313f 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -52,6 +52,8 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) m_pauseShortcut->setEnabled(false); m_stopShortcut = new QShortcut(ui.actionStop->shortcut(), this); m_stopShortcut->setEnabled(false); + m_resetShortcut = new QShortcut(ui.actionReset->shortcut(), this); + m_resetShortcut->setEnabled(false); m_rotationAxesShortcut = new QShortcut(ui.actionRotationAxes->shortcut(), this); m_rotationAxesShortcut->setEnabled(false); m_menuBarShortcut = new QShortcut(ui.actionMenu_bar->shortcut(), this); @@ -90,6 +92,12 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) connect(ui.actionStop, SIGNAL(triggered()), this, SLOT(on_pushStop_clicked())); + connect(ui.pushReset, SIGNAL(clicked()), + ui.pulsarGlWidget, SLOT(resetViewpoint())); + + connect(ui.actionReset, SIGNAL(triggered()), + ui.pulsarGlWidget, SLOT(resetViewpoint())); + connect(ui.actionRotationAxes, SIGNAL(toggled(bool)), ui.pulsarGlWidget, SLOT(showRotationAxes(bool))); @@ -120,6 +128,11 @@ PulsatingScience::~PulsatingScience() delete m_stopShortcut; } + if(m_resetShortcut) { + m_resetShortcut->disconnect(); + delete m_resetShortcut; + } + if(m_rotationAxesShortcut) { m_rotationAxesShortcut->disconnect(); delete m_rotationAxesShortcut; @@ -244,6 +257,8 @@ void PulsatingScience::on_actionMenu_bar_toggled(bool checked) m_pauseShortcut->setEnabled(false); m_stopShortcut->disconnect(); m_stopShortcut->setEnabled(false); + m_resetShortcut->disconnect(); + m_resetShortcut->setEnabled(false); m_rotationAxesShortcut->disconnect(); m_rotationAxesShortcut->setEnabled(false); m_fullscreenShortcut->disconnect(); @@ -262,6 +277,8 @@ void PulsatingScience::on_actionMenu_bar_toggled(bool checked) connect(m_pauseShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(pauseAnimation())); m_stopShortcut->setEnabled(true); connect(m_stopShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(stopAnimation())); + m_resetShortcut->setEnabled(true); + connect(m_resetShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(resetViewpoint())); m_rotationAxesShortcut->setEnabled(true); connect(m_rotationAxesShortcut, SIGNAL(activated()), this, SLOT(rotationAxesToggled())); m_fullscreenShortcut->setEnabled(true); diff --git a/src/pulsatingscience.h b/src/pulsatingscience.h index e74b34d4683397c270dd8f398b906f5f63885757..c4a78392282785be9eb9e8cc4292a241bac76efd 100644 --- a/src/pulsatingscience.h +++ b/src/pulsatingscience.h @@ -74,6 +74,7 @@ private: QShortcut *m_runShortcut; QShortcut *m_pauseShortcut; QShortcut *m_stopShortcut; + QShortcut *m_resetShortcut; QShortcut *m_permanentOrbitsShortcut; QShortcut *m_rotationAxesShortcut; QShortcut *m_menuBarShortcut; diff --git a/src/pulsatingscience.qrc b/src/pulsatingscience.qrc index a809b9a3c569ad125465145afbdf9a0cfdc3eda7..983fcf3e063a9b5dfd570098a9fbc9bf973e4df4 100644 --- a/src/pulsatingscience.qrc +++ b/src/pulsatingscience.qrc @@ -1,19 +1,20 @@ <RCC> - <qresource prefix="icons" > - <file>resources/control-pause.png</file> - <file>resources/control-quit.png</file> - <file>resources/control-run.png</file> - <file>resources/control-stop.png</file> - <file>resources/help-about.png</file> - <file>resources/help-help.png</file> - <file>resources/help-website.png</file> - <file>resources/aei-icon48.png</file> - </qresource> - <qresource prefix="i18ns" > - <file>resources/pulsatingscience_de.qm</file> - </qresource> - <qresource prefix="textures" > - <file>resources/texture_background_carina.png</file> - <file>resources/texture_pulsar.png</file> - </qresource> + <qresource prefix="/icons"> + <file>resources/control-pause.png</file> + <file>resources/control-quit.png</file> + <file>resources/control-run.png</file> + <file>resources/control-stop.png</file> + <file>resources/help-about.png</file> + <file>resources/help-help.png</file> + <file>resources/help-website.png</file> + <file>resources/aei-icon48.png</file> + <file>resources/control-reset.png</file> + </qresource> + <qresource prefix="/i18ns"> + <file>resources/pulsatingscience_de.qm</file> + </qresource> + <qresource prefix="/textures"> + <file>resources/texture_background_carina.png</file> + <file>resources/texture_pulsar.png</file> + </qresource> </RCC> diff --git a/src/pulsatingscience.ui b/src/pulsatingscience.ui index da45f723c5ef9a630c7cecccf4b8534d46f3e70a..77cc333dbab9d65c77be49b7e0120c633ad0f924 100644 --- a/src/pulsatingscience.ui +++ b/src/pulsatingscience.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>745</width> - <height>600</height> + <width>787</width> + <height>684</height> </rect> </property> <property name="windowTitle"> @@ -336,6 +336,26 @@ </property> </widget> </item> + <item> + <widget class="QPushButton" name="pushReset"> + <property name="statusTip"> + <string>Reset view to observer's line of sight</string> + </property> + <property name="text"> + <string>Reset</string> + </property> + <property name="icon"> + <iconset resource="pulsatingscience.qrc"> + <normaloff>:/icons/resources/control-reset.png</normaloff>:/icons/resources/control-reset.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>14</width> + <height>14</height> + </size> + </property> + </widget> + </item> <item> <spacer name="verticalSpacer"> <property name="orientation"> @@ -394,7 +414,7 @@ <rect> <x>0</x> <y>0</y> - <width>745</width> + <width>787</width> <height>22</height> </rect> </property> @@ -426,6 +446,8 @@ <addaction name="actionPause"/> <addaction name="actionStop"/> <addaction name="separator"/> + <addaction name="actionReset"/> + <addaction name="separator"/> <addaction name="actionQuit"/> </widget> <addaction name="menuControl"/> @@ -619,6 +641,21 @@ <string>Alt+O</string> </property> </action> + <action name="actionReset"> + <property name="icon"> + <iconset resource="pulsatingscience.qrc"> + <normaloff>:/icons/resources/control-reset.png</normaloff>:/icons/resources/control-reset.png</iconset> + </property> + <property name="text"> + <string>Reset</string> + </property> + <property name="toolTip"> + <string>Reset view</string> + </property> + <property name="shortcut"> + <string>Ctrl+R</string> + </property> + </action> </widget> <customwidgets> <customwidget>