diff options
| -rw-r--r-- | src/MainWindow.h | 2 | ||||
| -rw-r--r-- | src/OffscreenView.cc | 2 | ||||
| -rw-r--r-- | src/OffscreenView.h | 6 | ||||
| -rw-r--r-- | src/QGLView.h | 3 | ||||
| -rw-r--r-- | src/mainwin.cc | 26 | ||||
| -rw-r--r-- | src/qglview.cc | 7 | 
6 files changed, 24 insertions, 22 deletions
| diff --git a/src/MainWindow.h b/src/MainWindow.h index b685bf1..4848db6 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -87,7 +87,7 @@ private:  	void loadViewSettings();  	void loadDesignSettings(); -  class QDialog *openglbox; +  class QMessageBox *openglbox;  private slots:  	void actionNew(); diff --git a/src/OffscreenView.cc b/src/OffscreenView.cc index 6f9b2da..bc1b97c 100644 --- a/src/OffscreenView.cc +++ b/src/OffscreenView.cc @@ -147,7 +147,7 @@ bool OffscreenView::save(std::ostream &output)  	return save_framebuffer(this->ctx, output);  } -const std::string &OffscreenView::getRendererInfo() +std::string OffscreenView::getRendererInfo()  {  	std::stringstream out; diff --git a/src/OffscreenView.h b/src/OffscreenView.h index c27277e..97d8198 100644 --- a/src/OffscreenView.h +++ b/src/OffscreenView.h @@ -24,9 +24,9 @@ public:  	void setupPerspective();  	void setupOrtho(bool offset=false);  	void paintGL(); -	bool save(const char *filename); -	bool save(std::ostream &output); -	const std::string &getRendererInfo(); +	bool save(const char *filename); // +	bool save(std::ostream &output); // not implemented in qgl? +	std::string getRendererInfo(); //  	GLint shaderinfo[11];  // diff --git a/src/QGLView.h b/src/QGLView.h index 862d751..57e5faf 100644 --- a/src/QGLView.h +++ b/src/QGLView.h @@ -35,7 +35,8 @@ public:  	void setShowCrosshairs(bool enabled) { this->showcrosshairs = enabled; }  	bool orthoMode() const { return this->orthomode; }  	void setOrthoMode(bool enabled) { this->orthomode = enabled; } -	const std::string &getRendererInfo() const { return this->rendererInfo; } +	std::string getRendererInfo() const { return this->rendererInfo; } +	bool save(const char *filename);  public:  	QLabel *statusLabel; diff --git a/src/mainwin.cc b/src/mainwin.cc index 52020ec..b4e1f50 100644 --- a/src/mainwin.cc +++ b/src/mainwin.cc @@ -1452,20 +1452,17 @@ void MainWindow::actionExportCSG()  void MainWindow::actionExportImage()  { -	QImage img = this->qglview->grabFrameBuffer();  	setCurrentOutput();  	QString img_filename = QFileDialog::getSaveFileName(this,  			"Export Image", "", "PNG Files (*.png)");  	if (img_filename.isEmpty()) {  		PRINT("No filename specified. Image export aborted."); -		clearCurrentOutput(); -		return; +	} else { +		qglview->save(img_filename.toStdString().c_str());  	} - -	img.save(img_filename, "PNG"); -  	clearCurrentOutput(); +	return;  }  void MainWindow::actionFlushCaches() @@ -1745,16 +1742,13 @@ void MainWindow::helpLibrary()  									qVersion());  	if (!this->openglbox) { -		this->openglbox = new QDialog( this ); -		QVBoxLayout *ql = new QVBoxLayout( openglbox ); -		QTextEdit *qte = new QTextEdit( openglbox ); -		ql->addWidget( qte ); -	} -	QTextEdit *qte = openglbox->findChild<QTextEdit *>(); -	qte->setText(libinfo + QString(this->qglview->getRendererInfo().c_str())); -	qte->setReadOnly( true ); -	openglbox->setMinimumSize( QSize(400,200) ); -	openglbox->show(); +    this->openglbox = new QMessageBox(QMessageBox::Information,  +                                      "OpenGL Info", "Detailed Library Info", +                                      QMessageBox::Ok, this); +		this->openglbox->setMinimumSize( QSize(400,200) ); +	} +  this->openglbox->setDetailedText(libinfo + QString(qglview->getRendererInfo().c_str())); +	this->openglbox->show();  }  /*! diff --git a/src/qglview.cc b/src/qglview.cc index 5310eac..c80d155 100644 --- a/src/qglview.cc +++ b/src/qglview.cc @@ -637,3 +637,10 @@ void QGLView::mouseReleaseEvent(QMouseEvent*)  	mouse_drag_active = false;  	releaseMouse();  } + +bool QGLView::save(const char *filename) +{ +  QImage img = grabFrameBuffer(); +  return img.save(filename, "PNG"); +} + | 
