diff --git a/qad/graphic/graphic.cpp b/qad/graphic/graphic.cpp
index ee39655..3fe7b5a 100644
--- a/qad/graphic/graphic.cpp
+++ b/qad/graphic/graphic.cpp
@@ -66,7 +66,7 @@ Graphic::Graphic(QWidget * parent): QFrame(parent), line_x_min(this), line_x_max
connect(&line_x_max, SIGNAL(valueChanged(double)), this, SLOT(lineXMaxChanged(double)));
connect(&line_y_min, SIGNAL(valueChanged(double)), this, SLOT(lineYMinChanged(double)));
connect(&line_y_max, SIGNAL(valueChanged(double)), this, SLOT(lineYMaxChanged(double)));
- connect(ui->canvas_raster, SIGNAL(paintEvent(QPaintEvent * )), this, SLOT(canvasPaintEvent(QPaintEvent * )));
+ connect(ui->canvas_raster, SIGNAL(paintEvent(QPaintEvent * )), this, SLOT(canvasPaintEvent()));
connect(ui->canvas_raster, SIGNAL(mouseMoveEvent(QMouseEvent * )), this, SLOT(canvasMouseMoveEvent(QMouseEvent * )));
connect(ui->canvas_raster, SIGNAL(mousePressEvent(QMouseEvent * )), this, SLOT(canvasMousePressEvent(QMouseEvent * )));
connect(ui->canvas_raster, SIGNAL(mouseReleaseEvent(QMouseEvent * )), this, SLOT(canvasMouseReleaseEvent(QMouseEvent * )));
@@ -74,7 +74,7 @@ Graphic::Graphic(QWidget * parent): QFrame(parent), line_x_min(this), line_x_max
connect(ui->canvas_raster, SIGNAL(wheelEvent(QWheelEvent * )), this, SLOT(canvasWheelEvent(QWheelEvent * )));
connect(ui->canvas_raster, SIGNAL(leaveEvent(QEvent * )), this, SLOT(canvasLeaveEvent(QEvent * )));
connect(ui->canvas_raster, SIGNAL(keyPressEvent(QKeyEvent * )), this, SLOT(canvasKeyPressEvent(QKeyEvent * )));
- connect(ui->canvas_gl, SIGNAL(paintEvent(QPaintEvent * )), this, SLOT(canvasPaintEvent(QPaintEvent * )));
+ connect(ui->canvas_gl, SIGNAL(paintSignal()), this, SLOT(canvasPaintEvent()));
connect(ui->canvas_gl, SIGNAL(mouseMoveEvent(QMouseEvent * )), this, SLOT(canvasMouseMoveEvent(QMouseEvent * )));
connect(ui->canvas_gl, SIGNAL(mousePressEvent(QMouseEvent * )), this, SLOT(canvasMousePressEvent(QMouseEvent * )));
connect(ui->canvas_gl, SIGNAL(mouseReleaseEvent(QMouseEvent * )), this, SLOT(canvasMouseReleaseEvent(QMouseEvent * )));
@@ -191,7 +191,7 @@ void Graphic::procGesture(QGesture * g) {
}
-void Graphic::canvasPaintEvent(QPaintEvent * ) {
+void Graphic::canvasPaintEvent() {
if (is_lines_update) return;
//QMutexLocker ml(&mutex_);
//static int pwid = 0, phei = 0;
@@ -853,7 +853,7 @@ void Graphic::drawAction() {
void Graphic::drawGrid() {
- int gbx = gridborder.x(), gby = gridborder.y(), cwid = painter->viewport().width(), chei = painter->viewport().height() - legy;
+ int gbx = gridborder.x(), gby = gridborder.y(), cwid = canvas->width(), chei = canvas->height() - legy;
double px, py, range, step, start;
int wid = cwid - gbx - 5, hei = chei - gby - 5, cx, cy, cnt;
QRect rect;
@@ -1016,7 +1016,7 @@ void Graphic::drawGraphics() {
if (isHover)
ui->status->setText(tr("Cursor: ") + pointCoords(canvas2real(QPointF(curpos))));
QPointF srp = -selrect.topLeft(), cp;
- double sclx, scly, wid = painter->viewport().width(), hei = painter->viewport().height() - legy, pw;
+ double sclx, scly, wid = canvas->width(), hei = canvas->height() - legy, pw;
sclx = (wid - gridborder.x() - margins_.left() - margins_.width()) / selrect.width();
scly = (hei - gridborder.y() - margins_.top() - margins_.height()) / selrect.height();
painter->setClipping(true);
diff --git a/qad/graphic/graphic.h b/qad/graphic/graphic.h
index 9d46bc3..e14b520 100644
--- a/qad/graphic/graphic.h
+++ b/qad/graphic/graphic.h
@@ -394,7 +394,7 @@ protected:
bool hasLblX, hasLblY, navigation, only_expand_y, only_expand_x, is_lines_update, leg_update, visible_update, fullscr;
protected slots:
- void canvasPaintEvent(QPaintEvent * );
+ void canvasPaintEvent();
void canvasMouseMoveEvent(QMouseEvent * );
void canvasMousePressEvent(QMouseEvent * );
void canvasMouseReleaseEvent(QMouseEvent * );
diff --git a/qad/graphic/qpicalculator/mainwindow.cpp b/qad/graphic/qpicalculator/mainwindow.cpp
index 8879dd5..c7ad2a3 100644
--- a/qad/graphic/qpicalculator/mainwindow.cpp
+++ b/qad/graphic/qpicalculator/mainwindow.cpp
@@ -16,7 +16,7 @@ MainWindow::MainWindow(QWidget * parent): QMainWindow(parent), Ui::MainWindow()
epal.setColor(lineInput->backgroundRole(), QColor(Qt::red).lighter(150));
connect(&session, SIGNAL(loading(QPIConfig & )), this, SLOT(loading(QPIConfig & )));
connect(&session, SIGNAL(saving(QPIConfig & )), this, SLOT(saving(QPIConfig & )));
- session.setFile("session.conf");
+ session.setFile("session_qpicalc.conf");
session.addEntry(this);
session.addEntry(lineInput);
session.addEntry(tabWidget);
@@ -105,6 +105,9 @@ void MainWindow::loading(QPIConfig & conf) {
}
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
graphic->setVisualRect(conf.getValue("graphicRect", QRectF(-1., -1., 2., 2.)));
+ ba = conf.getValue("graphic_state", QByteArray());
+ if (!ba.isEmpty())
+ graphic->load(ba);
on_tabWidget_currentChanged(0);
redrawGraphics();
active_ = true;
@@ -130,6 +133,7 @@ void MainWindow::saving(QPIConfig & conf) {
s << graphic->allGraphics();
conf.setValue("graphics", QByteArray2QString(ba));
conf.setValue("graphicRect", graphic->visualRect());
+ conf.setValue("graphic_state", graphic->save());
}
diff --git a/qad/graphic/qpicalculator/mainwindow.ui b/qad/graphic/qpicalculator/mainwindow.ui
index 5126993..dc76d26 100644
--- a/qad/graphic/qpicalculator/mainwindow.ui
+++ b/qad/graphic/qpicalculator/mainwindow.ui
@@ -7,7 +7,7 @@
0
0
780
- 492
+ 521
@@ -22,7 +22,7 @@
-
- 0
+ 2
@@ -32,7 +32,16 @@
2
-
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
2
-
@@ -120,7 +129,16 @@
2
-
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
2
-
@@ -166,7 +184,7 @@
-
-
+
:/icons/list-add.png:/icons/list-add.png
@@ -183,7 +201,7 @@
false
-
+
:/icons/edit-delete.png:/icons/edit-delete.png
@@ -219,7 +237,7 @@
false
-
+
:/icons/edit-clear.png:/icons/edit-clear.png
@@ -255,7 +273,16 @@
2
-
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
2
-
@@ -313,7 +340,7 @@
-
-
+
:/icons/list-add.png:/icons/list-add.png
@@ -330,7 +357,7 @@
false
-
+
:/icons/edit-delete.png:/icons/edit-delete.png
@@ -366,7 +393,7 @@
false
-
+
:/icons/edit-clear.png:/icons/edit-clear.png
@@ -402,7 +429,7 @@
-
- Graphic::BorderInputs|Graphic::Configure|Graphic::CursorAxis|Graphic::Grid|Graphic::Save
+ Graphic::BorderInputs|Graphic::Configure|Graphic::CursorAxis|Graphic::Fullscreen|Graphic::Grid|Graphic::Save
true
@@ -436,6 +463,7 @@
+
diff --git a/qad/graphic/uglwidget.h b/qad/graphic/uglwidget.h
index 2d2a0df..859070b 100644
--- a/qad/graphic/uglwidget.h
+++ b/qad/graphic/uglwidget.h
@@ -2,6 +2,7 @@
#define UGLWIDGET_H
#include
+#include
#if QT_VERSION >= 0x050400
# include
typedef QOpenGLWidget __GLWidget__;
@@ -18,13 +19,29 @@ class UGLWidget: public __GLWidget__
{
Q_OBJECT
public:
- UGLWidget(QWidget * parent = 0): __GLWidget__(/*QGLFormat(QGL::DoubleBuffer | QGL::AlphaChannel | QGL::DirectRendering | QGL::SampleBuffers),*/ parent) {}
+#if QT_VERSION >= 0x050400
+ UGLWidget(QWidget * parent = 0): __GLWidget__(parent) {QSurfaceFormat sf = format(); sf.setSamples(8); setFormat(sf);}
+#else
+ UGLWidget(QWidget * parent = 0): __GLWidget__(QGLFormat(QGL::DoubleBuffer | QGL::AlphaChannel | QGL::DirectRendering | QGL::SampleBuffers), parent) {}
+#endif
//UGLWidget(QGLContext * context, QWidget * parent = 0): __GLWidget__(context, parent) {}
#if QT_VERSION >= 0x050400
QImage grabFrameBuffer() {return grabFramebuffer();}
#endif
+protected:
+#if QT_VERSION >= 0x050400
+ virtual void paintGL() {emit paintSignal();}
+#else
+ virtual void paintEvent(QPaintEvent * ) {emit paintSignal();}
+#endif
+ virtual void resizeEvent(QResizeEvent * e) {
+ __GLWidget__::resizeEvent(e);
+ emit resizeSignal();
+ }
+
+
signals:
void closeEvent(QCloseEvent * e);
void dragEnterEvent(QDragEnterEvent * e);
@@ -41,18 +58,10 @@ signals:
void mousePressEvent(QMouseEvent * e);
void mouseReleaseEvent(QMouseEvent * e);
void moveEvent(QMoveEvent * e);
- void resizeEvent(QResizeEvent * e);
void showEvent(QShowEvent * e);
void wheelEvent(QWheelEvent * e);
- void paintEvent(QPaintEvent * e);
- void glDraw();
- void glInit();
- void initializeGL();
- void initializeOverlayGL();
- void paintGL();
- void paintOverlayGL();
- void resizeGL(int width, int height);
- void resizeOverlayGL(int width, int height);
+ void resizeSignal();
+ void paintSignal();
};
diff --git a/qad/graphic/uwidget.h b/qad/graphic/uwidget.h
index 1d7f3bc..e7f4151 100644
--- a/qad/graphic/uwidget.h
+++ b/qad/graphic/uwidget.h
@@ -12,7 +12,7 @@ class UWidget: public QWidget
{
Q_OBJECT
public:
- UWidget(QWidget * parent = 0): QWidget(parent) {};
+ UWidget(QWidget * parent = 0): QWidget(parent) {}
private:
virtual bool event(QEvent * e) {