mirror of https://github.com/CGAL/cgal
Target Polyhedron_3 builds and executes, but with all scripting and RegExp (deprecated) commented
This commit is contained in:
parent
5601e035ff
commit
5030d671d5
|
|
@ -73,10 +73,12 @@
|
|||
#include <CGAL/Qt/manipulatedCameraFrame.h>
|
||||
#include <CGAL/Qt/manipulatedFrame.h>
|
||||
|
||||
#include "Color_map.h"
|
||||
|
||||
#ifdef QT_SCRIPT_LIB
|
||||
# include <QScriptEngine>
|
||||
# include <QScriptValue>
|
||||
#include "Color_map.h"
|
||||
|
||||
|
||||
|
||||
using namespace CGAL::Three;
|
||||
|
|
@ -123,6 +125,7 @@ const QString debug_widgets_names[9] = {
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
QScriptValue myPrintFunction(QScriptContext *context, QScriptEngine *engine)
|
||||
{
|
||||
MainWindow* mw = qobject_cast<MainWindow*>(engine->parent());
|
||||
|
|
@ -138,6 +141,7 @@ QScriptValue myPrintFunction(QScriptContext *context, QScriptEngine *engine)
|
|||
|
||||
return engine->undefinedValue();
|
||||
}
|
||||
#endif
|
||||
|
||||
inline
|
||||
QKeySequence combine(Qt::Modifier m, Qt::Key k)
|
||||
|
|
@ -166,8 +170,8 @@ MainWindow::MainWindow(const QStringList &keywords, bool verbose, QWidget* paren
|
|||
is_locked = false;
|
||||
// remove the Load Script menu entry, when the demo has not been compiled with QT_SCRIPT_LIB
|
||||
#if !defined(QT_SCRIPT_LIB)
|
||||
ui->menuBar->removeAction(ui->actionLoadScript);
|
||||
ui->menuBar->removeAction(ui->on_actionLoad_a_Scene_from_a_Script_File);
|
||||
// ui->menuBar->removeAction(ui->actionLoadScript);
|
||||
// ui->menuBar->removeAction(ui->on_actionLoad_a_Scene_from_a_Script_File);
|
||||
#endif
|
||||
// Save some pointers from ui, for latter use.
|
||||
sceneView = ui->sceneView;
|
||||
|
|
@ -528,6 +532,7 @@ void MainWindow::filterOperations(bool)
|
|||
|
||||
#include <CGAL/Three/exceptions.h>
|
||||
|
||||
#if 0
|
||||
void MainWindow::evaluate_script(QString script,
|
||||
const QString& filename,
|
||||
const bool quiet) {
|
||||
|
|
@ -595,6 +600,7 @@ void MainWindow::enableScriptDebugger(bool b /* = true */)
|
|||
this->error(tr("Your version of Qt is too old, and for that reason "
|
||||
"the Qt Script Debugger is not available."));
|
||||
}
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
bool actionsByName(QAction* x, QAction* y) {
|
||||
|
|
@ -650,8 +656,8 @@ bool MainWindow::load_plugin(QString fileName, bool blacklisted)
|
|||
QFileInfo fileinfo(fileName);
|
||||
//set plugin name
|
||||
QString name = fileinfo.fileName();
|
||||
name.remove(QRegExp("^lib"));
|
||||
name.remove(QRegExp("\\..*"));
|
||||
name.remove(QRegularExpression("^lib"));
|
||||
name.remove(QRegularExpression("\\..*"));
|
||||
//do not load it if it is in the blacklist
|
||||
if(blacklisted)
|
||||
{
|
||||
|
|
@ -1138,20 +1144,22 @@ bool MainWindow::file_matches_filter(const QString& filters,
|
|||
QString filename_striped=fileinfo.fileName();
|
||||
|
||||
//match all filters between ()
|
||||
QRegExp all_filters_rx("\\((.*)\\)");
|
||||
QRegularExpression all_filters_rx("\\((.*)\\)");
|
||||
|
||||
QStringList split_filters = filters.split(";;");
|
||||
Q_FOREACH(const QString& filter, split_filters) {
|
||||
//extract filters
|
||||
#if 0 // AF @todo
|
||||
if ( all_filters_rx.indexIn(filter)!=-1 ){
|
||||
Q_FOREACH(const QString& pattern,all_filters_rx.cap(1).split(' ')){
|
||||
QRegExp rx(pattern);
|
||||
rx.setPatternSyntax(QRegExp::Wildcard);
|
||||
QRegularExpression rx(pattern);
|
||||
rx.setPatternSyntax(QRegularExpression::Wildcard);
|
||||
if ( rx.exactMatch(filename_striped) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1268,6 +1276,7 @@ void MainWindow::open(QString filename)
|
|||
bool MainWindow::open(QString filename, QString loader_name) {
|
||||
QFileInfo fileinfo(filename);
|
||||
boost::optional<bool> item_opt;
|
||||
#if 0 // AF
|
||||
try {
|
||||
item_opt = wrap_a_call_to_cpp
|
||||
([this, fileinfo, loader_name]()
|
||||
|
|
@ -1284,6 +1293,7 @@ bool MainWindow::open(QString filename, QString loader_name) {
|
|||
std::cerr << e.what() << std::endl;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1887,6 +1897,7 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
|||
event->accept();
|
||||
}
|
||||
|
||||
#if 0
|
||||
bool MainWindow::loadScript(QString filename)
|
||||
{
|
||||
QFileInfo fileinfo(filename);
|
||||
|
|
@ -1920,12 +1931,15 @@ bool MainWindow::loadScript(QFileInfo info)
|
|||
#endif
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void MainWindow::throw_exception() {
|
||||
#if 0 // AF
|
||||
wrap_a_call_to_cpp([]() {
|
||||
throw std::runtime_error("Exception thrown in "
|
||||
"MainWindow::throw_exception()");
|
||||
}, this, __FILE__, __LINE__);
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLoadScript_triggered()
|
||||
|
|
@ -2046,7 +2060,7 @@ void MainWindow::on_actionSaveAs_triggered()
|
|||
sf = plugin->saveNameFilters().split(";;").first();
|
||||
}
|
||||
}
|
||||
QRegExp extensions("\\(\\*\\..+\\)");
|
||||
QRegularExpression extensions("\\(\\*\\..+\\)");
|
||||
QStringList filter_exts;
|
||||
if(filters.empty())
|
||||
{
|
||||
|
|
@ -2056,6 +2070,7 @@ void MainWindow::on_actionSaveAs_triggered()
|
|||
.arg(item->name()));
|
||||
return;
|
||||
}
|
||||
#if 0 // AF
|
||||
Q_FOREACH(QString string, filters)
|
||||
{
|
||||
QStringList sl = string.split(";;");
|
||||
|
|
@ -2065,6 +2080,8 @@ void MainWindow::on_actionSaveAs_triggered()
|
|||
filter_exts.append(extensions.capturedTexts());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
filters << tr("All files (*)");
|
||||
if(canSavePlugins.isEmpty()) {
|
||||
QMessageBox::warning(this,
|
||||
|
|
@ -2094,9 +2111,9 @@ void MainWindow::on_actionSaveAs_triggered()
|
|||
if(filename.isEmpty())
|
||||
return;
|
||||
last_saved_dir = QFileInfo(filename).absoluteDir().path();
|
||||
extensions.indexIn(sf.split(";;").first());
|
||||
// AF extensions.indexIn(sf.split(";;").first());
|
||||
QString filter_ext, filename_ext;
|
||||
filter_ext = extensions.cap().split(" ").first();// in case of syntax like (*.a *.b)
|
||||
// AF filter_ext = extensions.cap().split(" ").first();// in case of syntax like (*.a *.b)
|
||||
|
||||
filter_ext.remove(")");
|
||||
filter_ext.remove("(");
|
||||
|
|
@ -2804,9 +2821,11 @@ void MainWindow::colorItems()
|
|||
return;
|
||||
std::vector<QColor> colors_;
|
||||
colors_.reserve(nb_files);
|
||||
#
|
||||
compute_color_map(scene->item(scene->selectionIndices().last())->color(),
|
||||
static_cast<unsigned>(nb_files),
|
||||
std::back_inserter(colors_));
|
||||
|
||||
std::size_t nb_item = -1;
|
||||
Q_FOREACH(int id, scene->selectionIndices())
|
||||
{
|
||||
|
|
@ -3859,7 +3878,7 @@ void MainWindow::on_actionLoad_a_Scene_from_a_Script_File_triggered()
|
|||
if(filename.isEmpty())
|
||||
return;
|
||||
}
|
||||
loadScript(QFileInfo(filename));
|
||||
|
||||
if(do_download){
|
||||
QFile tmp_file(filename);
|
||||
tmp_file.remove();
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@
|
|||
#include "config.h"
|
||||
#include "MainWindow_config.h"
|
||||
|
||||
#include <QtOpenGL/qgl.h>
|
||||
#include <QOpenGLWidget>
|
||||
#include <CGAL/Qt/DemosMainWindow.h>
|
||||
#include <CGAL/Three/Three.h>
|
||||
|
||||
#include <QScriptEngine>
|
||||
#include <QScriptable>
|
||||
// AF @todo Scripting has changed
|
||||
// #include <QScriptEngine>
|
||||
// #include <QScriptable>
|
||||
|
||||
|
||||
#include <QVector>
|
||||
|
|
@ -60,8 +61,8 @@ namespace Ui {
|
|||
class MAINWINDOW_EXPORT MainWindow :
|
||||
public CGAL::Qt::DemosMainWindow,
|
||||
public Messages_interface,
|
||||
public CGAL::Three::Three,
|
||||
protected QScriptable
|
||||
public CGAL::Three::Three
|
||||
// AF , protected QScriptable
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(Messages_interface)
|
||||
|
|
@ -147,12 +148,13 @@ public Q_SLOTS:
|
|||
index of the item to be reloaded as data attached to the action.
|
||||
The index must identify a valid `Scene_item`.*/
|
||||
void reloadItem();
|
||||
|
||||
#if 0
|
||||
//! Loads a script. Returns true if it worked.
|
||||
bool loadScript(QString filename);
|
||||
|
||||
//! Loads a script. Returns true if it worked.
|
||||
bool loadScript(QFileInfo);
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* Gives the keyboard input focus to the widget searchEdit.
|
||||
|
|
@ -261,7 +263,7 @@ public Q_SLOTS:
|
|||
* If able, finds a script debugger and interrupts current action. Default
|
||||
* value for parameter is true.
|
||||
*/
|
||||
void enableScriptDebugger(bool = true);
|
||||
// void enableScriptDebugger(bool = true);
|
||||
|
||||
/// This slot is used to test exception handling in Qt Scripts.
|
||||
void throw_exception();
|
||||
|
|
@ -449,9 +451,11 @@ public:
|
|||
//! Calls evaluate_script(script, filename, true).
|
||||
void evaluate_script_quiet(QString script,
|
||||
const QString & fileName = QString());
|
||||
#endif
|
||||
|
||||
QMutex mutex;
|
||||
QWaitCondition wait_condition;
|
||||
#endif
|
||||
|
||||
public Q_SLOTS:
|
||||
void on_actionSa_ve_Scene_as_Script_triggered();
|
||||
void on_actionLoad_a_Scene_from_a_Script_File_triggered();
|
||||
|
|
|
|||
|
|
@ -129,10 +129,10 @@ Polyhedron_demo::Polyhedron_demo(int& argc, char **argv,
|
|||
}
|
||||
#endif
|
||||
|
||||
mainWindow.loadScript(":/cgal/Polyhedron_3/javascript/lib.js");
|
||||
// mainWindow.loadScript(":/cgal/Polyhedron_3/javascript/lib.js");
|
||||
QFileInfo autostart_js("autostart.js");
|
||||
if(!parser.isSet(no_autostart) && autostart_js.exists()) {
|
||||
mainWindow.loadScript(autostart_js);
|
||||
// mainWindow.loadScript(autostart_js);
|
||||
}
|
||||
Q_FOREACH(QString filename, parser.positionalArguments()) {
|
||||
mainWindow.open(filename);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <QObject>
|
||||
#include <QMetaObject>
|
||||
#include <QString>
|
||||
#include <QGLWidget>
|
||||
#include <QOpenGLWidget>
|
||||
#include <QEvent>
|
||||
#include <QMouseEvent>
|
||||
#include <QPainter>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include <CGAL/Three/Scene_draw_interface.h>
|
||||
#include <CGAL/Three/Viewer_config.h>
|
||||
|
||||
#include <QtOpenGL/qgl.h>
|
||||
#include <QtOpenGLWidgets>
|
||||
#include <QStandardItemModel>
|
||||
#include <QString>
|
||||
#include <QColor>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "ui_Show_point_dialog.h"
|
||||
|
||||
#include <QClipboard>
|
||||
#include <QRegularExpression>
|
||||
|
||||
Show_point_dialog::Show_point_dialog(QWidget* parent)
|
||||
: QDialog(parent)
|
||||
|
|
@ -50,7 +51,8 @@ void Show_point_dialog::interprete_string(const QString& string)
|
|||
+ "|" + not_double_char_re + "+" + double_re
|
||||
+ ")"
|
||||
+ "$";
|
||||
QRegExp re(full_re);
|
||||
#if 0 // AF @todo QRegExp had exactMatch() and cap()
|
||||
QRegularExpression re(full_re);
|
||||
if(re.exactMatch(string)) {
|
||||
// const double x = re.cap(1).toDouble();
|
||||
// const double y = re.cap(2).toDouble();
|
||||
|
|
@ -66,6 +68,7 @@ void Show_point_dialog::interprete_string(const QString& string)
|
|||
ui->coord_z->setText(QString());
|
||||
m_has_correct_coordinates = false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
double Show_point_dialog::get_x() const
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include <QStyleFactory>
|
||||
#include <QAction>
|
||||
#include <QMultipleInputDialog.h>
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionMatch>
|
||||
#ifdef CGAL_USE_WEBSOCKETS
|
||||
#include <QtWebSockets/QWebSocket>
|
||||
|
|
@ -1838,7 +1839,7 @@ void Viewer::setLighting()
|
|||
connect(dialog->position_lineEdit, &QLineEdit::editingFinished,
|
||||
[this, dialog]()
|
||||
{
|
||||
QStringList list = dialog->position_lineEdit->text().split(QRegExp(","), CGAL_QT_SKIP_EMPTY_PARTS);
|
||||
QStringList list = dialog->position_lineEdit->text().split(QRegularExpression(","), CGAL_QT_SKIP_EMPTY_PARTS);
|
||||
if (list.isEmpty()) return;
|
||||
if (list.size()!=3){
|
||||
QMessageBox *msgBox = new QMessageBox;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
|
|||
set(moc_file_name "")
|
||||
else()
|
||||
set(moc_file_name ${plugin_implementation_base_name}.moc )
|
||||
qt5_generate_moc( ${plugin_implementation_base_name}.cpp "${CMAKE_CURRENT_BINARY_DIR}/${moc_file_name}" )
|
||||
qt6_generate_moc( ${plugin_implementation_base_name}.cpp "${CMAKE_CURRENT_BINARY_DIR}/${moc_file_name}" )
|
||||
add_file_dependencies( ${moc_file_name} "${CMAKE_CURRENT_SOURCE_DIR}/${plugin_implementation_base_name}.cpp" )
|
||||
endif()
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
|
|||
set_property(TEST "compilation_of__demo_framework"
|
||||
APPEND PROPERTY FIXTURES_SETUP "demo_framework_SetupFixture")
|
||||
set_property(TEST "compilation_of__demo_framework"
|
||||
APPEND PROPERTY DEPENDS "compilation_of__CGAL_Qt5_moc_and_resources")
|
||||
APPEND PROPERTY DEPENDS "compilation_of__CGAL_Qt6_moc_and_resources")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@
|
|||
#include <exception>
|
||||
#include <QString>
|
||||
#include <QApplication>
|
||||
#include <QScriptable>
|
||||
#include <QScriptContext>
|
||||
#include <QScriptEngine>
|
||||
//#include <QScriptable>
|
||||
//#include <QScriptContext>
|
||||
//#include <QScriptEngine>
|
||||
#include <boost/optional.hpp>
|
||||
#include <QStringList>
|
||||
|
||||
|
|
@ -60,6 +60,7 @@ struct Optional_or_bool<void> {
|
|||
|
||||
enum Context { CURRENT_CONTEXT, PARENT_CONTEXT };
|
||||
|
||||
#if 1 // AF @todo scripting has changed
|
||||
/// This function template wraps a `Callable` that can be called without
|
||||
/// any argument (such as a lambda expression without arguments), and in
|
||||
/// case the function call is in a Qt Script context, wraps the call in a
|
||||
|
|
@ -69,7 +70,7 @@ enum Context { CURRENT_CONTEXT, PARENT_CONTEXT };
|
|||
template <typename Callable>
|
||||
typename Optional_or_bool<typename cpp11::result_of<Callable()>::type>::type
|
||||
wrap_a_call_to_cpp(Callable f,
|
||||
QScriptable* qs = 0,
|
||||
// QScriptable* qs = 0,
|
||||
const char* file = 0,
|
||||
int line = -1,
|
||||
Context c = CURRENT_CONTEXT) {
|
||||
|
|
@ -78,12 +79,13 @@ wrap_a_call_to_cpp(Callable f,
|
|||
typedef typename O_r_b::type Return_type;
|
||||
|
||||
const bool no_try_catch = qApp->property("no-try-catch").toBool();
|
||||
if(no_try_catch || qs == 0 || !qs->context()) return O_r_b::invoke(f);
|
||||
if(no_try_catch /* || qs == 0 || !qs->context() */ ) return O_r_b::invoke(f);
|
||||
else
|
||||
try {
|
||||
return O_r_b::invoke(f);
|
||||
}
|
||||
catch(const std::exception& e) {
|
||||
#if 0
|
||||
const Script_exception* se = dynamic_cast<const Script_exception*>(&e);
|
||||
QScriptContext* context = qs->context();
|
||||
QStringList qt_bt = context->backtrace();
|
||||
|
|
@ -121,9 +123,11 @@ wrap_a_call_to_cpp(Callable f,
|
|||
qScriptValueFromSequence(context->engine(), qt_bt));
|
||||
std::cerr << "result after throwError: "
|
||||
<< qPrintable(v.toString()) << std::endl;
|
||||
#endif
|
||||
return Return_type();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
} // end namespace Three
|
||||
} // end namespace CGAL
|
||||
|
|
|
|||
Loading…
Reference in New Issue