Commit Graph
227 Commits
Author SHA1 Message Date
miltolstoyandGitHub 8990eb320d logic: add menu action for graph 'save as image' (issue #426) (#1104) 2020-11-18 16:19:27 +01:00
Eberhard GrätherandGitHub 3950da7999 src: Rename aggregation edge to bundled edges (#1051)
The term aggregation is misleading. Bundled edges is a better definition for this type of edge.

closes #962
2020-06-29 19:41:12 +02:00
Louis St-AmourandGitHub 224c89182a src: Apply clang-format and extend use to Java code (#973) 2020-04-19 14:11:48 +02:00
Eberhard GrätherandGitHub 38925292b7 ui: Iterate code references within the same line when holding Shift (#936) 2020-03-05 15:41:17 +01:00
Eberhard GrätherandGitHub b0616778f3 ui: Keyboard controls (#935)
* switch focus between views with Tab
* move focus within views with WASD/HJKL/Arrows
* move focus between graph edges by holding Shift
* move focus between code references by holding Shift
* removed graph panning with WASD and moved zooming to Alt + W/S
* removed graph navigation by pressing starting character in graph view lists
* changed local reference and custom trail shortcuts
* updated Keyboard Shortcuts window
* use common back and forward shortcuts and YZ & Shift + YZ
* fix macOS issue where widgets don't get proper focus after creating a new tab
* don't use shared_ptr in QtMainView

fixes #486, #327, #214, #210
2020-03-02 14:48:03 +01:00
Malte LangkabelandGitHub 437f06d21b src: extract NoteType::Type to NodeKind (#925) 2020-02-14 20:35:02 +01:00
Eberhard GrätherandGitHub 08f43173c0 ui: Refresh UI state only after every style refresh in each view finished (#917)
Separated UI refresh into 'style' and 'state' refresh to avoid race condition between task scheduler thread and UI thread that affected code view state.
fixes #916
2020-02-11 01:19:44 +01:00
Malte LangkabelandGitHub fa6dd6c9e1 logic: improve usability of shallow indexing ui (#823)
* added "--shallow" command line option to request shallow indexing
* modified behavior of Sourcetrail to always perform a deep index if not explicitly specified differently by the user
2019-12-03 18:26:02 +01:00
mlangkabel 078feca004 src: applied clang-format 2019-11-18 17:07:20 +01:00
Eberhard Graether 9281c237a7 ui: Refactored code component to handle all state changes in controller 2019-11-08 16:20:43 +01:00
Eberhard Graether 74a61e0402 src: Refactored MessageActivationBase handling into single ActivationListener
* structured message type directory
2019-10-18 13:05:27 +02:00
mlangkabelandEberhard Graether 6b692ff0e9 ui: add menu entry to close the current project (issue #722) 2019-10-18 13:05:27 +02:00
Eberhard Graether 5f91f48844 logic: Show overview instead of empty error screen after all indexing errors were fixed 2019-08-05 14:33:14 +02:00
Eberhard Graether 68c9782e33 ui: Added custom trail dialog (issue #249)
* open custom trail dialg via button in top of trail controls
* search from symbol to symbol or all referenced/referencing of symbol
* define search depth with slider
* define horizontal/vertical layout
* define node and edge types
* renamed depth graph to trail in graph ui
* added custom trail UI tests

fortune cookie message = A happy surprise is waiting for you.
2019-07-29 11:25:34 +02:00
mlangkabel bdb4c78399 logic: implemented Python post processing to add ambiguous edges for unsolved symbols 2019-05-07 14:17:59 +02:00
Eberhard Graether a00cdc18ca ui: Added "Show Definition in IDE" action to graph context menu for nodes (issue #687) 2019-04-23 13:15:56 +02:00
Eberhard Graether b02064a160 license: Implemented new license format
* Implemented new format splitting user, version, and usage period into separate lines
* Refactored all classes: License, LicenseGenerator, LicenseChecker
* Removed redundant license check hash from ApplicationSettings, don't generate, store and check it anymore
* Moved license checking and encoding logic to LicenseChecker
* Moved default for license generation to main.cpp
* Refactored license checking logic in whole app, removed involved message types
* Added LicenseCheckerTestSuite for checking all legacy and current license types
* Generate new license type lifelong
2019-03-18 14:49:52 +01:00
Eberhard Graether 6d5a3c047d logic: Added SourceGroupCustomCommand to use with SourcetrailDB binaries
* Added new Source Group type SourceGroupCustomCommand to UI and ProjectSettings
* The Source Group executes a specified command on every source file
* The variables $SOURCE_PATH, $PROJECT_PATH, $DB_PATH, $STORAGE_VERSION can be passed
* The commands are executed after all other source groups finished indexing
* The command is executed with working directory set to project directory
* Errors during command execution are shown as status update and in the Status View
* SourceGroupCustomCommand cannot be partially cleared, when one file needs clearing the project must be fully re-indexed
2018-12-11 14:05:26 +01:00
Eberhard Graether 267d6b2eb7 logic: Fixed and improved indexing interruption (issue #634)
* Fixed indexing can be interrupted when dialog hidden
* Clear intermediate storages when interrupting
* Abort waiting for less queued storages when indexing interrupted
* Don't index another file when indexing was already interrupted
* Moved indexing interrupted progress dialog to TaskBuildIndex
* Use MessageIndexingInterrupted instead of MessageInterruptTasks
2018-11-23 15:33:20 +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 e2dd26ee5a logic: Split MessageRefresh into index and UI 2018-10-28 12:11:53 +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
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
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
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 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
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
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
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 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
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 0e451fd768 logic: Fixed old ErrorInfos on UndoRedoStack showed non-existing errors 2018-04-10 16:04:24 +02:00
Eberhard Graether 5303187bea ui: Group graph nodes by file or namespace (issues #171, #439, #522)
* added buttons to enable grouping by file or namespace
* last used group settings saved to ApplicationSettings
* made groups hoverable/clickable on label only
* improved node hatching and override edge colors
* group overview lists

fortune cookie message = Seen with the eyes of love, everything gets a new meaning.
2018-04-09 00:09:22 +02:00
Eberhard Graether bbd003f047 logic: Group nodes in inheritance graph who have the same base and derived nodes (issue #459)
* added graph node for grouping nodes with separate sub-layout
* group nodes show name in top left corner
* clicking on single edge activates source locations of all edges
* removed separate setters for token components
* fixed text nodes missing or too many in list layout
* moved simple row and column layouts to ListLayouter
* added skewed layout type to ListLayouter

fortune cookie message = Sometimes you should have the courage and risk something.
2018-03-26 23:57:05 +02:00
Eberhard Graether 66ac70850b ui: Added show errors button to title bar of incomplete files (issue #246)
* Shows all errors within the file and all included files.
2018-03-17 09:16:52 +01:00
mlangkabel a17af20793 src: removed unused string constructor from MessageStatus 2018-02-13 10:26:17 +01:00
Eberhard Graether 9773c30fdc ui: Improved vertical layout for override and inheritance edges 2018-02-07 23:15:55 +01:00
mlangkabel 683b87d0b8 src: use wstring in symbol search 2018-02-06 21:03:54 +01:00
mlangkabel 9da3ac3d3c src: switch to wstring for printing messages 2018-02-06 10:03:46 +01:00
mlangkabel 9e041c1f0a logic: use wstring in symbol and bookmark names
* use wstring in symbol and bookmark names
* fixed setting apppath in windows includes
* regard utf8 encoding in shared indexer commands
* regard utf8 encoding in shared indexer status
2018-02-05 17:17:33 +01:00
mlangkabel c99e79364f logic: more wstring usages
* removed header paths from VS Project setup message since VS doesn't send these anymore
* implemented using wstring in IDE communication
* fixed retrieving filepaths from QtDirectoryListbox that contain special characters
* use wstring for source extensions
* added special character as file extension to FileManagerTestSuite
2018-01-30 17:07:51 +01:00
mlangkabel ce72797ce2 src: Move string conversion from lib_gui to lib and use boost instead of Qt 2018-01-30 13:14:07 +01:00
mlangkabel 0dda63f7ae logic: used wstring in FilePath constructor
* used wstring in FilePath constructor where easily possible
* added FilePath concatenate method that accepts string parameter
* implemented using only wstring in MessageStatus
* used wstring in config
2018-01-30 11:00:23 +01:00