FontMetric specific settings are now applied in the showEvent method, which is executed right before showing the Widget
where the font setting from the stylesheet is already present.
* updated spacings and colors in QtCodeView and QtCodeFile
* using Source Code Pro Regular (had to remove light cut from the Fonts folder because it got always used)
* updated syntax highlighted colors to fit design
* changed colors of highlights
* indent all QtCodeSnippets by maximum line number in QtCodeFile
* fixed syntax highlighting to work with sole multiline comment end
fortune cookie message = Your present plans are going to succeed.
The graph views edges are now clickable. On click the edge and its connected nodes will be displayed.
fortune cookie message = Be prepared to accept an exciting opportunity in the future.
This change makes it possible to create a MacOSX app bundle of either Debug or Release builds:
* The script setup/MacOSX/bundle_install.sh is configured by cmake to be placed in the apps Debug and Release folders.
* Execution of bundle_install.sh creates the bundle file structure and copies binaries, libs, frameworks and resources
into it.
* The script uses install_name_tool to reconfigure the dynamic library paths and framework paths of the binary, so they
won't point to the system libraries, but to the locations in the bundle instead.
* An Info.plist file is also configured by cmake and placed in the bundle by the script. Note: It is named
bundle_info.plist in the Debug and Release folders after configuration so the start of the binary during developement
does not use it.
* When opening the bundle it is assured via setup() in src/app/platform_includes/includesMac.h that the working
directory of the binary is set to .app/Contents/Resources so the paths to the data files are evaluated correctly.
fortune cookie message = Dein Einsatz wird in Kürze belohnt werden.
* removed const m_dimensions in VectorBase and replaced it with N
* changed signature of DummyNode::operator=
* fixed warning for DummyNode wrongly declared as class
Added simple layouting functions (implementations for simple grid and circle layout).
Also the graph displays class members and connections (edges) to or from them "correctly" now.
fortune cookie message = Your exotic ideas will lead you to many exciting new adventures.
This change save typedef expressions to the Storage using a node of type Node::NODE_TYPEDEF and an edge of type
Edge::EDGE_TYPEDEF_OF that leads to the original type, with the qualifiers saved as DataType on the edge.
This change introduces the structure ParseTypeUsage for passing information about type usage from the parser to it's
client. It is used for passing data type and location information about return types and parameter types, which now
get saved to the corresponding edges in the Storage.
* Added Array and Reference Modifier for DataType.
* Created basic tests for DataType.
* Fixed bug where qualifiers of modifiers were not copied correctly.
* Fixed bug where DataType modifiers were applied in the wrong (reverse) order.
Function and method nodes are now distincted by their signature when added to the graph. A different node for each
overloaded declaration is created with the signature as member field.
fortune cookie message = Deine harte Arbeit wird schnell belohnt werden.
- ASTVisitor uses DataType instead of string to pass on type information.
- Edges can have EdgeComponents.
- EdgeComponentDataType stores information that modifies the type a ...TYPE_OF edge points to.
- EdgeComponentDataType can create a complete DataType using it's internal information.
- Fixed a bug where DataTypeModifiers did not apply their qualifiers.
Moved Storage instantiation into the Project. Storage access is still handled via the GraphAccess and LocationAccess
interfaces, but the ComponentFactory now only serves proxy implementations of these access classes. Project is
responsible for setting the subject of the proxies to the current Storage instance.
Added MenuBar action Project->New, which opens a directory dialog for choosing the new source directory to parse the
files from. The ConfigManager can be created empty now and setValue calls can be used to set values.
fortune cookie message = Your troubles will be faded by the luck you will soon have.
This change adds a MenuBar to QtMainWindow and adds an action for opening a different project settings XML file. The
message MessageLoadProject is thereon used to load a new project in the Application and clearing the Storage.
* activate token of most nested location
* show parts of locations with start or end outside of snippet
* (fix for multiple parsing of function and method bodies)
This change parses calls in CxxParser by using the class ASTBodyVisitor which traverses the Stmts and Exprs in the body
of the function and method declarations.
The calls include:
* calls in functions
* calls in methods
* constructor calls
* constructor calls in initialization lists
* implicit constructor calls of fields
* calls to operators
* global constructor calls of global variables
* global function calls for global variables
The calls don't include:
* destructor calls
* some calls to implicit constructors and copy constructors
fortune cookie message = Don't be afraid to take that big step.
By now the graph displays the active node, without neighbours or anything, and clicking a node sets the active token id to the clicked nodes id.
fortune cookie message = Be prepared to accept an exciting opportunity in the future.
This change removes the local std::string variable in the log macros due to possible name collisions with macro callers
in clang. Responsibility of this change is held by Malte.
This change parses inheritance in CxxParser and saves them as EDGE_INHERITANCE in the Storage's graph. Tests for correct
inheritance recognition were added to CxxParserTestSuite.
fortune cookie message = If you continually give, you will continually have.
- Implemented autocompletion for the QtSearchView.
- Added: MessageFinishedParsing that will be dispatched by the Project after the parsing step is done.
- Moved the initial MessageActivateToken from the Project to the Application.
- Added getNamesForNodesWithNamePrefix() to GraphAccess.
- Added a basic SearchView (+ controller and qt implementation)
- SearchView can set the active element of other views by dispatching a message.
- SearchView adjusts its text when the active element is changed by other views.
- Added wrappers for Button and EditBox that allow the usage of simple callback functions.
This change refactors parts of the QtCodeSnippet and places some settings into ApplicationSettings.
Additionally Application- and ProjectSettings were abstracted to the common base class Settings, which takes care of the
getting and setting values of the Configmanager member.
- Renamed MessageActivateTokenLocation to MessageActivateToken, since it uses the Token id (not the TokenLocation id).
- Implemented CodeController to add one snippet for each location where the activated token occurred.
- Added Semaphore to QtThreadedFunctor to prevent an evil race-condition.
- CodeView dispatches message when a token is clicked.
Added some features to QTCodeSnippet:
* Code is now annotated using information from TokenLocationFile
* Start of line numbering can be set
* Clicking on an annotation in the code gives the corresponding Token Id
fortune cookie message = Your kindness will be repaid.
- Replaced CodeAccess with LocationAccess.
- Implemented basic functionality for CodeController.
- Added messaging to the project.
- Added QtThreadedFunctor to enable our Messaging thread to invoke calls on the QtThread.
- Added GraphController.
fortune cookie message = Good news from someone dear is coming soon.
This change switches the view creation architecture from element based creation in the lib to view based creation in the
app. This avoids wrapping of the Qt elements and instead defines interfaces for the different View implementations.
* GuiElementFactory was renamed to GuiFactory and is now responsible for View creation instead of Element creation.
* WidgetWrappers are now used on Views to access their root widget.
* Removed DummyView and DummyController.
* Removed GuiElement and corresponding QtElement files.
* Removed ViewManager, functionality is now handled via MainView.
* Added MainView, where Views are registered via the ViewLayout interface.
* Added QtMainWindow, derived from QMainWindow and instantiated by QtMainView, which displays the Views as QDockWidgets.
fortune cookie message = All your hard work will soon pay off.
This change adds structures for saving TokenLocations in the Storage and improves the location derival in the
ASTVisitor:
* TokenLocation saves an Id of a Token. For each Token two TokenLocations are created for both start- and endpoint. They
keep a reference to each other and know whether they are start or end.
* TokenLocationLine saves all TokenLocations in a line and the lineNumber.
* TokenLocationFile saves all TokenLocationLines of a specific file and the filePath.
* TokenLocationCollection saves multiple TokenLocationFiles.
* TokenLocation can derive it's lineNumber and filePath through references to first TokenLocationLine and from there to
TokenLocationFile.
We decided to stop code reviews for now, because they are too time consuming. We will consider reintroducing them when
the project is at a more mature stage.
Changed old 2d vector template to a generic vector class that can have any amount of dimensions. Added implementations for 2d and 4d and typedefs for int and float.
Updated the unit tests accordingly
fortune cookie message = pray for what you want but work for the things you need
This change removes the ConsoleLogger from the TestSuiteFixture and registers a PlainFileLogger instead, which saves
logs during testing into the file bin/test/data/log/test_log.txt.