Commit Graph
597 Commits
Author SHA1 Message Date
Eberhard Graether 95929db6e0 ui: improved ui of maximized code file window
* Annotations updated when active token Id changes
* FileName in window title
* Maximize button not shown
* Scrolls roughly to the maximized location.
* Maximizing also on double click in code snippet
2014-07-28 01:17:01 +02:00
Eberhard Graether dea79f701b ui: added maximize button to CodeSnippets that opens the full file in a separate window 2014-07-27 16:13:59 +02:00
Eberhard Graether 16d49e58cc logic: extended CodeView to show locations of edges to the active Token and merge overlapping snippets 2014-07-26 23:07:47 +02:00
Eberhard Graether 68c6ede244 data: saving graph nodes with short name only
This change saves only the short names in the node, getName() no only gives the short version. The fullName is assembled
from the parent nodes on demand using the getFullName() method.
2014-07-26 14:58:06 +02:00
Eberhard Graether 5d201b9880 ui: added shortcut to refresh view
Added a refresh shortcut to the new View menu, that causes stylesheets to be refreshed by dispatching a MessageRefresh.
2014-07-21 17:49:41 +02:00
Eberhard Graether 160e67a94d utility: added stream logging macros
For easier use with int and other basic types, new logging macros where introduced that use stringstream internally, so
heterogeneous data can be logged using the following syntax:
	LOG_INFO_STREAM(<< "hello " << 42 << '!');
2014-07-21 02:11:07 +02:00
Eberhard Graether 0d46de871a src: fixed clang warnings, fixed undefined symbols logs, fixed code convention violations 2014-07-21 01:26:35 +02:00
Eberhard Graether 4578c109ec ui: added find shortcut to set focus in search view
The shortcut is added to the new Find menubar item and dispatches a MessageFind, which is handled by the
SearchController. QtSearchView assures via the ViewLayout that the view is visible when setting focus on the search box.
2014-07-17 14:38:18 +02:00
Manuel Dobusch 2c9c83d003 ui: typed edges
Edges in the graph view are now colored according to their type.
2014-07-16 15:38:54 +02:00
Eberhard Graether 810ed7c064 build: fixed errors in clang
* removed const m_dimensions in VectorBase and replaced it with N
* changed signature of DummyNode::operator=
* fixed warning for DummyNode wrongly declared as class
2014-07-16 11:54:16 +02:00
malte_langkabel 61cb4afd91 ui: style search view
Added stylesheet for search view.
Added utility function that loads all font files inside a folder.
Added icons and font files.
2014-07-15 12:30:40 +02:00
malte_langkabel f1f2ea0ccd data: storing type modifiers in edges
- 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.
2014-07-10 11:54:29 +02:00
Eberhard Graether f07f2051f2 ui: load source from directory via MenuBar
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.
2014-07-09 16:41:11 +02:00
Eberhard Graether 2009b7526a ui: load project via MenuBar
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.
2014-07-09 15:22:41 +02:00
malte_langkabel 78704b6407 data: complex typename parsing
Added DataType class that can be constructed with a clang::qualType.
DataType keeps an internal QualifierList and ModifierStack.
2014-07-09 11:00:35 +02:00
Manuel Dobusch 0f60a9a556 ui: GraphView can set active tokenId on node clicked
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.
2014-07-07 16:53:44 +02:00
Eberhard Graether e38914887d utility: Fixed name collision of log macros in clang
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.
2014-07-07 13:43:29 +02:00
malte_langkabel c02767362f ui: search view autocompletion
- 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.
2014-07-07 11:25:46 +02:00
Eberhard Graether 9297ea6d6d ui: Separated QtCodeSnippet and added QtCodeFile to display filename 2014-07-04 10:13:41 +02:00
Eberhard Graether 042a508422 ui: Refactored QtCodeSnippet and added view settings to ApplicationSettings
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.
2014-07-03 16:10:55 +02:00
malte_langkabel 4ae6f4a04a logic: code controller
- 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.
2014-07-03 16:03:06 +02:00
Eberhard Graether e63106b13b build: fixed missing include and clang warnings 2014-07-02 21:39:39 +02:00
malte_langkabel 400e2629d2 logic: code controller communication
- 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.
2014-07-02 16:42:33 +02:00
Eberhard Graether 5251e3ecb6 test: Removed __FUNCTION__ part in PlainFileLogger logs because of platform differences 2014-07-02 14:50:15 +02:00
Eberhard Graether 4c0f07c16f test: Put test data into TestSuite specific folders 2014-07-01 00:19:48 +02:00
Eberhard Graether 324dff80a8 utilty: fixed generic vector for clang 2014-06-30 23:29:58 +02:00
Manuel Dobusch ff3ddcca2a utility: generic vector
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
2014-06-30 17:45:50 +02:00
Eberhard Graether 3a983598e6 test: Save logs during testing and add them to version control
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.
2014-06-30 17:15:17 +02:00
Eberhard Graether 5ceb7a4b43 data: added Graph data structure for storing code semantics in Storage
This change adds graph data structures Token, Node, Edge and Graph for holding code semantics in the Storage and fills
them with the parsed data. Things to note:
* Token is the base for the classes Edge and Node and holds a unique id.
* Graph is the owner of all Nodes and Edges.
* A Node saves the Edges it is endpoint of.
* An Edge saves the Nodes that are endpoints.
* Nodes and Edges are not subclassed. The different Node and Edge types are distinguished by the enums NodeType and
  EdgeType. Type specific fields are therefore available for all types, a check when assigning them prohibits faulty
  usage.
