mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-15 09:04:36 +00:00
filter reloading and a lot of other stuff have been added
This commit is contained in:
parent
bf88b40fdc
commit
d0f75d78ff
@ -20,6 +20,9 @@
|
||||
* for more details. *
|
||||
* *
|
||||
****************************************************************************/
|
||||
#ifndef FILTER_SCRIPT_DIALOG_H
|
||||
#define FILTER_SCRIPT_DIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "../common/filterscript.h"
|
||||
|
||||
@ -79,4 +82,6 @@ public:
|
||||
private:
|
||||
Ui::scriptEditor* ui;
|
||||
QString code;
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -86,6 +86,7 @@ private slots:
|
||||
void delCurrentRaster();
|
||||
void endEdit();
|
||||
void updateDocumentScriptBindings();
|
||||
void loadAndInsertXMLPlugin(const QString& xmlpath,const QString& scriptname);
|
||||
//void evaluateExpression(const Expression& exp,Value** res);
|
||||
|
||||
public:
|
||||
|
||||
@ -65,7 +65,7 @@ MainWindow::MainWindow()
|
||||
connect(mdiarea, SIGNAL(subWindowActivated(QMdiSubWindow *)),this, SLOT(updateDocumentScriptBindings()));
|
||||
connect(mdiarea, SIGNAL(subWindowActivated(QMdiSubWindow *)),this, SLOT(interruptButtonVisibility()));
|
||||
connect(plugingui,SIGNAL(scriptCodeExecuted(const QScriptValue&,const int,const QString&)),this,SLOT(scriptCodeExecuted(const QScriptValue&,const int,const QString&)));
|
||||
|
||||
connect(plugingui,SIGNAL(insertXMLPluginRequested(const QString&,const QString& )),this,SLOT(loadAndInsertXMLPlugin(const QString&,const QString&)));
|
||||
httpReq=new QHttp(this);
|
||||
//connect(httpReq, SIGNAL(requestFinished(int,bool)), this, SLOT(connectionFinished(int,bool)));
|
||||
connect(httpReq, SIGNAL(done(bool)), this, SLOT(connectionDone(bool)));
|
||||
@ -371,9 +371,9 @@ void MainWindow::createActions()
|
||||
connect(showScriptEditAct, SIGNAL(triggered()), this, SLOT(showScriptEditor()));
|
||||
|
||||
|
||||
//showFilterEditAct = new QAction(tr("XML Plugin Editor GUI"),this);
|
||||
//showFilterEditAct->setEnabled(true);
|
||||
//connect(showFilterEditAct, SIGNAL(triggered()), this, SLOT(showXMLPluginEditorGui()));
|
||||
/*showFilterEditAct = new QAction(tr("XML Plugin Editor GUI"),this);
|
||||
showFilterEditAct->setEnabled(true);
|
||||
connect(showFilterEditAct, SIGNAL(triggered()), this, SLOT(showXMLPluginEditorGui()));*/
|
||||
|
||||
//////////////Action Menu Preferences /////////////////////////////////////////////////////////////////////
|
||||
setCustomizeAct = new QAction(tr("&Options..."),this);
|
||||
@ -495,11 +495,13 @@ void MainWindow::createMenus()
|
||||
|
||||
//////////////////// Menu Filter //////////////////////////////////////////////////////////////////////////
|
||||
filterMenu = menuBar()->addMenu(tr("Fi<ers"));
|
||||
filterMenu->addAction(lastFilterAct);
|
||||
filterMenu->addAction(showFilterScriptAct);
|
||||
filterMenu->addAction(showScriptEditAct);
|
||||
fillFilterMenu();
|
||||
//filterMenu = menuBar()->addMenu(tr("Fi<ers"));
|
||||
//filterMenu->addAction(lastFilterAct);
|
||||
//filterMenu->addAction(showFilterScriptAct);
|
||||
//filterMenu->addAction(showScriptEditAct);
|
||||
//filterMenu->addAction(showFilterEditAct);
|
||||
filterMenu->addSeparator();
|
||||
//filterMenu->addSeparator();
|
||||
|
||||
|
||||
//////////////////// Menu Render //////////////////////////////////////////////////////////////////////////
|
||||
@ -583,7 +585,7 @@ void MainWindow::createMenus()
|
||||
helpMenu->addAction(submitBugAct);
|
||||
helpMenu->addAction(checkUpdatesAct);
|
||||
|
||||
fillFilterMenu();
|
||||
//fillFilterMenu();
|
||||
fillEditMenu();
|
||||
fillRenderMenu();
|
||||
fillDecorateMenu();
|
||||
@ -596,6 +598,12 @@ void MainWindow::createMenus()
|
||||
|
||||
void MainWindow::fillFilterMenu()
|
||||
{
|
||||
filterMenu->clear();
|
||||
filterMenu->addAction(lastFilterAct);
|
||||
filterMenu->addAction(showFilterScriptAct);
|
||||
filterMenu->addAction(showScriptEditAct);
|
||||
//filterMenu->addAction(showFilterEditAct);
|
||||
filterMenu->addSeparator();
|
||||
// Connects the events of the actions within colorize to the method which shows their tooltip
|
||||
filterMenuSelect = filterMenu->addMenu(tr("Selection"));
|
||||
filterMenuClean = filterMenu->addMenu(tr("Cleaning and Repairing"));
|
||||
|
||||
@ -2164,4 +2164,13 @@ void MainWindow::updateDocumentScriptBindings()
|
||||
plugingui->setDocument(meshDoc());
|
||||
PM.updateDocumentScriptBindings(*meshDoc());
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::loadAndInsertXMLPlugin(const QString& xmlpath,const QString& scriptname)
|
||||
{
|
||||
if ((xmldialog != NULL) && (xmldialog->isVisible()))
|
||||
this->xmldialog->close();
|
||||
PM.deleteXMLPlugin(scriptname);
|
||||
PM.loadXMLPlugin(xmlpath);
|
||||
fillFilterMenu();
|
||||
}
|
||||
@ -428,8 +428,8 @@ FilterGeneratorTab::FilterGeneratorTab(const QString& filtername,QWidget* parent
|
||||
ui->guiframe->setFilterName(filtername);
|
||||
ui->jsframe->setVisible(true);
|
||||
ui->jsframe->setStyleSheet("QFrame { background-color:rgb(189,215,255); border-radius: 4px; } QTextEdit {background-color: white;}");
|
||||
//ui->jscode->setAutoFormatting(QTextEdit::AutoAll);
|
||||
layout()->setAlignment(Qt::AlignTop);
|
||||
|
||||
connect(ui->guibut,SIGNAL(released()),this,SLOT(guiButtonClicked()));
|
||||
connect(ui->jsbut,SIGNAL(released()),this,SLOT(jsButtonClicked()));
|
||||
connect(ui->guiframe,SIGNAL(filterNameUpdated(const QString&,QWidget*)),this,SIGNAL(filterNameUpdated(const QString&,QWidget*)));
|
||||
@ -477,7 +477,7 @@ void FilterGeneratorTab::paintEvent( QPaintEvent* p )
|
||||
|
||||
void FilterGeneratorTab::collectInfo( MLXMLFilterSubTree& filter )
|
||||
{
|
||||
filter.filterinfo[MLXMLElNames::filterJSCodeTag] = ui->jscode->toPlainText ();
|
||||
filter.filterinfo[MLXMLElNames::filterJSCodeTag] = "<![CDATA[" + ui->jscode->toPlainText () + "]]>";
|
||||
ui->guiframe->collectInfo(filter);
|
||||
}
|
||||
|
||||
@ -497,54 +497,10 @@ void FilterGeneratorTab::setCode( const QString& code )
|
||||
ui->jscode->setPlainText(code);
|
||||
}
|
||||
|
||||
QScriptValue FilterGeneratorTab::executeCode(MeshDocument* doc)
|
||||
{
|
||||
if (doc != NULL)
|
||||
{
|
||||
env.pushContext();
|
||||
MeshDocumentSI* currentDocInterface = new MeshDocumentSI(doc);
|
||||
QScriptValue val = env.newQObject(currentDocInterface);
|
||||
env.globalObject().setProperty(ScriptAdapterGenerator::meshDocVarName(),val);
|
||||
QScriptValue result = env.evaluate(getCode());
|
||||
env.popContext();
|
||||
return result;
|
||||
}
|
||||
else
|
||||
throw MeshLabException("System Error: A valid MeshLabDocument has not correctly been associated with PluginGeneratorGUI. Code cannot be executed.");
|
||||
|
||||
return QScriptValue();
|
||||
}
|
||||
|
||||
void FilterGeneratorTab::initLibInEnv(PluginManager& pm )
|
||||
{
|
||||
QStringList liblist = ScriptAdapterGenerator::javaScriptLibraryFiles();
|
||||
int ii = 0;
|
||||
while(ii < liblist.size())
|
||||
{
|
||||
QFile lib(liblist[ii]);
|
||||
if (!lib.open(QFile::ReadOnly))
|
||||
qDebug("Warning: Library %s has not been loaded.",qPrintable(liblist[ii]));
|
||||
QByteArray libcode = lib.readAll();
|
||||
QScriptValue res = env.evaluate(QString(libcode));
|
||||
if (res.isError())
|
||||
throw JavaScriptException("Library " + liblist[ii] + " generated a JavaScript Error: " + res.toString() + "\n");
|
||||
++ii;
|
||||
}
|
||||
QScriptValue applyFun = env.newFunction(PluginInterfaceApplyXML, &pm);
|
||||
env.globalObject().setProperty("_applyFilter", applyFun);
|
||||
|
||||
QString st = pm.pluginsCode();
|
||||
QScriptValue res = env.evaluate(QString(pm.pluginsCode()));
|
||||
if (res.isError())
|
||||
throw JavaScriptException("A Plugin-bridge-code generated a JavaScript Error: " + res.toString() + "\n");
|
||||
}
|
||||
|
||||
/*" + gaycolor.red() + "," + gaycolor.green() + "," + gaycolor.blue() + "*/
|
||||
PluginGeneratorGUI::PluginGeneratorGUI(PluginManager& pman,QWidget* parent )
|
||||
:QDockWidget(parent),init(false),plugname(),author(),mail(),doc(NULL),PM(pman)
|
||||
:QDockWidget(parent),init(false),plugscriptname(),author(),mail(),doc(NULL),PM(pman),finfo(QApplication::applicationDirPath())
|
||||
{
|
||||
QFileInfo fi(QApplication::applicationFilePath());
|
||||
directory.setCurrent(fi.absolutePath());
|
||||
QFrame* f = new QFrame(this);
|
||||
QGridLayout* lay = new QGridLayout();
|
||||
tabs = new QTabWidget(this);
|
||||
@ -635,11 +591,6 @@ void PluginGeneratorGUI::menuSelection( QAction* act)
|
||||
removeFilter();
|
||||
break;
|
||||
}
|
||||
case MN_EXPORTFILTERINPLUGIN:
|
||||
{
|
||||
exportFilterInPlugin();
|
||||
break;
|
||||
}
|
||||
case MN_NEWXMLPLUGIN:
|
||||
{
|
||||
newXMLPlugin();
|
||||
@ -684,9 +635,6 @@ void PluginGeneratorGUI::createContextMenu()
|
||||
QAction* actremfilt = menu->addAction("Remove Current Filter");
|
||||
actremfilt->setData(QVariant(MN_REMOVEFILTER));
|
||||
menu->addSeparator();
|
||||
QAction* actexpfilt = menu->addAction("Export Filter Inside Existing Plugin...");
|
||||
actexpfilt->setData(QVariant(MN_EXPORTFILTERINPLUGIN));
|
||||
menu->addSeparator();
|
||||
QAction* actnewplug = menu->addAction("New XML Plugin");
|
||||
actnewplug->setData(QVariant(MN_NEWXMLPLUGIN));
|
||||
QAction* actloadplug = menu->addAction("Load XML Plugin...");
|
||||
@ -754,7 +702,7 @@ void PluginGeneratorGUI::addNewFilter()
|
||||
namelist.push_back(tabs->tabText(ii));
|
||||
QString tmpname = UsefulGUIFunctions::generateUniqueDefaultName("Filter",namelist);
|
||||
FilterGeneratorTab* tb = new FilterGeneratorTab(tmpname,this);
|
||||
tb->initLibInEnv(PM);
|
||||
//tb->initLibInEnv(PM);
|
||||
tabs->addTab(tb,tmpname);
|
||||
connect(tb,SIGNAL(filterNameUpdated(const QString&,QWidget*)),this,SLOT(updateTabTitle(const QString&,QWidget*)));
|
||||
connect(tb,SIGNAL(validateFilterName(const QString&,FilterGeneratorGUI*)),this,SLOT(validateFilterName(const QString&,FilterGeneratorGUI*)));
|
||||
@ -765,35 +713,44 @@ void PluginGeneratorGUI::removeFilter()
|
||||
tabs->removeTab(tabs->currentIndex());
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::exportFilterInPlugin()
|
||||
{
|
||||
//throw std::exception("The method or operation is not implemented.");
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::newXMLPlugin()
|
||||
{
|
||||
//throw std::exception("The method or operation is not implemented.");
|
||||
QMessageBox::StandardButton ret=QMessageBox::question(this, tr("MeshLab"), tr("Project '%1' modified.\n\nClose without saving?").arg(finfo.fileName()),
|
||||
QMessageBox::Yes|QMessageBox::No,
|
||||
QMessageBox::No);
|
||||
if(ret==QMessageBox::No) // don't close please!
|
||||
return;
|
||||
int count = tabs->count();
|
||||
for(int ii = 0;ii < count;++ii)
|
||||
removeFilter();
|
||||
this->author ="";
|
||||
this->mail = "";
|
||||
this->plugscriptname ="";
|
||||
finfo.setFile(QApplication::applicationDirPath());
|
||||
addNewFilter();
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::saveXMLPlugin()
|
||||
{
|
||||
//throw std::exception("The method or operation is not implemented.");
|
||||
if (finfo.isFile())
|
||||
save(finfo.absoluteFilePath(),false);
|
||||
else
|
||||
saveAsXMLPlugin();
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::loadScriptCode()
|
||||
{
|
||||
QFileDialog* lddiag = new QFileDialog(this,tr("Load Script File"),directory.absolutePath(), tr("Script File (*.js)"));
|
||||
QFileDialog* lddiag = new QFileDialog(this,tr("Load Script File"),finfo.absolutePath(), tr("Script File (*.js)"));
|
||||
lddiag->setAcceptMode(QFileDialog::AcceptOpen);
|
||||
lddiag->exec();
|
||||
QStringList files = lddiag->selectedFiles();
|
||||
delete lddiag;
|
||||
if (files.size() != 1)
|
||||
return;
|
||||
QString fileName = files[0];
|
||||
QFileInfo finfo(files[0]);
|
||||
QFile file(fileName);
|
||||
QFile file(files[0]);
|
||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
qDebug("Warning: File %s has not been loaded.",qPrintable(fileName));
|
||||
qDebug("Warning: File %s has not been loaded.",qPrintable(files[0]));
|
||||
finfo.setFile(files[0]);
|
||||
QByteArray code = file.readAll();
|
||||
file.close();
|
||||
FilterGeneratorTab* tb = tab(tabs->currentIndex());
|
||||
@ -804,10 +761,11 @@ void PluginGeneratorGUI::loadScriptCode()
|
||||
|
||||
void PluginGeneratorGUI::saveScriptCode()
|
||||
{
|
||||
QString filename = QFileDialog::getSaveFileName(this,tr("Save Script File"),directory.absolutePath(),tr("Script File (*.js)"));
|
||||
QString filename = QFileDialog::getSaveFileName(this,tr("Save Script File"),finfo.absolutePath(),tr("Script File (*.js)"));
|
||||
QFile file(filename);
|
||||
if (!file.open(QFile::WriteOnly | QIODevice::Text))
|
||||
qDebug("Warning: File %s has not been saved.",qPrintable(filename));
|
||||
finfo.setFile(filename);
|
||||
FilterGeneratorTab* tb = tab(tabs->currentIndex());
|
||||
if (tb != NULL)
|
||||
{
|
||||
@ -819,12 +777,12 @@ void PluginGeneratorGUI::saveScriptCode()
|
||||
|
||||
void PluginGeneratorGUI::saveAsXMLPlugin()
|
||||
{
|
||||
QFileDialog* saveDiag = new QFileDialog(this,tr("Save XML Plugin File"),directory.absolutePath(), tr("MeshLab XML Plugin (*.xml)"));
|
||||
QFileDialog* saveDiag = new QFileDialog(this,tr("Save XML Plugin File"),finfo.absolutePath(), tr("MeshLab XML Plugin (*.xml)"));
|
||||
#if defined(Q_OS_MAC)
|
||||
saveDiag->setOption(QFileDialog::DontUseNativeDialog,true);
|
||||
#endif
|
||||
QLabel* namelab = new QLabel(tr("JScript Plugin Name"),saveDiag);
|
||||
QLineEdit* jsline= new QLineEdit(plugname,saveDiag);
|
||||
QLineEdit* jsline= new QLineEdit(plugscriptname,saveDiag);
|
||||
QLabel* authlab = new QLabel(tr("Author Name"),saveDiag);
|
||||
QLineEdit* authline= new QLineEdit(author,saveDiag);
|
||||
QLabel* maillab = new QLabel(tr("Author e-Mail"),saveDiag);
|
||||
@ -843,33 +801,35 @@ void PluginGeneratorGUI::saveAsXMLPlugin()
|
||||
|
||||
saveDiag->setAcceptMode(QFileDialog::AcceptSave);
|
||||
saveDiag->exec();
|
||||
plugname = jsline->text();
|
||||
plugscriptname = jsline->text();
|
||||
author = authline->text();
|
||||
mail = mailline->text();
|
||||
QStringList files = saveDiag->selectedFiles();
|
||||
if (files.size() != 1)
|
||||
return;
|
||||
QString fileName = files[0];
|
||||
QFileInfo finfo(files[0]);
|
||||
MLXMLPluginInfo::XMLMapList ls;
|
||||
save(fileName,cpp->isChecked());
|
||||
/*for(int ii = 0;ii < tabs->count();++ii)
|
||||
{
|
||||
XMLFilterInfo::XMLMap mp;
|
||||
collectFilterInfo(mp);
|
||||
ls.push_back(mp);
|
||||
}*/
|
||||
delete saveDiag;
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::save( const QString& filepath,const bool generatecpp)
|
||||
{
|
||||
MLXMLTree tree;
|
||||
collectInfo(tree);
|
||||
QString xml = generateXML(tree);
|
||||
|
||||
if (cpp->isChecked())
|
||||
if (generatecpp)
|
||||
{
|
||||
QDir dir(finfo.absolutePath());
|
||||
QString cppcode = MLXMLUtilityFunctions::generateCPP(finfo.baseName(),tree);
|
||||
QFileInfo cppinfo(finfo.absolutePath() + "/" +finfo.baseName() + ".cpp");
|
||||
QString cppoldfilename = UsefulGUIFunctions::generateBackupName(cppinfo);
|
||||
dir.rename(cppinfo.fileName(),cppoldfilename);
|
||||
|
||||
|
||||
QFile cppfile(cppinfo.absoluteFilePath());
|
||||
if (!cppfile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
return;
|
||||
@ -888,22 +848,24 @@ void PluginGeneratorGUI::saveAsXMLPlugin()
|
||||
outh << hcode;
|
||||
hfile.close();
|
||||
}
|
||||
QString xml = generateXML(tree);
|
||||
//QDomDocument has been introduced only in order to indent the xml code
|
||||
QDomDocument doc;
|
||||
bool ret = doc.setContent(xml,false);
|
||||
xml = doc.toString();
|
||||
QFile file(fileName);
|
||||
QFile file(filepath);
|
||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
return;
|
||||
QTextStream out(&file);
|
||||
out << xml;
|
||||
file.close();
|
||||
delete saveDiag;
|
||||
finfo.setFile(filepath);
|
||||
}
|
||||
|
||||
|
||||
void PluginGeneratorGUI::loadXMLPlugin()
|
||||
{
|
||||
QString file = QFileDialog::getOpenFileName(this,"Load XML Plugin",directory.absolutePath(),QString("*.xml"));
|
||||
QString file = QFileDialog::getOpenFileName(this,"Load XML Plugin",finfo.absolutePath(),QString("*.xml"));
|
||||
if (!file.isEmpty())
|
||||
{
|
||||
MLXMLTree tree;
|
||||
@ -911,6 +873,7 @@ void PluginGeneratorGUI::loadXMLPlugin()
|
||||
MLXMLPluginInfo* plug = MLXMLPluginInfo::createXMLPluginInfo(file,MLXMLUtilityFunctions::xmlSchemaFile(),msg);
|
||||
if (plug != NULL)
|
||||
{
|
||||
finfo.setFile(file);
|
||||
MLXMLUtilityFunctions::loadMeshLabXML(tree,*plug);
|
||||
importInfo(tree);
|
||||
}
|
||||
@ -922,13 +885,14 @@ void PluginGeneratorGUI::loadXMLPlugin()
|
||||
|
||||
void PluginGeneratorGUI::insertPluginInMeshLab()
|
||||
{
|
||||
//throw std::exception("The method or operation is not implemented.");
|
||||
saveXMLPlugin();
|
||||
emit insertXMLPluginRequested(finfo.absoluteFilePath(),plugscriptname);
|
||||
}
|
||||
|
||||
void PluginGeneratorGUI::collectInfo(MLXMLTree& tree )
|
||||
{
|
||||
tree.interfaceinfo[MLXMLElNames::mfiVersion] = MLXMLElNames::mfiCurrentVersion;
|
||||
tree.plugin.pluginfo[MLXMLElNames::pluginScriptName] = plugname;
|
||||
tree.plugin.pluginfo[MLXMLElNames::pluginScriptName] = plugscriptname;
|
||||
tree.plugin.pluginfo[MLXMLElNames::pluginAuthor] = author;
|
||||
tree.plugin.pluginfo[MLXMLElNames::pluginEmail] = mail;
|
||||
for(int ii = 0;ii < tabs->count();++ii)
|
||||
@ -982,7 +946,7 @@ int PluginGeneratorGUI::getPageIndexOfWidget( QWidget* wid )
|
||||
|
||||
void PluginGeneratorGUI::importInfo( const MLXMLTree& tree )
|
||||
{
|
||||
plugname = tree.plugin.pluginfo[MLXMLElNames::pluginScriptName];
|
||||
plugscriptname = tree.plugin.pluginfo[MLXMLElNames::pluginScriptName];
|
||||
author = tree.plugin.pluginfo[MLXMLElNames::pluginAuthor];
|
||||
mail = tree.plugin.pluginfo[MLXMLElNames::pluginEmail];
|
||||
int nwtab = tree.plugin.filters.size() - tabs->count();
|
||||
|
||||
@ -123,27 +123,22 @@ public:
|
||||
|
||||
void collectInfo(MLXMLFilterSubTree& filter);
|
||||
void importInfo(const MLXMLFilterSubTree& tree);
|
||||
void initLibInEnv(PluginManager& pm);
|
||||
QString getCode() const;
|
||||
void setCode(const QString& code);
|
||||
QScriptValue executeCode(MeshDocument* md);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent* p);
|
||||
private slots:
|
||||
void jsButtonClicked();
|
||||
void guiButtonClicked();
|
||||
//void filterNameValidationRequest(const QString& name);
|
||||
//void parentDocked( Qt::DockWidgetArea area);
|
||||
|
||||
signals:
|
||||
void filterNameUpdated(const QString& fname,QWidget* wid);
|
||||
void validateFilterName(const QString& fname,FilterGeneratorGUI* wid);
|
||||
|
||||
private:
|
||||
//void expandCollapse(bool& exp,PrimitiveButton* pb,QFrame* fr );
|
||||
void expandCollapse(const bool exp,PrimitiveButton* pb,QFrame* fr );
|
||||
|
||||
Env env;
|
||||
bool jsexp;
|
||||
bool guiexp;
|
||||
Ui::FilterCreatorTab* ui;
|
||||
@ -166,14 +161,13 @@ private slots:
|
||||
void updateTabTitle(const QString& name,QWidget* wid);
|
||||
void validateFilterName(const QString& name,FilterGeneratorGUI* wid);
|
||||
private:
|
||||
enum MenuOption {MN_ADDFILTER,MN_REMOVEFILTER,MN_EXPORTFILTERINPLUGIN,MN_EXECUTECODE,MN_LOADCODE,MN_SAVECODE,MN_NEWXMLPLUGIN,MN_SAVEXMLPLUGIN,MN_SAVEASXMLPLUGIN,MN_LOADXMLPLUGIN,MN_INSERTPLUGINMESHLAB};
|
||||
enum MenuOption {MN_ADDFILTER,MN_REMOVEFILTER,MN_EXECUTECODE,MN_LOADCODE,MN_SAVECODE,MN_NEWXMLPLUGIN,MN_SAVEXMLPLUGIN,MN_SAVEASXMLPLUGIN,MN_LOADXMLPLUGIN,MN_INSERTPLUGINMESHLAB};
|
||||
void createContextMenu();
|
||||
void executeCurrentCode();
|
||||
void loadScriptCode();
|
||||
void saveScriptCode();
|
||||
void addNewFilter();
|
||||
void removeFilter();
|
||||
void exportFilterInPlugin();
|
||||
void newXMLPlugin();
|
||||
void saveXMLPlugin();
|
||||
void saveAsXMLPlugin();
|
||||
@ -183,19 +177,21 @@ private:
|
||||
QString generateXML(const MLXMLTree& tree);
|
||||
void collectInfo(MLXMLTree& tree);
|
||||
void importInfo(const MLXMLTree& tree);
|
||||
void save( const QString& filepath,const bool generatecpp);
|
||||
FilterGeneratorTab* tab(int ii);
|
||||
|
||||
QString plugname;
|
||||
QString plugscriptname;
|
||||
QString author;
|
||||
QString mail;
|
||||
|
||||
QMenu* menu;
|
||||
QTabWidget* tabs;
|
||||
bool init;
|
||||
QDir directory;
|
||||
QFileInfo finfo;
|
||||
MeshDocument* doc;
|
||||
PluginManager& PM;
|
||||
signals:
|
||||
void scriptCodeExecuted(const QScriptValue& val,const int time,const QString&);
|
||||
void insertXMLPluginRequested(const QString& filename,const QString& plugscriptname);
|
||||
};
|
||||
#endif
|
||||
Loading…
x
Reference in New Issue
Block a user