0000920: Hide turntable dialog when in fullscreen mode
This commit is contained in:
parent
c6d23d1598
commit
9e546120bc
|
@ -26,6 +26,7 @@
|
||||||
# include <cmath>
|
# include <cmath>
|
||||||
# include <float.h>
|
# include <float.h>
|
||||||
# include <climits>
|
# include <climits>
|
||||||
|
# include <QCursor>
|
||||||
# include <QTimer>
|
# include <QTimer>
|
||||||
#include <Inventor/nodes/SoCamera.h>
|
#include <Inventor/nodes/SoCamera.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -53,6 +54,11 @@ DemoMode::DemoMode(QWidget* parent, Qt::WFlags fl)
|
||||||
timer->setInterval(1000 * ui->timeout->value());
|
timer->setInterval(1000 * ui->timeout->value());
|
||||||
connect(timer, SIGNAL(timeout()), this, SLOT(onAutoPlay()));
|
connect(timer, SIGNAL(timeout()), this, SLOT(onAutoPlay()));
|
||||||
oldvalue = ui->angleSlider->value();
|
oldvalue = ui->angleSlider->value();
|
||||||
|
|
||||||
|
wasHidden = false;
|
||||||
|
showHideTimer = new QTimer(this);
|
||||||
|
showHideTimer->setInterval(5000);
|
||||||
|
connect(showHideTimer, SIGNAL(timeout()), this, SLOT(hide()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Destroys the object and frees any allocated resources */
|
/** Destroys the object and frees any allocated resources */
|
||||||
|
@ -82,6 +88,35 @@ void DemoMode::reject()
|
||||||
QDialog::reject();
|
QDialog::reject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DemoMode::eventFilter(QObject *obj, QEvent *event)
|
||||||
|
{
|
||||||
|
if (event->type() == QEvent::MouseMove) {
|
||||||
|
if (ui->fullscreen->isChecked()) {
|
||||||
|
QPoint point = QCursor::pos() - oldPos;
|
||||||
|
if (point.manhattanLength() > 10) {
|
||||||
|
show();
|
||||||
|
showHideTimer->start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QDialog::eventFilter(obj, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DemoMode::showEvent(QShowEvent *)
|
||||||
|
{
|
||||||
|
if (this->wasHidden)
|
||||||
|
this->move(this->pnt);
|
||||||
|
this->wasHidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DemoMode::hideEvent(QHideEvent *)
|
||||||
|
{
|
||||||
|
this->pnt = this->pos();
|
||||||
|
this->wasHidden = true;
|
||||||
|
this->oldPos = QCursor::pos();
|
||||||
|
showHideTimer->stop();
|
||||||
|
}
|
||||||
|
|
||||||
Gui::View3DInventor* DemoMode::activeView() const
|
Gui::View3DInventor* DemoMode::activeView() const
|
||||||
{
|
{
|
||||||
Document* doc = Application::Instance->activeDocument();
|
Document* doc = Application::Instance->activeDocument();
|
||||||
|
@ -186,6 +221,14 @@ void DemoMode::on_fullscreen_toggled(bool on)
|
||||||
view->setCurrentViewMode(on ? MDIView::/*TopLevel*/FullScreen : MDIView::Child);
|
view->setCurrentViewMode(on ? MDIView::/*TopLevel*/FullScreen : MDIView::Child);
|
||||||
this->activateWindow();
|
this->activateWindow();
|
||||||
}
|
}
|
||||||
|
if (on) {
|
||||||
|
qApp->installEventFilter(this);
|
||||||
|
showHideTimer->start();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qApp->removeEventFilter(this);
|
||||||
|
showHideTimer->stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DemoMode::on_timeout_valueChanged(int v)
|
void DemoMode::on_timeout_valueChanged(int v)
|
||||||
|
|
|
@ -68,12 +68,19 @@ private:
|
||||||
Gui::View3DInventor* activeView() const;
|
Gui::View3DInventor* activeView() const;
|
||||||
void startAnimation(Gui::View3DInventor*);
|
void startAnimation(Gui::View3DInventor*);
|
||||||
void changeEvent(QEvent *e);
|
void changeEvent(QEvent *e);
|
||||||
|
bool eventFilter(QObject *, QEvent *);
|
||||||
|
void showEvent(QShowEvent *);
|
||||||
|
void hideEvent(QHideEvent *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int oldvalue;
|
int oldvalue;
|
||||||
SbVec3f viewAxis;
|
SbVec3f viewAxis;
|
||||||
|
bool wasHidden;
|
||||||
|
QPoint pnt;
|
||||||
|
QPoint oldPos;
|
||||||
Ui_DemoMode* ui;
|
Ui_DemoMode* ui;
|
||||||
QTimer* timer;
|
QTimer* timer;
|
||||||
|
QTimer* showHideTimer;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Dialog
|
} // namespace Dialog
|
||||||
|
|
Loading…
Reference in New Issue
Block a user