diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f6125f..de68dad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_policy(SET CMP0072 NEW) # FindOpenGL prefers GLVND by default project(qad) set(qad_MAJOR 2) set(qad_MINOR 2) -set(qad_REVISION 1) +set(qad_REVISION 2) set(qad_SUFFIX ) set(qad_COMPANY SHS) set(qad_DOMAIN org.SHS) diff --git a/libs/graphic/graphic.cpp b/libs/graphic/graphic.cpp index 6b8581e..15fb527 100644 --- a/libs/graphic/graphic.cpp +++ b/libs/graphic/graphic.cpp @@ -105,12 +105,6 @@ Graphic::Graphic(QWidget * parent): QFrame(parent), canvas(0), line_x_min(this), connect(&line_y_max, SIGNAL(valueChanged(double)), this, SLOT(lineYMaxChanged(double))); connect(ui->canvas_raster, SIGNAL(paintEvent(QPaintEvent * )), this, SLOT(canvasPaintEvent())); prepareCanvas(ui->canvas_raster); -#ifdef HAS_GL - canvas_gl = new UGLWidget(); - ui->layoutCanvas->addWidget(canvas_gl); - connect(canvas_gl, SIGNAL(paintSignal()), this, SLOT(canvasPaintEvent())); - prepareCanvas(canvas_gl); -#endif icon_exp_x = QIcon(":/icons/expand_x.png"); icon_exp_y = QIcon(":/icons/expand_y.png"); icon_exp_sx = QIcon(":/icons/expand_s_x.png"); @@ -870,11 +864,18 @@ void Graphic::setOpenGL(bool on) { #ifdef HAS_GL isOGL = on; if (on) { + if (!canvas_gl) { + canvas_gl = new UGLWidget(); + ui->layoutCanvas->addWidget(canvas_gl); + connect(canvas_gl, SIGNAL(paintSignal()), this, SLOT(canvasPaintEvent())); + prepareCanvas(canvas_gl); + } ui->canvas_raster->hide(); canvas_gl->show(); canvas = canvas_gl; } else { - canvas_gl->hide(); + if (canvas_gl) + canvas_gl->hide(); ui->canvas_raster->show(); canvas = ui->canvas_raster; } @@ -1460,7 +1461,8 @@ void Graphic::setCurrentAction(GraphicAction action) { void Graphic::setCanvasCursor(QCursor cursor) { ui->canvas_raster->setCursor(cursor); #ifdef HAS_GL - canvas_gl->setCursor(cursor); + if (canvas_gl) + canvas_gl->setCursor(cursor); #endif } @@ -1476,7 +1478,7 @@ void Graphic::setGuidesCursor() { void Graphic::swapToBuffer() { QImage timg; #ifdef HAS_GL - if (isOGL) { + if (isOGL && canvas_gl) { timg = canvas_gl->grabFrameBuffer(); QPainter p(buffer); p.drawImage(0, 0, timg);