Commit Graph
275 Commits
Author SHA1 Message Date
Eberhard Graether ae27d8025b ui: show tooltips when hovering nodes and edges 2015-09-24 16:18:23 +02:00
Eberhard Graether b8c95c5a20 logic: removed namespace splitting from GraphController
Namespace splitting is now handled in active token id retrieval from the Storage, so that namespace nodes are not added
to the Graph at all and complexity in the GraphController is reduced.
2015-09-24 15:37:35 +02:00
Eberhard Graether 97e49d9b3f data: added HierarchyCache for storing member relationships
This change introduces the HierarchyCache that caches the member relationships of nodes in memory for faster graph
retrieval. Storing these relationships allows for retrieving nodes and edges as lists from the SqliteStorage at once
which results in a 10 fold speed improvement.
2015-09-24 12:43:49 +02:00
Eberhard Graether 5c06dedf7c data: Fixed inheritance parsing for tests 2015-09-24 10:30:25 +02:00
Eberhard Graether c18bd6a8bc data: fixes for parsing and logging
* readded Storage logs
* turned type name resolver error logs to info logs
* fixed inheritance not parsed in forward declarations
* check file node id before saving source location
* show errors in unparsed files again
2015-09-24 02:39:10 +02:00
Eberhard Graether bb3a8bf351 ui: force refresh option in menu for reloading whole project 2015-09-23 16:44:39 +02:00
Eberhard Graether 502909c789 data: retrieving multiple datums with single queries
* getting all incoming and outgogin edges to children at once in aggregation edge computation
* getting all edges connected to active node at once
* getting all access components for all member edges at once.
2015-09-23 14:32:33 +02:00
Eberhard Graether 391082160c data: saving NameHierarchy directly to Node without TokenComponentName 2015-09-23 12:45:58 +02:00
Eberhard Graether b07bc7ed19 data: readded signature distinction for functions 2015-09-23 12:04:19 +02:00
Eberhard Graether 3d48145e47 data: Fixed edge creation
* reuse edges of same source, origin and type with multiple source locations
* save return type and parameter type uses as type usage for single edge
2015-09-23 10:23:46 +02:00
Eberhard Graether ef54299deb data: increased aggregation edge creation performance 2015-09-23 10:01:28 +02:00
Eberhard Graether 78c1b32797 data: increased parse and graph assembly performance
* removed header search in subdirectories of header search paths
* cache file node ids in Storage for faster lookup
* retrieve node names from SearchIndex
* fixed addNodeAndAllChildren also called for member edges
* added check if node already present in addEdgeAndAllChildren
2015-09-23 09:26:03 +02:00
malte_langkabel e9d45a507a ui: project settings fix
* fixed open folder dialog in project settings.
* changed foreign key relation of component_access from the element to the edge table.
2015-09-17 16:48:05 +02:00
Eberhard Graether 0c7624a5ef data: saving and retrieving access components from and to Storage again 2015-09-17 15:58:10 +02:00
Eberhard Graether 04f24ba63d test: Fixed tests 2015-09-17 15:07:46 +02:00
Eberhard Graether a596c58b02 data: Fixed performance drop in file path search 2015-09-17 13:53:28 +02:00
Eberhard Graether a14bfaff56 data: saving and loading Storage with sqlite file next to project file 2015-09-17 12:08:25 +02:00
Eberhard Graether 05d390fb3f src: some fixes
* fixed field declaration type has no source location
* grouped menu items
* overload edge pointing in right direction
2015-09-17 11:08:04 +02:00
malte_langkabel 3d94b78b8c data: refreshing with DB
* database stores modification time of files.
* FileManager updates internal state based on database info.
* reimplemented FileManager's check if a file is in project.
* implemented clearing data of updated or removed files before reparsing the updated and added files.
2015-09-16 18:53:33 +02:00
Andreas Stallinger 73b1b77ca8 data, utility: Fixes to run Opensource Projects
templateSpecializationArgsAsWritten returning null caused a crash
VisitMemberExprInDeclBody for vardecl was missing
subdirectories for headersearchpaths, that the user does not need to add a hugh amount of folders
2015-09-16 17:08:16 +02:00
Eberhard Graether eaa3fab4ec ui: fixes
* fixed first match in autocompletion not preselected
* fixed maximize file button extending snippets
* changed names of views and setting name of composite view
* fixed number of error locations
2015-09-10 15:49:28 +02:00
Eberhard Graether 934c70272d ui: new file node style with icon 2015-09-08 17:08:33 +02:00
Eberhard Graether a7ec6772ff data: Fixed aggregation edge creation and display 2015-09-08 14:36:17 +02:00
Eberhard Graether 5ab627b735 ui: reworked StartScreen and ProjectSettupScreen UI flow
* realigned buttons and elements
* fixed retina styles for mac
* removed MessageLoadSource and subsequent functionality
* edit existing project through menu
* browsing paths from the line item in QtDirectoryListBox
* grow QtDirectoryListBox instead of scroll
* take any file or directory as valid path
* fixed new project setup screen background
* fixed screen handling on cancelation
2015-09-04 10:54:37 +02:00
Eberhard Graether 1b445d4c3a src: removed query syntax
This change removes the query syntax from the QtSmartSearchbox and all its classes. Now it only autocompletes to one
single Token, but the UI functionality for composing a query of multiple elements is still left for later use. The struct
SearchMatch is now used in the whole pipeline for passing search results back and forth.
2015-09-02 11:52:07 +02:00
Eberhard Graether 9bcf7d2f0f data: cleaned up TokenLocation classes
* removed self assiged locationId
* show errors after parse again
2015-08-27 22:14:12 +02:00
Eberhard Graether 2044ff9723 data: cleaned up Graph classes
* removed self assignment of id from Token
* removed FilterableGraph interface from Graph
* creating Nodes and Edges on Graph with addNode and addGraph methods
* removed obsolete Aggregation edge filtering
* fixed clang warnings
* fixed memory leak for Node creation
2015-08-27 17:25:52 +02:00
malte_langkabel e628241b02 data: database storage
* replaced storage by a new version that utilizes sqlite for persistence.
* added SqliteStorage to manage direct access to the database.
* added testsuit for sqlite.
* slimmed down the protected interface of the storage.
* changed tests in StorageTestSuit to avoid using protected methods of the storage.
* added functions to begin and commit a transaction to the storage.
* removed GraphFilterTestSuite.
* removed GraphFilterConductorTestSuite.
* added Node and Edge constructor that takes id as parameter
* added constructor for TokenComponentNameCached that accepts NameHierarchy as parameter
* added TokenLocation constructor that takes locationId as parameter.
* created respective construction functions in TokenLocatonLine, -File and -Collection.

