diff --git a/qglview/qglview.cpp b/qglview/qglview.cpp index d5160cf..a094d56 100644 --- a/qglview/qglview.cpp +++ b/qglview/qglview.cpp @@ -1,19 +1,19 @@ /* - QGLView - Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru + QGLView + Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include "qglview.h" @@ -28,6 +28,7 @@ QGLView::QGLView(QWidget * parent): QGraphicsView(parent), fbo_selection(3) { setScene(new QGraphicsScene()); setInteractive(true); _w = 0; + timer = 0; need_init_ = is_first_draw = true; objects_.is_root = true; objects_.view_ = this; @@ -365,7 +366,7 @@ void QGLView::paintGL() { glDrawQuad(); } } - + if (selecting_ && painter_) { painter_->setPen(sel_pen); painter_->setBrush(sel_brush); @@ -631,7 +632,7 @@ void QGLView::mouseMoveEvent(QMouseEvent * e) { QGraphicsView::mouseMoveEvent(e); //lastPos = e->pos(); if (selecting_) { - + return; } if (!mouseThis_) return; diff --git a/qglview/qglview.h b/qglview/qglview.h index f29f9d9..67bbd6e 100644 --- a/qglview/qglview.h +++ b/qglview/qglview.h @@ -1,19 +1,19 @@ /* - QGLView - Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru + QGLView + Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef QGLVIEW_H @@ -109,13 +109,13 @@ public: qglDepthOfFieldFocus, qglDepthOfFieldDiaphragm }; - + Q_ENUMS (FogMode) Q_ENUMS (SelectionMode) //enum LightingMode {Simple, PerPixel, DeferredShading}; //Q_ENUMS (LightingMode) - void stop() {killTimer(timer);} + void stop() {if (timer) killTimer(timer);} void start(double freq = 40.) {timer = startTimer(freq <= 0. ? 0 : 1000. / freq);} GLRendererBase * renderer() {return renderer_;}