* Storage uses the Graph::getNodeHierarchy method, which is not strict about knowing type names beforehand. E.g. if A::B
  is passed in and A doesn't exist so far, then node A gets created as NODE_UNDEFINED with B as it's child.
* The Graph methods addNodeAsPlainCopy and addEdgeAsPlainCopy can be used to create a sub-graph without reference to the
  original, but with the same ids.

review id = 19

fortune cookie message = Your cheerful outlook is one of your best assets.
2014-06-30 14:08:01 +02:00
Andreas Stallinger a26f5a52b2 logic : projectsettings loading
loading projectsetting via file

review id = 21

fortune cookie message = in dreams and in life, nothing is impossible
2014-06-03 17:07:32 +02:00
Andreas Stallinger 877ee4d56e utility: filesystemfix
replaced boost::filesystem::path string() with generic_string()

bug id = 1
2014-05-27 12:46:34 +02:00
Manuel Dobusch bb6640369a Utility: TextAccess
Abstraction for file or text access.

review id = 16

fortune cookie message = Good news from someone dear is coming soon.
2014-05-19 12:45:44 +02:00
Andreas Stallinger ac55261af6 utility: boost integration
Added boost components: filesystem and system to the project
environment varibable BOOST_155_DIR targeting the boost_1_55_0 folder is needed

review id = 14

fortune cookie message = when you speak honestly and openly, others truly listen to you
2014-05-13 17:24:53 +02:00
Andreas Stallinger 95e51b1780 utility,logic : missing algorithm includes added 2014-05-13 15:40:20 +02:00
Eberhard Graether ed8d527b65 utility: Added messaging system
To use the messaging system the classes Message and MessageListener need to get derived. The Singelton MessageQueue is
responsible for managing listeners and sending messages in a threadsafe way.

review id = 9

fortune cookie message = You are on your track to starting something new.
2014-05-12 17:35:55 +02:00
Eberhard Graether c3cd0b7e6f utility: Fixed Vector2 includes 2014-05-12 15:46:00 +02:00
malte_langkabel 37d0dd33a4 ui: implemented gui abstraction and dummy view
- added abstract class tree for gui elements.
- implemented concrete gui classes that wrap the qt specific content.
- implemented first DummyView which plays nice with the ViewManager.

review id = 12
2014-05-07 13:00:17 +02:00
Manuel Dobusch 7badd1217f Test: Logging
Enabled logging in unit tests.
Seperated LogManager into LogManager (singleton stuff) and LogManagerImplementation (actual logging stuff)
Implemented simple FileLogger

review id = 13
2014-05-06 17:03:50 +02:00
Manuel Dobusch 6b82ea6860 Build: Warnings
Fixed some compiler warnings, joint ops with ebsi and stalli

review id = 10
2014-04-30 17:11:12 +02:00
Manuel Dobusch 1282c5e9cd Utility: LogManager Threadsafe
The LogManager is now threadsafe.

review id = 7
2014-04-29 15:12:54 +02:00
Eberhard Graether 50d1127f61 utility: fixed clang error in Vector2 2014-04-24 16:16:25 +02:00
Manuel Dobusch 651f0f68a2 Utility: Vector2
2d template vector (with typedefs for int and float)

review id = 5
2014-04-24 14:06:45 +02:00
Eberhard Graether 9902288cab utility: Added ConsoleLogger
Adds the class ConsoleLogger, which logs LogMessages to std::cout. The
Application class creates and registers a ConsoleLogger on creation.

Output format:
<time> | <filename>:<line> <function>() | <type>: <message>

Example:
12:58:18 | Application.cpp:21 create() | INFO: hello world!
12:58:18 | Application.cpp:22 create() | WARNING: attention world!
12:58:18 | Application.cpp:23 create() | ERROR: world failed

review=4
reviewer=stalli, malte
2014-04-09 14:43:48 +02:00
Andreas Stallinger 6b02f6ff87 utility: fix missing algorithm include in LogManager.cpp 2014-04-09 14:24:10 +02:00
Manuel Dobusch c85d997021 Utility: Logging
Added logging utility classes supposed to be used for all your logging
needs, e.g. instead of cout

reviewer=ebsi
2014-04-07 14:44:54 +02:00
malte_langkabel a1de92c58d config: setup
Added implementation of config Manager and tests.

reviewer=Ebsi
review
url=https://git.mediacube.at/egraether.mmt-b2009/masterproject/merge_request/3
2014-04-04 14:32:10 +02:00
Eberhard Graether d4e3433e5d project: added project skeleton
Skeleton includes emtpy implementations of application class structure.
Source groups were added to CMakeLists to define filters in Visual Studio.
2014-03-31 17:59:52 +02:00