X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/d111eaf49741a0a79d372445f97c314a637e331e..2bdaa0aa3fab52f0808f60d9bbdabcd56d0efae9:/Parameters.h?ds=sidebyside diff --git a/Parameters.h b/Parameters.h index 27dc08f..a541ee6 100644 --- a/Parameters.h +++ b/Parameters.h @@ -16,6 +16,7 @@ class ReferenceBlock; class GroupBlock; class FunctionalBlock; class GroupScene; +class AbstractBoxItem; class GroupItem; class BoxItem; class InterfaceItem; @@ -23,6 +24,7 @@ class Graph; class GroupWidget; #include "BlockImplementation.h" +#include "ExternalResource.h" #include "Exception.h" class Exception; @@ -77,15 +79,25 @@ public : inline void setCursorState(CursorState state) { cursorState = state; } inline void setDispatcher(Dispatcher* _dispatcher) { dispatcher = _dispatcher;} + // testers + + // others + static QString normalizeName(const QString& name); + QList searchResourceByName(const QString& name); + /*************************************************** attributes that are general to the application ***************************************************/ BlockLibraryTree* categoryTree; QList refPathes; QList implPathes; + QList sourcePathes; QList availableBlocks; QList availableImplementations; + QList availableResources; + ReferenceBlock* delayRef; + BlockImplementation* delayImpl; QString refLib; QString implLib; @@ -108,8 +120,10 @@ public : QString defaultIfaceFontName; int defaultIfaceFontSize; int connGapLength; - QPainterPath inArrow; - QPainterPath outArrow; + QPainterPath dataArrowIn; + QPainterPath dataArrowOut; + QPainterPath clkrstArrow; + /*************************************************** attributes that are specific for the current project @@ -120,11 +134,18 @@ public : EditState editState; // takes values from EDIT_STATE_XXX bool unsaveModif; bool isRstClkShown; + QMap blockToItem; // allow to retrieve a box item from a functionnal block + QString projectPath; + QString projectName; + QString projectFile; // equals to projectPath/projectName.xml + bool autoConnMainClk; // true if auto-connection to main clock (i.e. ext_clk) + QList clocks; // clocks[0] is the main clock. - Graph* createGraph(); + Graph* createGraph(bool createTopGroupIfaces = true); void destroyGraph(); inline Graph* getGraph() { return graph; } ReferenceBlock* getReferenceBlock(int idCategory, int idBlock); // get the reference block from its category and index + ReferenceBlock* getHiddenReferenceBlock(QString blockName); // get a hidden block by name, i.e. in category 100 FunctionalBlock* duplicateFunctionalBlock(FunctionalBlock* block); // adding a copy of a functional block to current group @@ -137,11 +158,14 @@ public : void loadReferencesFromXml() throw(Exception); void loadReferencesFromLib() throw(Exception); void saveReferencesToLib() throw(Exception); + void createDelayBlock(); void loadImplementationsFromXml() throw(Exception); void loadImplementationsFromLib() throw(Exception); void saveImplementationsToLib() throw(Exception); + void loadSources() throw(Exception); + void addAvailableBlock(ReferenceBlock *block); void parametersValidation(); void connectionsValidation(); @@ -153,10 +177,12 @@ public : ReferenceBlock* searchBlockByXml(QString xmlName); ReferenceBlock* searchBlockByMd5(QString sumMd5); + BoxItem* searchFunctionalBlock(AbstractBlock* block); + void save(QString confFile); - QString projectPath; + private: Graph* graph; // the graph model of blocks @@ -169,6 +195,7 @@ private: GroupScene* searchSceneById(int id, GroupScene* scene); BoxItem* searchBlockItemById(int id, GroupScene* scene); + BoxItem* searchFunctionalBlockRecur(AbstractBlock* block, GroupScene* scene); GroupItem* searchGroupItemById(int id, GroupScene* scene); InterfaceItem* searchInterfaceItemById(int id, GroupScene *scene);