From c0e08c4f5d22aedc28c2524c5853fcbf3f8593b8 Mon Sep 17 00:00:00 2001 From: Oliver Bock <oliver.bock@aei.mpg.de> Date: Fri, 6 Feb 2009 17:37:43 +0100 Subject: [PATCH] Added IYA2009 demo mode --- src/pulsatingscience.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/pulsatingscience.h | 6 ++++++ 2 files changed, 44 insertions(+) diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index 707edee..0b2085a 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -36,6 +36,7 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) m_statusBarVisible = ui.actionStatus_bar->isChecked(); m_animControlVisible = true; m_animControlFloating = ui.dockAnimControl->isFloating(); + m_hiddenDemoModeActivated = false; // register alternate shortcuts (will be enabled when menu is hidden) m_runShortcut = new QShortcut(ui.actionRun->shortcut(), this); @@ -53,6 +54,9 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) m_fullscreenShortcut = new QShortcut(ui.actionFullscreen->shortcut(), this); m_fullscreenShortcut->setEnabled(false); + // register "hidden" demo mode shortcut for IYA2009 exhibition + m_hiddenShortcut = new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::ALT + Qt::Key_D, this); + // establish object communications connect(ui.pushRun, SIGNAL(clicked()), ui.pulsarGlWidget, SLOT(runAnimation())); @@ -95,6 +99,9 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) connect(ui.pulsarGlWidget, SIGNAL(pulseProfileUpdated(const QVector<double>&)), ui.pulseScopeWidget, SLOT(drawCurve(const QVector<double>&)), Qt::DirectConnection); + + connect(m_hiddenShortcut, SIGNAL(activated()), + this, SLOT(toggleHiddenDemoMode())); } PulsatingScience::~PulsatingScience() @@ -133,6 +140,21 @@ PulsatingScience::~PulsatingScience() m_fullscreenShortcut->disconnect(); delete m_fullscreenShortcut; } + + if(m_hiddenShortcut) { + m_hiddenShortcut->disconnect(); + delete m_hiddenShortcut; + } +} + +void PulsatingScience::closeEvent(QCloseEvent *event) +{ + if(m_hiddenDemoModeActivated) { + event->ignore(); + } + else { + event->accept(); + } } void PulsatingScience::on_pushRun_clicked() @@ -402,3 +424,19 @@ void PulsatingScience::updatePulsarSemiMajorAxisValue(double value) ui.lcdPulsarSemiMajorAxis->display(QString::number(value, 'f', 1)); } } + +void PulsatingScience::toggleHiddenDemoMode() +{ + if(m_hiddenDemoModeActivated) { + menuBarToggled(); + window()->setWindowState(windowState() & ~Qt::WindowFullScreen); + ui.dockAnimControl->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + m_hiddenDemoModeActivated = false; + } + else { + menuBarToggled(); + window()->setWindowState(windowState() | Qt::WindowFullScreen); + ui.dockAnimControl->setFeatures(QDockWidget::NoDockWidgetFeatures); + m_hiddenDemoModeActivated = true; + } +} diff --git a/src/pulsatingscience.h b/src/pulsatingscience.h index 9f42e33..ef6fda2 100644 --- a/src/pulsatingscience.h +++ b/src/pulsatingscience.h @@ -27,6 +27,7 @@ #include "ui_pulsatingscience.h" + class PulsatingScience : public QMainWindow { Q_OBJECT @@ -35,6 +36,8 @@ public: PulsatingScience(QWidget *parent = 0); ~PulsatingScience(); + void closeEvent(QCloseEvent *event); + public slots: void on_pushRun_clicked(); void on_pushPause_clicked(); @@ -64,6 +67,7 @@ public slots: void on_actionAbout_activated(); void updatePulsarSemiMajorAxisValue(double value); + void toggleHiddenDemoMode(); private: Ui::PulsatingScienceClass ui; @@ -75,6 +79,7 @@ private: QShortcut *m_rotationAxesShortcut; QShortcut *m_menuBarShortcut; QShortcut *m_fullscreenShortcut; + QShortcut *m_hiddenShortcut; bool m_permanentOrbits; bool m_rotationAxesVisible; @@ -82,6 +87,7 @@ private: bool m_statusBarVisible; bool m_animControlVisible; bool m_animControlFloating; + bool m_hiddenDemoModeActivated; }; #endif // PULSATINGSCIENCE_H -- GitLab