Commit Graph
597 Commits
Author SHA1 Message Date
mlangkabel d2cd236318 logic: implemented shrinking shared memory to fit required amount from time to time 2018-11-05 10:38:48 +01:00
Eberhard Graether f13aec70dd ui: Added tabs UI to top of main window (issue #215)
* Added tab bar to top of main window with UI/shortcuts similar to web browsers
* ComponentManager offers components for 2 use-cases: application and tab
* Application components: log view (status/errors), bookmarks, screen search, status bar, tabs, tooltips, dialogs and all tab views disabled
* Tab components: graph, code, history and search
* When a project is loaded there is always at least one tab, otherwise there is none
* Each tab replaces the application views of the same name in the main layout when activated
* Each tab has it's own TaskScheduler, to process tasks independent from other tabs
* The application has a global TaskScheduler for application wide tasks
* The singloton class TaskManager is responsible for managing the TaskSchedulers
* MessageListeners and Messages hold an optional schedulerId, both must be set to only send to a specific TaskScheduler
* Bookmark buttons where split off into a separate view per tab, bookmark managemement is done in the application
* History menu processing is done by the QtMainWindow now
* Screen search is an application component, the responders are always changed to the active tab
* Plugin messages are opened in a new tab
* Symbols can be opened in a new tab via middle click/context menu in graph, code, history dropdown
* Full text index creation is mutexed now in PersistenStorage to make it fully thread-safe
* All tabs are closed when switching projects
* Tab contents are only animated when visible

fortune cookie message = Catch your lucky star!
2018-11-05 01:28:12 +01:00
Eberhard Graether 0663286a90 logic: Fixed TaskDecoratorDelay slowing down Task processing 2018-10-28 17:11:24 +01:00
Eberhard Graether e2dd26ee5a logic: Split MessageRefresh into index and UI 2018-10-28 12:11:53 +01:00
Eberhard Graether 27627b6d05 logic: Fixed termination issues in task scheduling
* don't use thread::detach() in TaskGroupParallel::terminate to make it useful for tabs
* properly terminate TaskFillIndexerCommandQueue
* fixed wrong microsecond delays
* moved some task delays to TaskDecoratorRepeat for better transparency
2018-10-28 02:36:41 +01:00
Eberhard Graether adc1900d18 logic: Fixed multiple active symbols broken on undo
* fixed undoing to multiple actives didn't show all nodes in graph
* fixed wrong name in search bar, status message and history dropdown
* fixed flicker when activating multiple nodes in code view
2018-10-19 20:47:08 +02:00
Eberhard Graether 842bce8b32 logic: Show hidden indexing dialog on refresh
* Fixed refresh restarted when refreshing while processing files
2018-10-17 01:30:33 +02:00
Eberhard Graether 54f3b551ef src: Fixed shared memory garbage collector mutex stuck
* Try unlocking mutex 5 times
* Then force ownership
* If everything fails run without garbage collector
2018-10-16 15:20:48 +02:00
Eberhard Graether aab29b241e test: Replaced DumpParserClient and TestParserClient with TestIntermediateStorage to ease switch to new ParserClient API 2018-10-15 15:05:15 +02:00
mlangkabel 10658b2801 ui: display multi-line maven error messages (issue #622) 2018-10-05 13:32:25 +02:00
mlangkabel 7c039a2fb8 logic: fixed reading lines now also breaks at a single "\r" on windows 2018-09-21 18:00:34 +02:00
mlangkabel 951256c07b logic: reduced waiting time when interrupting indexer processes
* made multiprocess AST traversal interruptible again
* removed const variables that define sleep times for threads
2018-09-21 17:19:03 +02:00
Eberhard Graether 593e075399 utility: don't process log messages in stream macros when logging disabled 2018-09-21 16:28:07 +02:00
Eberhard Graether 56dcddfb83 cxx: Improved performance of CxxAstVisitor, CxxNameResolver and CxxName types
* use unique_ptr for CxxName handling
* create CxxNameResolver from other
* improved string handling in CxxName types
* only traverse decls within projects
* use macro in ast visitor to call into each component instead of virtual calls
* improved CxxName caching performance
* refactored CxxNameResolver classes to use less locals
2018-09-21 14:48:51 +02:00
Eberhard Graether 513988e51b src: Fixed tests for Mac 2018-09-21 14:38:31 +02:00
mlangkabel dfc6d88432 build: search headers in all source directories
* removed paths in include directives
* changed cmake to provide necessary header search paths
* changed name of version.h to productVersion.h due to name conflict
2018-09-18 19:00:18 +02:00
mlangkabel 9dc2bcc2f9 logic: indexer command refactoring
* moved SystemHeaderSearchPaths and FramewordSeearchPaths of indexer cxx indexer commands to CompilerFlags section
* added SourceGroupTestSuite to test indexer command generation of all source groups
* removed "compile_commands.json" from gitignore, because a resource file for the tests has this name
2018-09-18 17:09:28 +02:00
Eberhard Graether 07454f2045 data: Removed std::multimap optimization from LowMemoryStringMap and store local symbol names in std::map 2018-09-18 12:32:55 +02:00
mlangkabel eb0bf063b8 logic: improved performance of "setting up indexers" step for CDB SourceGroups
* improved performance of generating IndexerCommandProviders of  CDB SourceGroups
2018-09-11 13:23:55 +02:00
mlangkabel cdbca77495 src: cleaned up code of Tasks and IndexerCommands 2018-09-10 13:17:49 +02:00
mlangkabel 9998855527 logic: generate indexer commands on demand to reduce shared memory consumption
* implemented task for sending IndexerCommands to shared memory on demand
* SourceGroups now return IndexerCommandProviders instead of just a list of indexer commands. This way information can be stored in a compressed format
* merged IndexerCommandCxxEmpty and IndexerCommandCxxCdb
* moved sorting of indexer commands by file size from IndexerCommandList to TaskFillIndexerCommandQueue
* removed obsolete IndexerCommandList class
* wait for IndexerCommandQueue to be filled before starting the indexers
* restart finished indexer processes while indexerCommandQueue is still running
* restart indexer threads as long as there are indexer commands to process
* removed Blackboard::getMutex() and added an atomic update() method
2018-09-10 12:40:30 +02:00
mlangkabel 1a39f9ddc0 logic: fixed crash and missing includes in LogMemoryStringMap 2018-09-04 21:43:00 +02:00
Eberhard Graether bb1d7f5b39 src: Fixed clang warnings 2018-09-02 21:23:07 +02:00
Eberhard Graether 06d64b76f7 data: Reduced memory usage during indexing with LowMemoryStringMap
* reduces node and local symbol index sizes by about 30-50%
2018-09-02 20:47:43 +02:00
mlangkabel ea68229303 logic: fixed crash that occurred in some cases when logging the clang invocation 2018-08-31 13:19:52 +02:00
mlangkabel 21d58357f2 logic: fixed application crash on windows if JVM tries to allocate too much memory by reducing the amount of allocated memory to the available size. 2018-08-28 13:06:36 +02:00
Eberhard Graether 470a8a3920 data: Improved data storing performance in IntermediateStorage 2018-08-27 23:37:24 +02:00
mlangkabel e8a4830229 ui: fixed crash that had a chance to occur when showing source files of cdb/cbp/sonargraph project 2018-08-27 16:15:18 +02:00
Eberhard Graether bd1e79179b logic: Fixed source extensions not converted to lowercase (issue #614) 2018-08-24 16:12:53 +02:00
Eberhard Graether afec261872 ui: Made all indexing dialogs hideable
* all dialogs for the indexing usecase can be hidden regardless of project state
* fixed some dialogs could not be shown
* pass dialogview into project and all indexing tasks
* pass application to project and tasks
2018-07-25 23:49:46 +02:00
Eberhard Graether d96baad91d src: Fixes for Release
* pass log directory absolute to indexers
* pass app and user paths absolute to indexers
* removed QCoreApplication instance from indexer process
* removed mutex from ConsoleLogger
* updated shortcut window
* renamed code reference menu items
2018-07-24 12:53:55 +02:00
Eberhard Graether ac31bb6779 src: avoid indexing slowdown on macOS by not using unknown progress for progressbar in status bar 2018-07-24 03:36:27 +02:00
Eberhard Graether ed0ade034e ui: Graph legend (issue #308, #540)
* Show graph legend via 'legend' command or '?' button in the lower right corner
* Legend is not interactive: nodes and edges not clickable or moveable
* CXX and Java node types are mixed
2018-07-23 16:55:58 +02:00
mlangkabel 20086d14a6 logic: ship clang compiler header within Sourcetrail package on Windows
* added clang system headers to data folder of Sourcetrail repo
* added clang system header search directory to detected directories on windows
* updated migration to add clang system header search directory on windows
* updated windows installer and portable package to include compiler headers
* updated linux package
* cleaned code of path detectors
* unrelated removal of unnecessary code in LicenseChecker and UpdateChecker
2018-07-23 15:14:07 +02:00
Eberhard Graether 95ebfff19c ui: Added on-demand local reference navigation to code view navigation bar (issue #453, #538)
* show local reference navigation for local symbols and multiple edge references
* shortcut Ctrl/Cmd + T
* iterate with consecutive edge clicks
2018-07-23 03:13:41 +02:00
Eberhard Graether ad6f5c8727 ui: Added show definition context menu action for graph nodes (issue #83)
* use 'show definition' context menu action or 'Ctrl/Cmd + Left Click' to show definition of node in code
2018-07-22 14:30:56 +02:00
mlangkabel 46e6b8ff14 logic: create non-existing project directory during project setup for better usability 2018-07-21 09:32:33 +02:00
mlangkabel 4be04e28bf ui: improved windows error handling for loading external dlls to display an error text 2018-07-16 12:54:17 +02:00
Eberhard Graether 37aa46d77b ui: Fixed start screen not disappearing when opening project with double click on macOS 2018-07-13 14:36:13 +02:00
mlangkabel ee3bf41a27 logic: fixed crash when renaming the temp storage while it is still used 2018-07-10 14:14:48 +02:00
mlangkabel 58eb994a60 src: cleaned logger code 2018-07-10 11:52:22 +02:00
Eberhard Graether ad325ac974 logic: background indexing (issue #175)
* allow hiding of indexing dialogs to browse loaded project while indexing
* show indexing status in status bar while indexing
* use different dialog views for different use cases to avoid state collisions
* fixed error label in status bar jittering while indexing
* show hand cursors for clickable elements in status bar
* indexing is not interrupted on pressing ESC while in hidden
* disable error table and error label while indexing
* refactored indexing messages
* forbid indexing and changing project while indexing
* don't show indexing status messages in status bar when indexing in the background
* allow tasks to run in the background

fortune cookie message = A journey is waiting for you.
2018-07-10 11:42:58 +02:00
mlangkabel a1dd1a77c9 logic: allow the user to discard an aborted indexer run
* keep old database on filesystem while indexing
* migrate old ".coatiproject" settings to new ".srctrlprj" extension when loading project
* send new errors in MessageErrorCountUpdate after injecting
* recheck filepath exist() in FileSystem's remove, rename, copy and create functions
* updated tasks to new "override" policy
2018-07-03 18:54:53 +02:00
Eberhard Graether c8a885be83 logic: Made history menu use on Messages instead of SearchMatch
* Common base class MessageActivateBase for activation messages with getter for SearchMatches
* Removed duplicate logic for creating SearchMatches from Messages
* Fixed can't reactivate fulltext search from history menu
* Renamed history message and moved to sub directory
* Fixed activating node type filters didn't clear code view
2018-07-03 15:11:52 +02:00
Eberhard Graether 6794b61fab ui: Fixed activating history item from menu showed wrong symbol (issue #572)
* Refactored SearchMatch: removed delimiter, added tokenName
* Refactored MessageActivateTokens: removed tokenNames
* Restore from SearchMatches from NameHierarchies of tokens
2018-06-30 02:16:03 +02:00
Eberhard Graether 84ddb4ba21 logic: Force unlock shared memory mutex of SharedMemoryGarbageCollector on creation 2018-06-30 01:48:31 +02:00
Eberhard Graether 172f1b7934 logic: Moved all error handling logic into ErrorController (issue #577)
* Handle all error related messages in ErrorController
* Moved error filter state from Storage to ErrorController
* Moved all error related messages to type/error subdirectory
* Enable all errors shown by default
* Always show unfiltered error count in status bar and overview
* Fixed all errors shown again when changing error filter on errors for file
2018-06-29 13:31:05 +02:00
mlangkabel 08ab75f262 logic: refactored QtProjectWizzard to remove duplicate definition of contents shown for setup and summary
* also added current page count (e.g. 1/3) to project setup
* moved the code for copying a source group to the settings classes so that the wizzard doesn't need to know which source groups may be there anymore.
2018-06-25 16:00:20 +02:00
Eberhard Graether c4901b6a7f data: fixed issues with errors in incomplete files
* fixed intermediatestorage merges might lose file indexed/complete information
* fixed changing file complete to true only possible if the file has no errors
* fixed clicking show errors for a file where no asociated errors were found showed all errors
2018-06-18 20:31:52 +02:00
Eberhard Graether f11be042a6 build: ship clang compiler header within Sourcetrail package on macOS and Linux
* replace path to local compiler headers with packaged ones in include path detection
* added app settings migration to replace local compiler header path with path to packaged headers
2018-06-18 14:08:50 +02:00