class GroupWidget;\r
\r
#include "BlockImplementation.h"\r
+#include "ExternalResource.h"\r
\r
#include "Exception.h"\r
class Exception;\r
inline void setCursorState(CursorState state) { cursorState = state; }\r
inline void setDispatcher(Dispatcher* _dispatcher) { dispatcher = _dispatcher;}\r
\r
+ // testers\r
+\r
+ // others\r
+ static QString normalizeName(const QString& name);\r
+ QList<ExternalResource*> searchResourceByName(const QString& name);\r
+\r
/***************************************************\r
attributes that are general to the application\r
***************************************************/ \r
BlockLibraryTree* categoryTree;\r
QList<QString> refPathes;\r
QList<QString> implPathes;\r
+ QList<QString> sourcePathes;\r
QList<ReferenceBlock*> availableBlocks;\r
QList<BlockImplementation*> availableImplementations;\r
+ QList<ExternalResource*> availableResources;\r
+\r
ReferenceBlock* delayRef;\r
BlockImplementation* delayImpl; \r
\r
QString defaultIfaceFontName;\r
int defaultIfaceFontSize;\r
int connGapLength;\r
- QPainterPath inArrow;\r
- QPainterPath outArrow;\r
+ QPainterPath dataArrowIn;\r
+ QPainterPath dataArrowOut;\r
+ QPainterPath clkrstArrow;\r
+\r
\r
/***************************************************\r
attributes that are specific for the current project\r
bool unsaveModif;\r
bool isRstClkShown;\r
QMap<FunctionalBlock*, BoxItem*> blockToItem; // allow to retrieve a box item from a functionnal block\r
+ QString projectPath;\r
+ QString projectName;\r
+ QString projectFile; // equals to projectPath/projectName.xml\r
+ bool autoConnMainClk; // true if auto-connection to main clock (i.e. ext_clk)\r
+ QList<double> clocks; // clocks[0] is the main clock.\r
\r
- Graph* createGraph();\r
+ Graph* createGraph(bool createTopGroupIfaces = true);\r
void destroyGraph();\r
inline Graph* getGraph() { return graph; } \r
ReferenceBlock* getReferenceBlock(int idCategory, int idBlock); // get the reference block from its category and index\r
- FunctionalBlock* duplicateFunctionalBlock(FunctionalBlock* block); // adding a copy of a functional block to current group\r
-\r
+ ReferenceBlock* getHiddenReferenceBlock(QString blockName); // get a hidden block by name, i.e. in category 100 \r
+ double getFeedingClockFrequency(AbstractInterface* iface); // determine at which freq. is synchronized iface\r
\r
void clear();\r
\r
void loadImplementationsFromLib() throw(Exception);\r
void saveImplementationsToLib() throw(Exception);\r
\r
+ void loadSources() throw(Exception);\r
+\r
void addAvailableBlock(ReferenceBlock *block); \r
void parametersValidation();\r
void connectionsValidation();\r
void save(QString confFile);\r
\r
\r
- QString projectPath;\r
+\r
\r
private:\r
Graph* graph; // the graph model of blocks\r