]> AND Private Git Repository - blast.git/blobdiff - MainWindow.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished testbench generation
[blast.git] / MainWindow.cpp
index 683ba3d03c2e4d0154eb489634d9aee4ed084451..6f4716ad57dfe346ab2efb149a2848f3bf281e8a 100644 (file)
@@ -24,6 +24,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
   try {    
     params->loadBlastConfiguration("blastconfig.xml");
 
   try {    
     params->loadBlastConfiguration("blastconfig.xml");
 
+    // first load external sources
+    params->loadSources();
+
     if (!QFileInfo::exists(params->refLib)) {
       params->loadReferencesFromXml();
       int ret = QMessageBox::question(this,tr("Building references library"),tr("The reference block library does not exists.\n References have been read directly from the xml descriptions of blocks.\n It can be saved into a library in order to start application faster. "), QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
     if (!QFileInfo::exists(params->refLib)) {
       params->loadReferencesFromXml();
       int ret = QMessageBox::question(this,tr("Building references library"),tr("The reference block library does not exists.\n References have been read directly from the xml descriptions of blocks.\n It can be saved into a library in order to start application faster. "), QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
@@ -308,18 +311,24 @@ void MainWindow::save(QString projectFile) {
   params->save(projectFile);
 }
 
   params->save(projectFile);
 }
 
-void MainWindow::slotLoadProject(){
+void MainWindow::slotLoadProject(QString fileName){
 
 
-  params->projectFile = QFileDialog::getOpenFileName(0, "select a project file", "save/",tr("sauvegardes (*.xml)"));
+  if (fileName == "") {
+    params->projectFile = QFileDialog::getOpenFileName(0, "select a project file", "save/",tr("sauvegardes (*.xml)"));
+  }
+  else {
+    params->projectFile = fileName;
+  }
 
   if(! params->projectFile.isEmpty()){
     GroupWidget* topGroup = dispatcher->loadProject(params->projectFile);
     if (topGroup != NULL) {
       addTopGroup(topGroup);
       library->updateComboScene();
 
   if(! params->projectFile.isEmpty()){
     GroupWidget* topGroup = dispatcher->loadProject(params->projectFile);
     if (topGroup != NULL) {
       addTopGroup(topGroup);
       library->updateComboScene();
+      library->updateBoxConn();
       params->isCurrentProject = true;
       enableProjectActions(true, PROJECT_CLOSE | PROJECT_SAVE | PROJECT_SAVEAS | PROJECT_LIB, OP_RAZ);
       params->isCurrentProject = true;
       enableProjectActions(true, PROJECT_CLOSE | PROJECT_SAVE | PROJECT_SAVEAS | PROJECT_LIB, OP_RAZ);
-      enableAnalysisActions(true, ANALYSIS_ANALYZE, OP_RAZ);
+      enableAnalysisActions(true, ANALYSIS_ANALYZE | ANALYSIS_GENERATE, OP_RAZ);
     }
     else {
       QMessageBox msgBox;
     }
     else {
       QMessageBox msgBox;
@@ -341,9 +350,10 @@ void MainWindow::slotNewProject(){
   if (ret == 1) {
     enableProjectActions(true, PROJECT_CLOSE | PROJECT_SAVE | PROJECT_SAVEAS | PROJECT_LIB, OP_RAZ);
     enableAnalysisActions(true, ANALYSIS_ANALYZE | ANALYSIS_GENERATE, OP_RAZ);
   if (ret == 1) {
     enableProjectActions(true, PROJECT_CLOSE | PROJECT_SAVE | PROJECT_SAVEAS | PROJECT_LIB, OP_RAZ);
     enableAnalysisActions(true, ANALYSIS_ANALYZE | ANALYSIS_GENERATE, OP_RAZ);
-    GroupWidget* topGroup = dispatcher->createTopScene();
+    GroupWidget* topGroup = dispatcher->createTopScene(Dispatcher::Design, params->mainClock);
     addTopGroup(topGroup);
     library->updateComboScene();
     addTopGroup(topGroup);
     library->updateComboScene();
+    library->updateBoxConn();
     library->show();
     params->isCurrentProject = true;
   }
     library->show();
     params->isCurrentProject = true;
   }
@@ -440,15 +450,16 @@ void MainWindow::slotGraphAnalysis() {
       msg += " is not compatible with its input pattern.\nDo you want to launch automatic modification process to ensure the compatibility ?";
       int ret = QMessageBox::question(this,tr("Building references library"),msg, QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
       if (ret == QMessageBox::Ok) {
       msg += " is not compatible with its input pattern.\nDo you want to launch automatic modification process to ensure the compatibility ?";
       int ret = QMessageBox::question(this,tr("Building references library"),msg, QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
       if (ret == QMessageBox::Ok) {
-        dispatcher->findGraphModifications(toBlock);
+        dispatcher->findGraphModifications(Dispatcher::Design, toBlock);
       }
     }
   }
 }
 
 void MainWindow::slotGenerateVHDL() {
       }
     }
   }
 }
 
 void MainWindow::slotGenerateVHDL() {
+
   try {
   try {
-    params->getGraph()->generateVHDL(params->projectPath);
+    dispatcher->generateVHDL(Dispatcher::Design);
   }
   catch(Exception e) {
     cerr << qPrintable(e.getMessage()) << endl;
   }
   catch(Exception e) {
     cerr << qPrintable(e.getMessage()) << endl;
@@ -482,7 +493,7 @@ void MainWindow::closeEvent(QCloseEvent *event) {
 void MainWindow::mousePressEvent(QMouseEvent *e) {
 
   if (dispatcher->getCurrentGroup() != NULL) {
 void MainWindow::mousePressEvent(QMouseEvent *e) {
 
   if (dispatcher->getCurrentGroup() != NULL) {
-    dispatcher->setCurrentGroupWidget(dispatcher->getCurrentGroup());
+    dispatcher->setCurrentGroupWidget(Dispatcher::Design, dispatcher->getCurrentGroup());
   }
   QMainWindow::mousePressEvent(e);
 }
   }
   QMainWindow::mousePressEvent(e);
 }