fortune cookie message = Recognition will come from unexpected sources.
2015-08-25 18:07:02 +02:00
Andreas Stallinger fb877e1304 build: fix compiler and cmake warnings
added missing virtual destructor
fixed a warning in token.h: expression with side effects will be evaluated despite being used as an operand to 'typeid'
CMP00043 Cmake warning
added missing override keyword
2015-08-18 14:43:32 +02:00
Eberhard Graether 30c941fcf8 logic: crash fixes
<description>
2015-08-07 00:17:41 +02:00
Eberhard Graether 5f25311389 logic: paths in ProjectSettings relative to file not working directory
This change checks all paths in the ProjectSettings file for relativity and makes them relative to the location of the
ProjectSettings file if necessary. The paths are also correctly saved relative to the file.
2015-07-29 22:20:26 +02:00
Eberhard Graether 73aa6080aa ui: clicking snippet title to show full scope
This change lets the user click the snippet title in the CodeView to insert the full scope. The existing snippets are
merged with the new lines accordingly.
2015-07-20 00:57:19 +02:00
Eberhard Graether 85d2ebc32a logic: removed FilterUndefinedNodesFromGraph setting
because it is confusing and not necessary anymore since we have bundled nodes.
2015-07-18 13:46:03 +02:00
Eberhard Graether 5722b4dc23 ui: color schemes
Put all colors into single xml file. Accessing colors is handled via the singleton class ColorScheme. The default scheme
"bright.xml" holds the original colors. The scheme "dark.xml" is a start, but still a poor alternative. Color schemes
can be switched via the View menu.
2015-07-17 19:50:39 +02:00
Eberhard Graether a527a3c34d logic: rewrote messages handling token activation for correct restoring on undo
* saving search query to undo stack with MessageSearch
* saving node and edge with name to undo stack with MessageActivateNode and MessageActivateEdge
* added FeatureController that handels distribution of MessageActivateTokens
* clearing views when refreshing or changing project
* clearing undo stack when changing project
* added StorageCache derived from StorageAccessProxy
2015-06-19 00:20:50 +02:00
Eberhard Graether d6269f9608 ui: bundling nodes in the graph view
This change bundles similar nodes in the graph view together. When the bundled node or it's aggregation edge are clicked,
then the bundle is split. This change also adds an arrow to the aggregation edge based on the direction of it's edges.
2015-06-17 22:47:08 +02:00
Eberhard Graether 3c6782d94d data: fixed graph display errors
* fixed Storage saving specialized template functions as undefined function node
* fixed usages of same type in functions in return or parameter not clickable in graph, because the edges are on top
2015-06-11 14:04:20 +02:00
Eberhard Graether 0153330317 data: log storage stats after parsing 2015-05-29 16:49:10 +02:00
malte_langkabel 8949470848 data: Fixed splitting of name hierarchy for template Arguments
* fixed bug where types used by templates as arguments have not been split into proper name hierarchy.
2015-05-27 10:35:41 +02:00
Eberhard Graether 149bb52c4c data: fixes and improvements
* save forward declarations of classes and structs as NODE_UNDEFINED_TYPE
* put whole files on top in snippet sorting
* uses aggregation count as weight in graph layouting instead of adding all edges to graph
* refreshing all views of components on MessageRefresh in ComponentManager
* reloading ApplikatinoSettings on MessageRefresh
2015-05-25 04:12:52 +02:00
Eberhard Graether 5868fe4d39 ui: minimize and maximize buttons for QtCodeFile
This change switches the code view UI to use minimize and maximize buttons within the QtCodeView instead of creating
separate windows for each maximized code file. Real icons for the buttons are still missing.
2015-05-19 16:27:42 +02:00
Eberhard Graether 1f3be0e60d data: fixes for clearing on refresh
* reduce aggregation count when clearing
* added TokenLocation to method override edge
* added TokenLocations to template related edges
2015-05-18 16:22:39 +02:00
malte_langkabel 97345cc72f ui: scope names in snippet titles
* added title for snippets
* title displays name of parent scope.
* when new TokenLocationFiles are created in the storage they are now returned as shared_ptr to ensure correct linking in the contained data.
* Storage::getTokenLocationsForLinesInFile() now always returns pairs of start and end locations.
* Adjusted code snippet view to regard the change described above.
2015-05-11 12:34:27 +02:00
Eberhard Graether 7d48a873f7 data: parse type usages of types used as template arguments
This change ist just an interim solution and does not cover all cases.
The TokenLocation saved for the template argument is the location of the whole expression.
2015-05-05 23:21:43 +02:00
Eberhard Graether 7dcf8b0bdb src: various fixes
* fixed crash when hovering GraphNode while expanding/collapsing it
* fixed clang warnings
* fixed GraphNodeExpandToggle to show empty circle
* fixed Searchbar showing empty block when nothing was parsed
* made template related edges in GraphView red
2015-05-05 23:12:25 +02:00
malte_langkabel fd73abde64 ui: snippet sizes
* added SnippetMerger class that conducts the merging and snapping of TokenLocations to create snippets.
* added parameters for snippet snapping and merging to ApplicationSettings.
* added forEachStartTokenLocation() and forEachEndTokenLocation() to TokenLocationLine and TokenLocationFile.
* added < and > operators to TokenLocation that compare the location part (not the id).
2015-05-04 15:00:18 +02:00
Eberhard Graether 4ec3dfd372 src: fixed clang warnings 2015-05-04 10:15:55 +02:00
Eberhard Graether 749b1647e4 ui: added loader animation gif to StatusBar
The loader animation can be activated by setting the showLoader flag on MessageStatus.
2015-04-28 20:26:31 +02:00
malte_langkabel a0340d9438 data: name resolving refactored
* Created CxxNameResolver classes that take care of resolving the name hierarchies of clang components.
* NameResolvers store clang::Decls they ignore when traversing the hierarchy of DeclContext nodes. This approach is used to avoid infinite loops when parsing template parameters of a template class that depends on it's template parameters that depend on the template class....

<description>
2015-04-27 10:33:31 +02:00
Eberhard Graether d56a9afe24 data: Only show parse errors in project files 2015-04-24 00:37:40 +02:00