Commit Graph
1420 Commits
Author SHA1 Message Date
Josh SorefandGitHub 3a75ef0df4 src: correct spelling errors (#1162) 2021-03-14 07:47:26 +01:00
Malte LangkabelandGitHub 804e564c8d update SourcetrailPythonIndexer to version 1.25.6 to fix TextAccess issue (#1159)
* before this update the SourcetrailPythonIndexer was saving indexed code to the database different than Sourcetrail, which could result in crashes
2021-03-09 07:43:27 +01:00
Malte LangkabelandGitHub 220ac82681 data: update Java dependencies to add support for Java 13, 14 and 15 (#1152)
* updated java indexer dependencies
* replaced old gradle tooling jar that is shipped with Sourcetrail because it is not working for new JRE versions anymore
* fixed crash in Java indexer
* added language standard sleection for Java 13, 14 and 15
* fixed console logging for recent jdk versions
2021-02-25 18:28:17 +01:00
Malte LangkabelandGitHub 7cb232af86 remove call to boost::filesystem::canonical when preparing indexer (issue #1149) (#1151)
boost::filesystem::canonical causes issues on Windows and will throw an exception if path is too long. Now those paths will be ignored by the indexer because boost::filesystem::exists returns false.
2021-02-25 07:38:01 +01:00
Toni DietzeandGitHub 7d344fb08e logic: fix multi-level inheritance edges when there are diamonds (#1142)
The old implementation produces several multi-inheritance edges between
two classes if there are multiple inheritance paths between them due to
multiple inheritance diamonds. The new implementation produces only one
edge in such a case.

Also, the old implementation has performance issues when there is a huge
number of inheritance paths starting at the focused class. With a
pathological multiple inheritance class structure, the number of paths
can be exponential in the number of involved classes. The new
implementation solves this issue by considering subgraphs instead of
paths.

The following is a small problematic example, which does not show the
performance problem due to its small size. However, when focusing on
X::foo, the old implementation produces 4 different multi-level
inheritance edges from X to B1 while the new implementation produces
only one multi-level inheritance edge, which is basically the union of
the edges of the old implementation:

    struct B1 {
    	virtual void foo() = 0;
    };
    struct C1 : B1 {};
    struct D1 : B1 {};
    struct B2 : C1, D1 {};
    struct C2 : B2 {};
    struct D2 : B2 {};
    struct B3 : C2, D2 {};

    struct X : B3 {
    	void foo() override {};
    };

    int main () {
    	X x;
    	x.foo();
    	return 0;
    }
2021-02-23 23:04:18 +01:00
Malte LangkabelandGitHub 4b922ed103 src: specify if file or directory path is returned by helpers (#1146) 2021-02-22 21:55:30 +01:00
Malte LangkabelandGitHub 3c1638da25 src: switch from Qt to boost implementation of executeProcess (#1145)
* changed implementation of executeProcess
* unified all different implementations of executeProcess
* separated arg list from command for all calls of executeProcess (this also required to remove quotes that were added to path args because otherwise the Python indexer would mistake absolute paths for relative paths.)
* update expected output for custom command tests
2021-02-22 16:00:32 +01:00
Malte LangkabelandGitHub a4e0296471 src: revert migration of QProcess::start() to QStringList (#1136)
* Revert "src: Migrate QProcess::start() to QStringList (#1107)"

This reverts commit 8b8c186697.

* Revert "fix escaping in mvn path detector (necessary after 8b8c1866)"

This reverts commit fcd2f33304.
2021-02-08 11:20:02 +01:00
miltolstoyandGitHub 8990eb320d logic: add menu action for graph 'save as image' (issue #426) (#1104) 2020-11-18 16:19:27 +01:00
Frédéric SimonisandGitHub 8b8c186697 src: Migrate QProcess::start() to QStringList (#1107)
The non-QStringList variant of QProcess::start() was removed in Qt 5.15.
The adapted method handles escaping of the arguments, which simplifies
code in some locations.
2020-11-18 15:45:38 +01:00
miltolstoyandGitHub ad9d8d7930 logic: remember graph zoom level on restart (issue #801) (#1099) 2020-10-23 19:25:44 +02:00
Malte LangkabelandGitHub e946c475c4 Qt 5.12 deprecation fixes (#1003) 2020-08-04 18:13:18 +02: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
Malte LangkabelandGitHub 7008d2abdd logic: fix error recording for multi-threaded custom command indexing (issue #1043) (#1049)
In multi-threaded custom command indexing errors were read from the wrong storage.
2020-06-29 19:25:26 +02:00
miltolstoyandGitHub 0da704eabe logic: save last filepicker location (issue #802) (#1024) 2020-06-08 11:24:38 +02:00
Eberhard GrätherandGitHub ef8b9e0031 src: Improved performance of FilePathFilter (#1030)
* Only retrieve FilePath::wstr once per checked FilePath
* Replaced all invokation of FilePathFilter::isMatching with FilePathFilter::areMatching
* Don't pass match to std::regex_match
* set 'optimize' flag on regexes

partly fixes #1007
2020-05-31 21:34:14 +02:00
Malte LangkabelandGitHub 11563a0f48 build: fix warnings due to empty switch statememts if no language support is built (#1015) 2020-05-15 18:34:02 +02:00
Malte LangkabelandGitHub 8a75946c73 logic: improve logging if exception occurred while loading project (#1004) 2020-05-08 16:09:29 +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
Malte LangkabelandGitHub 54c6f189b1 respect "super()" in python post processing (#964)
if a method call is qualified with "super()" only record edges pointing to the base class of the context of the callee
2020-04-06 20:16:27 +02:00
Eberhard GrätherandGitHub 2924c1c948 logic: Less restrictions for FilePath::isValid check on project location (#959)
Switch from using boost::filesystem::portable_name and boost::filesystem::portable_directory_name to using boost::filesystem::windows_name, which allows periods and spaces in paths.
Fixes #957
2020-04-03 15:27:31 +02:00
Eberhard GrätherandGitHub 0c577f2f69 ui: Refactored recent projects menu (#956)
fixes #848
2020-04-02 12:30:30 +02:00
Malte LangkabelandGitHub f6e8a2125d logic: respect class qualifyer in method call for python post processing (#951)
If the class of a called method is explicitly specified ("Base.__init__()"), only record an ambiguous edge to that method.
2020-03-30 21:24:23 +02:00
Eberhard GrätherandGitHub d13c21f6f3 ui/test: Manual testing fixes (#949)
* Fixed tooltip list items not activated on click
* Fixed crash when clearing focused graph edges after displaying graph with no edges
* Updated and fixed manual graph view tests
* Fixed previous location refocused when activating local symbol
* Fixed crash in graph view after showing empty graph
2020-03-29 23:32:49 +02:00
Eberhard GrätherandGitHub bf6a017720 build: Provide AppImage package for Linux (issue #279) (#945)
* Create AppImage package using linuxdeployqt in Travis CI
* Renamed appPath() to sharedDataPath()
* Fixed include error in tutorial
2020-03-29 17:10:30 +02:00
Eberhard GrätherandGitHub 76562bb8ee ui: Fixes related to focus navigation (#948)
Scroll graph area with Ctrl + Arrows
Moved graph zoom to Ctrl + Shift + Up/Down
Scroll code area with Ctrl + Arrows
Fixed graph showing focus when activating the active symbol
Made links in project description focus-able
Fixed parent graph node not showing focus after hovering edge to child node
2020-03-29 16:01:22 +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
f4b37f9763 logic: Fixing a crash in SharedMemory::ScopedAccess use (#912)
Co-authored-by: Eberhard Gräther <egraether@coati.io>
2020-03-02 12:23:57 +01:00
Malte LangkabelandGitHub 437f06d21b src: extract NoteType::Type to NodeKind (#925) 2020-02-14 20:35:02 +01:00
Malte LangkabelandGitHub a30f47e27f build: Treat warnings as errors (#923)
* squash and rebase andronov-alexey:treat_warnings_as_errors from pull request #850
* fix remaining warnings in java lib
2020-02-14 16:34:04 +01:00
Malte LangkabelandGitHub db95591645 util: Fix FilePath::isValid() and add tests (#908)
* fixed bug that caused FilePath to be invalid for files with extension
* added tests for FilePath::isValid()
fixes #907
2020-02-13 00:29:15 +01:00
Waqar AhmedandGitHub 222e3d578a perf: Fix more clazy qstring-allocation warnings and pass parameters by reference (#910)
* Fix some more clazy-qstring-allocation warnings

* Fix missing refs on large types in lib_gui

* Fix trivially copyable types being passed by ref in lib_gui
2020-02-12 22:13:36 +01:00
Timothee "TTimo" BessetandGitHub 71ef2f31a1 util: Making FilePath::exists noexcept so the noexcept version of boost::filesystem::exists is used (#919) 2020-02-12 16:53:39 +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
Eberhard GrätherandGitHub 9fc0a05c3b ui: Fixes in Source Group UI (issue #723) (#915)
* fixed Source Group setup from Visual Studio Extension
* fixed crashes in project setup due to use of std::shared_ptr
* fixed source file count not updated on 'show files' click
* fixed passing wheel events to parents when list boxes can't handle them
2020-02-10 23:45:31 +01:00
Eberhard GrätherandGitHub 260f1227bc Removed multiple dialog steps in Source Group setup (issue #723) (#913)
* removed QtSourceGroupWizard, QtSourceGroupWizardPage and context types
* removed isInForm flag of QtProjectWizardContent
* added check of empty source paths
* set project window as parent for message boxes, so they don't get hidden behind main window
* fixed issues when removing and duplicating source groups
* updated project setup tests to no steps
2020-02-10 20:00:36 +01:00
Malte LangkabelandGitHub 7f9f098c70 logic: handled case when selected project location can not be written (issue #735) (#906) 2020-02-04 20:24:59 +01:00
Eberhard Graether 6662a8c41c src: Hotfix for issue #907 2020-02-03 18:08:11 +01:00
Malte LangkabelandGitHub 3a6beb76fc ui: fixed error help dialog not showing up during indexing (issue #740) (#904) 2020-02-03 15:45:09 +01:00
Waqar AhmedandGitHub f7923ebd75 logic: Allow changing the log file path in preferences (issue #156) (#900) 2020-02-03 10:54:52 +01:00
technateNGandGitHub 9d26104d2f perf: PersistentStorage::getGraphForAll - avoiding second sqlite call. (#890)
* perf: PersistentStorage::getGraphForAll - avoiding second sqlite call.

* std::map -> std::unordered_map for m_symbolDefinitionKinds.

* src: Added PersistentStorage::addFileNodeToGraph.

* src: Refactor and Bugfixes in new implementation of getGraphForAll.

* std::map -> std::unordered_map for m_fileNodeIndexed.
* Added PersistentStorage::addNodeToGraph.
2020-01-29 18:30:22 +01:00
Malte LangkabelandGitHub 8cc4aaf6ea logic: fix crash when project directory contains non-latin character (issue #899) (#901)
* added "isValid()" to FilePath
* used "isValid" in check of selected project directory
2020-01-27 21:52:05 +01:00
Eberhard Graether dedbc2eb27 data: Fixed endless recursion on cyclic inheritance edges
Fixed an endless recursion that happenes when the index contains cyclic inheritance relationships,
which might accidentally appear due to name collisions.
2020-01-14 00:14:05 +01:00
technateNGandMalte Langkabel cbf8e3412f perf: Added utilities::caseInsensitiveLess. (#882)
* Added utilities::caseInsensitiveLess to compare two wstring arguments
* Replaced less comparision method in DummyNodeComp.
* Added tests for caseInsensitiveLess.
2020-01-10 07:55:47 +01:00
technateNGandMalte Langkabel 0dcb83403c perf: GetOverviewBundleNodeTypesOrdered to static const variable. (#878) 2020-01-07 12:44:44 +01:00
Malte LangkabelandGitHub 270c8698dc logic: retry pre-filling mandatory empty path settings on startup (#864) 2019-12-29 23:03:37 +01:00
Malte LangkabelandGitHub bc911923d0 logic: improved handling of unloadable source group (#862)
* improve comparison to respect all values
* improved UI to display the source group type
2019-12-22 14:19:51 +01:00
Malte LangkabelandGitHub 11110b6a6f ui: update selectable cxx language standards and cross-compiler flags (issue #835) (#856) 2019-12-16 13:13:05 +01:00
Malte LangkabelandGitHub 3932bb1fb8 logic: allow to specify custom Maven settings.xml file in project settings (issue #794) (#847) 2019-12-11 14:00:20 +01:00