Commit Graph
164 Commits
Author SHA1 Message Date
mlangkabel e3940fdf19 logic: skip project settings migration if version is 0 2018-12-18 13:23:28 +01:00
Eberhard Graether 19190f4e5e logic: Suggest full reindex after changing custom command 2018-12-17 16:33: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 6a6bd0fca8 ui: Show news sent with update check on start screen
* News are passed as JSON string, containing an array of news items.
* Each news item has version and content (html).
* Items can be filtered by min/max version, OS and license. The first item that fits is used.
* Items can be important, which highlights the news box.
* News are not shown if older than 5 days.

fortune cookie message = You will be financially successful in case your actions are well planned.
2018-10-21 13:49:06 +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 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 f715e5c99e logic: only prefill application settings once 2018-07-24 11:55:44 +02:00
mlangkabel 6bbb44309d logic: added support for Java 10
* updated java indexed and dependencies to support java 10
* added java indexer test for java 10 "var" support
2018-07-10 11:26:51 +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
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 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
mlangkabel b6588cd6ba logic: added exclude filters for cbp sourcegroups 2018-06-15 18:33:04 +02:00
mlangkabel c65a5d04b1 logic: cleaned up code for SourceGroupSettings and Wizzard
* Flattened sourcegroupsettings class hierarchy by moving cross compilation options to own base class
* QtProjectWizzardContentFlags constructor required correct settings object to reduce the need for type casting
* QtProjectWizzardContentPath constructors required correct settings objects
* moved SourcePaths from SourceGroupSettingsJava to SourceGroupSettingsJavaEmpty because they are not required for Gradle and Maven projects
* removed classpath from maven and gradle source group settings
* reuse code of SourceGroup for "show source files" in wizard
2018-06-12 21:16:51 +02:00
Eberhard Graether 1a37a9af34 src: miscellaneous fixes
* fixed code view snippet minimize click expanded snippet again
* fixed typedef nodes node grouped within file group
* fixed splitting anonymous namespace bundle increased group nesting instead
* fixed build, tests and clang warnings
2018-06-08 16:12:53 +02:00
mlangkabel 704808b26f logic: added C/C++ project setup from Code::Blocks
* also changed xml elements in sourcegroup settings that specify the used language standard, so that one sourcegroup can maintain multiple language standards
* added migration and migrated sample projects
2018-06-08 12:10:38 +02:00
mlangkabel 7b735cfd17 logic: added project setup support for Sonargraph projects (Java and CMake-JSON modules supported)
* added classes for loading a Sonargraph project
* added Sonargraph options to project setup wizard
* added test for generating indexer commands from Sonargraph modules
* fixed sqlite storage crashing in constructor when parent directory of provided path does not exist
* removed unused FileRegister from Java indexing
* removed unused info from IndexerCommandJava
* refactored loading and saving of SourceGroupSettings
* extracted sourcepaths settings to own class that can be re-used
* merged CDB wizard contentents for source file and indexed paths
* unified wizard content for sonargraph project path
* removed include filters from default source groups
* extracted generation of RefreshInfo from Project to RefreshInfoGenerator
* added tests for RefreshInfoGenerator
* added language and standard selection to sonargraph project setup
* added auto-detection for indexed header paths of sonargraph cmake json modules
* Sonargraph::Project can enable/disable support for specific modules
* warn if sonargraph project contains no matching modules
* indexed headers can be detected from sonargraph project
2018-05-18 16:07:57 +02:00
mlangkabel e1df15a7b9 ui: disable re-pre-filling of indexed header paths for compilation database sourcegroups (issue #579)
* disable re-pre-filling of indexed header paths if these are empty when showing settings of a cdb sourgroup
* fixed indexed header path were not regarded when deciding if project settings have been updated
2018-05-08 11:13:10 +02:00
mlangkabel a7ef02459a logic: fixed indexed header paths for compilation database project screw up the processing order of includes (issue #571)
* prevented indexed header paths for CDB to be appended to compile command
* fixed exists check for relative paths in QtSelectPathsDialog
* indexed header paths will automatically be updated when a new compilation database is picked
2018-04-27 17:51:03 +02:00
mlangkabel 648caa9c35 logic: fixed bug where adding an empty include path excludes everything 2018-04-10 15:52:02 +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 42ed53e71e src: Fixed clang warnings 2018-04-03 17:34:43 +02:00
Eberhard Graether 166d82b44f ui: made icon buttons self updating on color scheme change
* fixed hatching not replaced in single file view title bar on color scheme change
2018-03-19 22:44:45 +01:00
mlangkabel 6acfe0688f logic: implemented usage of FilePathFilters for excluded paths
* removed check in settings for existing paths of exclude filters
2018-03-12 08:51:38 +01:00
mlangkabel 42342c5c5f logic: use colorscheme name instead of path in appsettings
* With respect to a portable app package this makes sense ;)
2018-02-23 19:25:19 +01:00
mlangkabel b2bad8ab05 logic: fixed handling non-ascii characters in cdb path and in cdb filename and command 2018-02-13 16:10:10 +01:00
mlangkabel e31624a4b7 src: switched to use only wstring for FilePath::filename and FilePath::extension 2018-02-09 17:04:17 +01:00
mlangkabel 333fc7eea2 logic: switched to using wstring for compiler flags
* removed getter for strings from QtDirectoryListBox because it is not used anymore
* regard encoding of clang error messages
2018-02-09 13:37:30 +01:00
mlangkabel f0b817eb0a src: broad refactoring to use FilePath.wstr() where easily possible 2018-02-06 11:35:36 +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 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
Eberhard Graether 43c223368c ui: Change screen scaling on Linux (issue #518, #523)
* Set environment variables QT_AUTO_SCREEN_SCALE_FACTOR and QT_SCALE_FACTOR on Linux on app start
* Added ScreenAutoScaling and ScreenScaleFactor to ApplicationSettings with dropdown boxes in the preferences
  only visible on Linux
* Removed QtFontPicker and QtTextEncodingPicker
* Moved logging into preferences category "output"

fortune cookie message = You will have a peace of mind when you talk to an old friend
2018-01-16 11:01:32 +01:00
mlangkabel 68e86ad41a logic: removed "unknown" source group status type
* removed "unknown" source group status type and implemented falling back to
  "disabled", because "unknown" should not be handled anywhere in the rest of
  the code base.
2018-01-16 09:15:30 +01:00
mlangkabel cad064b9da logic: implemented disabling of source groups
* added source group status (enabled/disabled)
* fixed bug where the removal of an indexed directory has not affected the files to clear
* added lots of const and override keywords in SourceGroupSettings
2018-01-15 14:39:15 +01:00
mlangkabel 8b21d57750 src: implemented move constructor/assignment for filepath
* improves indexing performance by roughly 5%
* switched to use uniqu_ptr for boost path to get rid of including boost in header
* added different methods to change the current FilePath or to make a copy and change that one
* used these methods appropriately throughout the code base
* removed exists() method from FileSystem because it is already contained in FilePath
* added const in some places
2017-12-23 10:28:25 +01:00
mlangkabel 455c1230b1 logic: fixed bug where anonymous symbols were only partly named like the enclosing typedef
* removed post processing for anonymous typedefs. The storage transformation did not work in
  cases where the typedef is recorded in a previously indexed header. No type information
  was recorded while indexing the header a second time. But this type information would have
  been required by the transformation.
2017-12-21 19:36:16 +01:00
Eberhard Graether 9e7e9176cb ui: Added option to show/hide referenced builtin types in graph, default is hide (issue #409) 2017-11-26 01:25:58 +01:00
mlangkabel 90e17c5868 src: converted NodeType to a class
NodeType internally still uses the Type enum
2017-11-23 17:05:15 +01:00
Eberhard Graether 84da941fa4 ui: removed temporary C/C++ standards 2017-11-09 14:11:42 +01:00
Eberhard Graether dc16b3f45b ui: Explain differences of errors and how to fix them (issue #501)
* added help button next to filters in error table
* added menu action Help -> Fixing Errors
* added help button on indexing dialog
* show help message after first time indexing with errors, if not seen already
2017-11-09 12:01:33 +01:00
Eberhard Graether fe4a921836 ui: Added new clang 5.0.0 language standards to project setup dropdown box 2017-11-08 22:26:33 +01:00
mlangkabel 6fad9eea84 logic: added all previous java version to Java language standard selection 2017-11-06 18:49:29 +01:00
mlangkabel f027b94dd4 ui: added setting for text encoding to preferences (issue #500)
* also fixed offset of source locations behind multibyte characters
2017-11-02 12:40:50 +01:00
Eberhard Graether 8e908c2a78 logic: Added Non-Commercial Use option and removed trial mode
* Added non-commercial use option to enter license window
* Show enter license window on first start and force license selection
* Added ApplicationSettings migration that removed private/academic license and switches user to non-commercial mode
* Added commandline option to choose non-commercial use and provide better hints to license selection
* Removed trial mode

fortune cookie message = A secret admirer will soon send you a sign of affection.
2017-10-19 16:58:47 +02:00
Eberhard Graether 43f492cded logic: Fixed update check still displaying new version after using new version 2017-10-12 10:16:42 +02:00
mlangkabel f0da5b630b ui: implemented prefilling indexed header paths for compilation database projects
* fixed header path detection in CompilationDatabase class
2017-10-11 17:08:13 +02:00
Eberhard Graether 85ab7d1e96 logic: Moved update check setting to preferences and enable automatic update check by default 2017-10-11 13:39:00 +02:00
mlangkabel e604d24c40 logic: added Gradle project setup (issue #379)
* added implementation for Gradle project setup (icon is still missing)
* refactored project loading/saving and SourceGroupSettings
* removed long deprecated Cxx UseSourcePathsForHeaderSearch option

fortune cookie message = There is true and sincere friendship between you and your friends.
2017-10-02 18:43:59 +02:00
Eberhard Graether fc87d2e1aa ui: Added "Skip this Version" option to update dialog 2017-09-05 23:26:34 +02:00
Eberhard Graether 855f0cbbbf ui: improved comment contrast in color schemes
* fixed clang warnings
2017-08-11 12:22:33 +02:00