diff options
author | Marius Kintel <marius@kintel.net> | 2011-07-03 13:01:06 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-07-03 13:01:06 (GMT) |
commit | 518714b4a89ce1c289bdc54e664c5bcb9136acfa (patch) | |
tree | 201ae7bde6550c1742fc69116b35ce1fd5491a10 /src/glview.cc | |
parent | 03341a4a4dbdce252ab4c7369a348b9c4d8c5de6 (diff) | |
parent | f8d4b225365b64a8eda122153c6329eea1f686d0 (diff) |
Merge branch 'master' of github.com:openscad/openscad
Diffstat (limited to 'src/glview.cc')
-rw-r--r-- | src/glview.cc | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/src/glview.cc b/src/glview.cc index 870a1c9..ef023f2 100644 --- a/src/glview.cc +++ b/src/glview.cc @@ -29,9 +29,15 @@ #include <QApplication> #include <QWheelEvent> +#include <QCheckBox> +#include <QDialogButtonBox> #include <QMouseEvent> #include <QMessageBox> +#include <QPushButton> +#include <QSettings> #include <QTimer> +#include <QTextEdit> +#include <QVBoxLayout> #include "mathc99.h" #include <stdio.h> @@ -180,7 +186,10 @@ void GLView::initializeGL() } } else { opencsg_support = false; - QTimer::singleShot(0, this, SLOT(display_opengl20_warning())); + QSettings settings; + if (settings.value("editor/opengl20_warning_show",true).toBool()) { + QTimer::singleShot(0, this, SLOT(display_opengl20_warning())); + } } #endif /* ENABLE_OPENCSG */ } @@ -188,6 +197,9 @@ void GLView::initializeGL() #ifdef ENABLE_OPENCSG void GLView::display_opengl20_warning() { + // data + QString title = QString("GLEW: GL_VERSION_2_0 is not supported!"); + QString rendererinfo; rendererinfo.sprintf("GLEW version %s\n" "%s (%s)\n" @@ -196,11 +208,43 @@ void GLView::display_opengl20_warning() glGetString(GL_RENDERER), glGetString(GL_VENDOR), glGetString(GL_VERSION)); - QMessageBox::warning(NULL, "GLEW: GL_VERSION_2_0 is not supported!", - QString("Warning: No support for OpenGL 2.0 found! OpenCSG View has been disabled.\n\n" + QString message = QString("Warning: No support for OpenGL 2.0 found! OpenCSG View has been disabled.\n\n" "It is highly recommended to use OpenSCAD on a system with OpenGL 2.0 " "support. Please check if OpenGL 2.0 drivers are available for your " - "graphics hardware.\n\n%1").arg(rendererinfo)); + "graphics hardware. Your renderer information is as follows:\n\n%1").arg(rendererinfo); + + QString note = QString("Uncheck to hide this message in the future"); + + // presentation + QDialog *dialog = new QDialog(this); + dialog->setSizeGripEnabled(true); + dialog->setWindowTitle(title); + dialog->resize(500,300); + + QVBoxLayout *layout = new QVBoxLayout(dialog); + dialog->setLayout(layout); + + QTextEdit *textEdit = new QTextEdit(dialog); + textEdit->setPlainText(message); + layout->addWidget(textEdit); + + QCheckBox *checkbox = new QCheckBox(note,dialog); + checkbox->setCheckState(Qt::Checked); + layout->addWidget(checkbox); + + QDialogButtonBox *buttonbox = + new QDialogButtonBox( QDialogButtonBox::Ok, Qt::Horizontal,dialog); + layout->addWidget(buttonbox); + buttonbox->button(QDialogButtonBox::Ok)->setFocus(); + buttonbox->button(QDialogButtonBox::Ok)->setDefault(true); + + // action + connect(buttonbox, SIGNAL(accepted()), dialog, SLOT(accept())); + connect(checkbox, SIGNAL(clicked(bool)), + Preferences::inst()->OpenGL20WarningCheckbox, SLOT(setChecked(bool))); + connect(checkbox, SIGNAL(clicked(bool)), + Preferences::inst(), SLOT(OpenGL20WarningChanged(bool))); + dialog->exec(); } #endif |