- 25 Feb, 2019 1 commit
-
-
Script Kiddy authored
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
-
- 21 Feb, 2019 1 commit
-
-
Summary: -if we have a match for a key, no other key can match -match the start of a new line as QByteArray instead of QString, most lines will not match and all keys are plain ASCII, this saves a lot of needless conversions and memory allocations -modify the original line instead of doing a copy, the original one will not be used again anyway. Test Plan: Open and build a CMake-based project. Reviewers: mwolff Reviewed By: mwolff Subscribers: mwolff, apol, kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D18857
-
- 19 Feb, 2019 3 commits
-
-
Kevin Funk authored
Summary: We just show a static themed icon name Reviewers: #kdevelop, kfunk Reviewed By: #kdevelop, kfunk Subscribers: kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D19159
-
Milian Wolff authored
-
Kevin Funk authored
-
- 16 Feb, 2019 2 commits
-
-
René J.V. Bertin authored
Adds a "Reparse the Entire Project" action to the project controller context menu. This makes it possible to trigger a full (re)parse of individual projects without reloading them, or when the option to "schedule all project files for parsing" is turned off. Differential Revision: https://phabricator.kde.org/D11934
-
Script Kiddy authored
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
-
- 15 Feb, 2019 10 commits
-
-
Milian Wolff authored
This mouthful of a class is essentially just a QWidget with a QVBoxLayout which you can add widgets to. The fun comes from implementing the QuickOpenEmbeddedWidgetInterface too, by delegating to the child widgets that got added. Overall, this allows us to navigate via Alt+Arrow keyboard actions between combined widgets, as you'd get when you have both, an error and a declaration at a given cursor declaration.
-
Milian Wolff authored
The AbstractNavigationWidget already supported this, and it was picked up by KTextEditor. But our own quickopen embedded widget interface didn't allow going 'back' via Alt + Backspace yet. This patch fixes this.
-
Milian Wolff authored
-
Milian Wolff authored
We always return instances of this type anyways, so enforce it in the API and simplify the usage code accordingly.
-
Milian Wolff authored
The navigation widget relies on a crude HTML "parser" which counts "lines". Yes. Only '<br/>' is considered a newline, even though due to line wrapping we can have obviously more lines. Well, without rewriting all of that, also count '</p>' as introducing a new line. This allows us to jump to the 'Show documentation' link then. To make this work reliably, we also fixup the generated HTML to be valid and not nest '<p>' tags. Furthermore, we prevent the ugly line indication marker '<->' being shown when we try to down past the last paragraph.
-
Milian Wolff authored
Fixes assertion when trying to navigate in project file quick open navigation widget: #9 0x00007fc05e472c28 in qt_assert(char const*, char const*, int) () from /usr/lib/libQt5Core.so.5 #10 0x00007fc061696c26 in KDevelop::TopDUContext::importedParentContexts (this=0x561284615030) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/topducontext.cpp:1015 #11 0x00007fc0617883cc in KDevelop::pickContextWithData (duchains=..., maxDepth=2, type=@0x561287177ac0: KDevelop::StandardParsingEnvironment, forcePick=true) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractincludenavigationcontext.cpp:60 #12 0x00007fc061788815 in KDevelop::AbstractIncludeNavigationContext::html (this=0x561287177aa0, shorten=false) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractincludenavigationcontext.cpp:90 #13 0x00007fc0617752fb in KDevelop::AbstractNavigationContext::down (this=0x561287177aa0) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractnavigationcontext.cpp:282
-
Milian Wolff authored
This was *only* being used by the project file quickopen feature, and you only saw it when clicking into the quickopen list, or when pressing alt. I doubt anyone ever did that. And it was madness anyways: we decreased the font size in a hacky non-html compliant way which actually made it quite hard to read for me. So the only thing we lose is the project name... which is an acceptable tradeoff. This feature messed up the whole API considerably, removing it makes me very happy. We can bring back the project name in the future by introducing a generic wrapper-widget that supports the QuickOpenEmbeddedWidgetInterface.
-
Milian Wolff authored
These functions never return any non-null string, so just remove them.
-
Milian Wolff authored
We also lost this, thanks to Nicolas for pointing this out!
-
Milian Wolff authored
Fixes test_duchain-clang's testSameFunctionDefinition. My git foo isn't good enough to figure out where this got lost?
-
- 13 Feb, 2019 8 commits
-
-
Milian Wolff authored
This is a workaround for bug 404184, where KDirWatch only emits a 'deleted' signal during a 'git stash' workflow, which never gets paired by a 'created' signal, even though the file actually exists before and after the 'git stash' operation. By delaying the handling of the KDirWatch signals, we won't fall into the trap of removing a file even though it actually exists. Since it doesn't really matter how fast we react on such events, it's in my opinion fine to delay it for a full second. Having a correct state is much more important than having any state fast. Without this patch, KDevelop frequently forgets about files from large projects I work on after a `git stash`. This then fubars the C++ support completely, since it cannot find any include paths and defines anymore.
-
Milian Wolff authored
Reuse the createFile helper, simplify a few places of code and remove the unused exec function.
-
Milian Wolff authored
This is usually less code and has the chance to run faster when the result comes in before our hardcoded previous timeout.
-
Milian Wolff authored
We already cleanup old projects in TestProjectLoad::init
-
Milian Wolff authored
When the QDir listing in the background thread takes a long time, e.g. by artificially introducing a sleep statement therein, then it can happen that the FileManagerListJob gets destroyed before the background task finishes. If that happens, then we used to access the dangling this pointer to access m_aborted or to invoke the handleResults method, both of which are undefined behavior. The latter usually crashes. Prevent this from happening by introducing a mutex that gets locked while we are running a background task and during destruction of the list job. This synchronizes the two tasks and prevents the crash from happening.
-
Milian Wolff authored
When we start loading a project and then directly remove its root folder, we would never get a projectOpened signal since we never fully populated the project. But we will see a projectClosing signal coming in, which would lead to a crash in the ProjectChangesModel, as we would not have created an item for that project yet. Prevent this crash by handling the scenario gracefully.
-
Script Kiddy authored
-
Script Kiddy authored
-
- 11 Feb, 2019 3 commits
-
-
Aleix Pol Gonzalez authored
CCMAIL: daniel@mensinger-ka.de
-
Aleix Pol Gonzalez authored
Summary: Instead of trusting the user to configure it beforehand, make it possible to check which compiler is being used in the build manager and uses it to figure out the initial compilation settings. This includes a QStringList IBSM::findCompiler(item) method to get the path to the used compiler. I wonder if we should be providing the sysroot as well. Test Plan: Been playing around with the androidqt branch that uses docker to implement the SDK instead of just expecting the user to install it himself. Reviewers: #kdevelop, mwolff Reviewed By: #kdevelop, mwolff Subscribers: mschwarz, aaronpuchert, mwolff, kdevelop-devel Differential Revision: https://phabricator.kde.org/D11136
-
René J.V. Bertin authored
As per the documentation this will delete the pointer itself when the QSharedPointer refcount drops to 0 That can happen while the target QProcess instance is still running, and will happen occasionally (on Mac), causing a crash. The ChooseCMakeInterfaceJob instance will be deleted soon after a failed connection attempt so there is no need to clear the server pointer here. BUG: 403644
-
- 10 Feb, 2019 4 commits
-
-
Summary: Rename Qt logging category: common -> debuggercommon The old name was too generic and undescriptive. This resulted in the following confusing lines in KDevelop output: kdevelop.plugins.common: Change session QObject(0x0) kdevelop.plugins.common: Will reparse arch MIDebugger: print a specific process error message Information in the messageboxes is general and sometimes insufficient to understand why the process could not be started. In such cases a warning-level error message can be useful. For example: Debugger ERRORED QProcess::FailedToStart "execvp: Exec format error" Debugger ERRORED QProcess::WriteError "Error writing to process" GdbDebugger: pass correct string in userCommandOutput() When Shell script was not empty, both the shell path and the debugger executable were duplicated in the string sent to userCommandOutput() because they are prepended to arguments in if(!shell.isEmpty()) branch. Test Plan: Run test_gdb, test_gdbprinters, test_lldb and test_lldbformatters. The number of failed and skipped tests did not change with these fixes. Reviewers: mwolff Reviewed By: mwolff Subscribers: mwolff, kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D18325
-
Summary: When typing a number, code-completion is undesirable in my opinion, since most likely no completion item applies and it only distracts, obstructs the view, or is triggered accidentally. Thus, this patch prevents code completion from automatically getting triggered for numbers. It does not cover all cases (code completion will still show something for floating-point numbers that start with a dot, such as .1f) but should cover the most common cases. Manual completion with Ctrl+Space is still possible. Test Plan: Tested manually. Reviewers: #kdevelop, mwolff Reviewed By: #kdevelop, mwolff Subscribers: mwolff, brauch, kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D17915
-
Milian Wolff authored
Summary: Some months earlier, we discussed [[ https://phabricator.kde.org/D15976 | here ]] about `kdevelop-msvc.bat` finding dynamically a VS2017 installation based on registry entries. Although it works on my Dell laptop (Windows 7 Ultimate x64), I haven't tested it anywhere else as I don't have access to another windows machine. So... any takers? Test Plan: In case some user has installed VS in a non-standard location (i.e. not in `C:\Program Files`), the script will be able to find the VS tools by not making the assumption that they are installed on `C:\`. Reviewers: #kdevelop, kfunk, brauch, mwolff Reviewed By: #kdevelop, mwolff Subscribers: mwolff, kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D17908
-
Test Plan: Builds without warning now. Subscribers: kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D18856
-
- 09 Feb, 2019 2 commits
-
-
Friedrich W. H. Kossebau authored
-
Friedrich W. H. Kossebau authored
-
- 08 Feb, 2019 3 commits
-
-
Friedrich W. H. Kossebau authored
GIT_SILENT
-
Kevin Funk authored
-
Summary: Currently many tests fail (at least on FreeBSD) with ASan turned on. This is what happening: - `test_toolviewtoolbar` creates an action, a `ToolDocument` and a `View` in the `init()` function. - `ToolViewAction` registers itself as event filter for the created `View`. - When `cleanup` is called, the controller gets deleted. This causes removal of its children (`QObject::deleteChildren()`), included the mentioned `View`. - Somewhere later during destruction, some `QEvent` arrives and gets passed to `ToolViewAction::eventFilter()`. This function accesses `->widget()` method of `m_dock->view()`, but that `View` is already deleted, which causes ASan error. Note that adding `removeEventFilter()` to `ToolViewAction::~ToolViewAction()` doesn't solve the problem - the event arrival happens before `ToolViewAction` destruction. Full ASan report: ``` ********* Start testing of TestToolViewToolBar ********* Config: Using QtTest library 5.12.0, Qt 5.12.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 6.0.1 (tags/RELEASE_601/final 335540)) PASS : TestToolViewToolBar::initTestCase() ================================================================= ==21936==ERROR: AddressSanitizer: heap-use-after-free on address 0x6030000958a0 at pc 0x000800465e5a bp 0x7fffffffd230 sp 0x7fffffffd228 READ of size 8 at 0x6030000958a0 thread T0 #0 0x800465e59 in QScopedPointer<Sublime::ViewPrivate, QScopedPointerDeleter<Sublime::ViewPrivate> >::operator->() const /usr/local/include/qt5/QtCore/qscopedpointer.h:118:16 #1 0x80046352f in Sublime::View::widget(QWidget*) /home/arr/projects/kdevelop/kdevplatform/sublime/view.cpp:76:10 #2 0x800498c53 in ToolViewAction::eventFilter(QObject*, QEvent*) /home/arr/projects/kdevelop/kdevplatform/sublime/idealbuttonbarwidget.cpp:85:40 #3 0x802027193 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Core.so.5+0x427193) #4 0x80127decb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Widgets.so.5+0x27decb) #5 0x80127f27c in QApplication::notify(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Widgets.so.5+0x27f27c) #6 0x802026ef0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Core.so.5+0x426ef0) #7 0x802051020 in QObjectPrivate::setParent_helper(QObject*) (/usr/local/lib/qt5/libQt5Core.so.5+0x451020) #8 0x802050c11 in QObject::~QObject() (/usr/local/lib/qt5/libQt5Core.so.5+0x450c11) #9 0x801e4762e in QAbstractAnimation::~QAbstractAnimation() (/usr/local/lib/qt5/libQt5Core.so.5+0x24762e) #10 0x801e4cfa4 in QPropertyAnimation::~QPropertyAnimation() (/usr/local/lib/qt5/libQt5Core.so.5+0x24cfa4) #11 0x802051461 in QObject::event(QEvent*) (/usr/local/lib/qt5/libQt5Core.so.5+0x451461) #12 0x80127dee0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Widgets.so.5+0x27dee0) #13 0x80127f27c in QApplication::notify(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Widgets.so.5+0x27f27c) #14 0x802026ef0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/local/lib/qt5/libQt5Core.so.5+0x426ef0) #15 0x802027db8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/local/lib/qt5/libQt5Core.so.5+0x427db8) #16 0x800323331 (/usr/local/lib/qt5/libQt5Test.so.5+0x1e331) #17 0x800323bee (/usr/local/lib/qt5/libQt5Test.so.5+0x1ebee) #18 0x800324988 (/usr/local/lib/qt5/libQt5Test.so.5+0x1f988) #19 0x80032517b in QTest::qRun() (/usr/local/lib/qt5/libQt5Test.so.5+0x2017b) #20 0x800324ef3 in QTest::qExec(QObject*, int, char**) (/usr/local/lib/qt5/libQt5Test.so.5+0x1fef3) #21 0x2b97fb in main /home/arr/projects/kdevelop/kdevplatform/sublime/tests/test_toolviewtoolbar.cpp:144:1 0x6030000958a0 is located 16 bytes inside of 24-byte region [0x603000095890,0x6030000958a8) freed by thread T0 here: #0 0x2b51f2 in operator delete(void*) /usr/src/contrib/compiler-rt/lib/asan/asan_new_delete.cc:149:3 #1 0x800463371 in Sublime::View::~View() /home/arr/projects/kdevelop/kdevplatform/sublime/view.cpp:61:1 #2 0x802050de9 in QObjectPrivate::deleteChildren() (/usr/local/lib/qt5/libQt5Core.so.5+0x450de9) #3 0x802050bf0 in QObject::~QObject() (/usr/local/lib/qt5/libQt5Core.so.5+0x450bf0) #4 0x80041a3be in Sublime::Document::~Document() /home/arr/projects/kdevelop/kdevplatform/sublime/document.cpp:73:21 #5 0x8004626de in Sublime::ToolDocument::~ToolDocument() /home/arr/projects/kdevelop/kdevplatform/sublime/tooldocument.cpp:48:29 #6 0x800462708 in Sublime::ToolDocument::~ToolDocument() /home/arr/projects/kdevelop/kdevplatform/sublime/tooldocument.cpp:48:29 #7 0x802050de9 in QObjectPrivate::deleteChildren() (/usr/local/lib/qt5/libQt5Core.so.5+0x450de9) #8 0x802050bf0 in QObject::~QObject() (/usr/local/lib/qt5/libQt5Core.so.5+0x450bf0) #9 0x800405d9a in Sublime::Controller::~Controller() /home/arr/projects/kdevelop/kdevplatform/sublime/controller.cpp:113:1 #10 0x800405dc8 in Sublime::Controller::~Controller() /home/arr/projects/kdevelop/kdevplatform/sublime/controller.cpp:111:1 #11 0x2b82af in TestToolViewToolBar::cleanup() /home/arr/projects/kdevelop/kdevplatform/sublime/tests/test_toolviewtoolbar.cpp:88:5 #12 0x2bef0c in TestToolViewToolBar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/arr/projects/kdevelop/build/kdevplatform/sublime/tests/test_toolviewtoolbar_autogen/EWIEGA46WW/moc_test_toolviewtoolbar.cpp:85:21 #13 0x8020320ce in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (/usr/local/lib/qt5/libQt5Core.so.5+0x4320ce) #14 0x800323318 (/usr/local/lib/qt5/libQt5Test.so.5+0x1e318) #15 0x800323bee (/usr/local/lib/qt5/libQt5Test.so.5+0x1ebee) #16 0x800324988 (/usr/local/lib/qt5/libQt5Test.so.5+0x1f988) #17 0x80032517b in QTest::qRun() (/usr/local/lib/qt5/libQt5Test.so.5+0x2017b) #18 0x800324ef3 in QTest::qExec(QObject*, int, char**) (/usr/local/lib/qt5/libQt5Test.so.5+0x1fef3) #19 0x2b97fb in main /home/arr/projects/kdevelop/kdevplatform/sublime/tests/test_toolviewtoolbar.cpp:144:1 previously allocated by thread T0 here: #0 0x2b4612 in operator new(unsigned long) /usr/src/contrib/compiler-rt/lib/asan/asan_new_delete.cc:92:3 #1 0x80041b02e in Sublime::Document::newView(Sublime::Document*) /home/arr/projects/kdevelop/kdevplatform/sublime/document.cpp:117:21 #2 0x80041a604 in Sublime::Document::createView() /home/arr/projects/kdevelop/kdevplatform/sublime/document.cpp:82:18 #3 0x2b6eac in TestToolViewToolBar::init() /home/arr/projects/kdevelop/kdevplatform/sublime/tests/test_toolviewtoolbar.cpp:72:22 #4 0x2beefe in TestToolViewToolBar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/arr/projects/kdevelop/build/kdevplatform/sublime/tests/test_toolviewtoolbar_autogen/EWIEGA46WW/moc_test_toolviewtoolbar.cpp:84:21 #5 0x8020320ce in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (/usr/local/lib/qt5/libQt5Core.so.5+0x4320ce) #6 0x80032302d (/usr/local/lib/qt5/libQt5Test.so.5+0x1e02d) #7 0x800323bee (/usr/local/lib/qt5/libQt5Test.so.5+0x1ebee) #8 0x800324988 (/usr/local/lib/qt5/libQt5Test.so.5+0x1f988) #9 0x80032517b in QTest::qRun() (/usr/local/lib/qt5/libQt5Test.so.5+0x2017b) #10 0x800324ef3 in QTest::qExec(QObject*, int, char**) (/usr/local/lib/qt5/libQt5Test.so.5+0x1fef3) #11 0x2b97fb in main /home/arr/projects/kdevelop/kdevplatform/sublime/tests/test_toolviewtoolbar.cpp:144:1 SUMMARY: AddressSanitizer: heap-use-after-free /usr/local/include/qt5/QtCore/qscopedpointer.h:118:16 in QScopedPointer<Sublime::ViewPrivate, QScopedPointerDeleter<Sublime::ViewPrivate> >::operator->() const ==21936==ABORTING ``` Subscribers: kdevelop-devel, #kdevelop Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D18463 (cherry picked from commit fbb955c7)
-
- 07 Feb, 2019 1 commit
-
-
Script Kiddy authored
-
- 06 Feb, 2019 2 commits
-
-
Aleix Pol Gonzalez authored
-
Aleix Pol Gonzalez authored
This allows for a more seamless experience
-