ChangeLog for kdevelop v4.1.80 ============================== * Milian Wolff: set version to 4.1.80, expect kdevplatform 1.1.80 * Milian Wolff: optimize: don't use a slow regular expression + mutex for a simple filter * Milian Wolff: optimize: disable assert for performance reasons * Aleix Pol: Properly reload when a CMakeLists.txt file has been deleted from the FS. If the CMakeLists.txt wasn't found, cleanup the directory. * Aleix Pol: Also watch non-cmake directory changes. * Aleix Pol: When CMakeManager::createFolder is called, create it anyway, even if the wizard doesn't proceed. * Aleix Pol: Properly store the cached variables doc string. * Aleix Pol: Properly store the cached variables doc string. * Aleix Pol: When reloading the project the cache will be read anyway, no need to do so 2 times. * Aleix Pol: Read the CMake cache when initializing the project, otherwise it was being deleted and one couldn't retrieve its information. * Aleix Pol: Don't show the line number in the cmake cache view. It was useless, ugly and misleading (when filtering is on). * Aleix Pol: Properly detect selection changes on the cmakecache view in the cmake preferences. Makes it possible to have correct comments when navigating using the keyboard arrows. * Aleix Pol: Small coding style change. * Aleix Pol: When checking if a directory exists, check that it's not a root's parent. CMake returns false in that case. * Milian Wolff: backport from master: optimize: remove existing entries from the list and don't call potentially slow hasFileOrfolder over and over again on them * Milian Wolff: optimize: remove existing entries from the list and don't call potentially slow hasFileOrfolder over and over again on them * Dmitry Risenberg: Show an error message when CMake cache data cannot be written on disk. This may happen after 'sudo make install' or something like that. Do not run 'configure' if writing failed. * David Nolden: Work towards useful argument-hints in automatic completion mode. * David Nolden: Never do the same automatic "." -> "->" or opposite correction twice in the same place. This could be very annoying. * David Nolden: Use a MovingRange to manage the range that should be removed. This fixes some problems when an additional suffix like "::" is added later. * Benjamin Port: Man page plugin, correct a section identifier problem * Benjamin Port: Remove a compilation error * Benjamin Port: Prioritize section (Man Page plugin) * David Nolden: When overwriting a tail during code completion, do it in a separate editing step. Now the user can push CTRL+Z to get the overwritten tail back. * Benjamin Port: Man Page plugin : Remove duplicate entry when perform a search * Milian Wolff: small code cleanup * Milian Wolff: optimize: don't protect static getter with mutex, instead set it up in a controlled fashion * Aleix Pol: Properly add relative globs. BUG: 259099 CCBUG: 259135 * Aleix Pol: Backport from master. Don't add unused stuff in the cmake project tree. * David Faure: Fix QHash debugging. * David Faure: Fix error on printing an empty QHash in gdb; which also fixes the first node from being skipped for non-empty hashes. * David Faure: This is inside QHashPrinter, so surely this meant to be QHash<>. * Milian Wolff: don't crash/assert on empty include directives * David Nolden: If the process hasn't been killed yet, kill it during destruction. This fixes an easily reproducible assertion (added with last change here) when using the "Stop" button on the toolbar while building a custom makefile project. * Benjamin Port: Remove a test on a String (Man Page) * Benjamin Port: Continu Man Page documentation loading, even if a section was not loaded * Benjamin Port: Man Page Documentation, move progressBar to the widget * Benjamin Port: Correct an issue when man page section is more than one character * Aleix Pol: Add support for CMAKE_MATCH_* variable. * Aleix Pol: Remove useless code. * Aleix Pol: Add support for VERSION_* commands. * Aleix Pol: Don't add files that don't have a representation on the project. * Milian Wolff: cleanup code * Milian Wolff: don't try to give man documentation for non-C++ language declarations * Aleix Pol: Always check if the current item to retrieve the builddir from is a folder. * David nolden: Rely on the base class for some standard functionality * Yuri Chornoivan: typo: Manuel->Manual * David nolden: - Always cache the name of completion-items in the "alternativeText" member, so at least the text can still properly be returned when the declaration disappears. - When executing a completion item with a disappeared declaration, at least insert the stored name. - Copy in about 40 lines of code from the kdevplatform base class. This split was non-logical and random (purely based on code similarity), and also lead to twice as many duchain locks as required for code completion. Now the base class function is not called any more from here. BUG: 257740 * Nicolás Alvarez: Add i18n context to strings in C++ code completion. * Benjamin Port: Remove translation (Man Page plugin) * Benjamin Port: Remove an unused method in Man Page Plugin * Benjamin Port: Correct history navigation (ManPage plugin) * Milian Wolff: Fix C++ preprocessor implementation to work according to the standard * Benjamin Port: Correct a crash on exit (Man Page Doc Plugin) * Milian Wolff: lock duchain before calling TypeUtils::removeConstants, prevents assert in enumerator->declaration() call * Milian Wolff: --debug * Benjamin Port: Correct QStackedWidget usage in the Man Page Documentation Plugin * Milian Wolff: --debug * Yannick Motta: Man Page Plugin : characters encoding Manage UTF-8 encoding from man pages * David Nolden: Enable ADL for operators for now, so that all tests pass. * David Nolden: Fix the performance of ADL: - Don't do ADL in situations where it's not required (for example when looking up members) - Do ADL much more efficiently, by omitting expensive conversions and duchain-searches where possible - Slightly refactor, moving more of the ADL logic into the OverloadResolutionHelper class * David Nolden: Add some copyright notices * Aleix Pol: Don't show the whole tree when partially importing a cmake project. * Aleix Pol: Major refactoring on the CMakeManager way to store collected information per project. * Aleix Pol: Pass CacheValues to the CMakeCondition structure. Fixes crash while running the test. * Yannick Motta: Man Page Plugin : documentation panel Use an QStackedWidget instead of two separate widgets for TreeView and ProgressBar * Yannick Motta: Man Page plugin : progess bar Delete some memory leaks and minors tweaks * Yannick Motta: Man page plugin: constraint links management into man page at man protocol only others protocols are disabled * Yannick Motta: Man Page plugin: Add management of links into man page * Yannick Motta: Man page plugin: Add progress bar on indexing man pages * Burkhard Lück: fix wrong usage of translation context in ui file messages to make the translated strings visible either use foo or foo * Yannick Motta: Man page plugin: Add signals on parsing steps * Frederik Schwarzer: another typo * Frederik Schwarzer: typo * Benjamin Port: ManPage documentation, allow user to access documentation from context * Benjamin Port: Allow search from identifier with man documentation * Yannick Motta: Man page plugin : *Add missing parenthesis * Yannick Motta: Man Page plugin : Replace section name with completes ones * Milian Wolff: wait for finished after killing process, prevents Qt warnings about process still running while it gets deleted * Milian Wolff: don't try ADL overload resolution for constructors * Benjamin Port: Optimize treeview rendering (change model container) * Milian Wolff: when using parallel builds, make install with kdesudo uses a command string like: kdesudo -t -c make -j4 install * Yannick Motta: Man documentation : Remove useless calls to TransferJob * Benjamin Port: Set index data for man documentation * Benjamin Port: Load section in asynchronous mode * Benjamin Port: Optimize Man Page plugin * Benjamin Port: Implement man page display on tree view item click * Benjamin Port: Add man page to man plugin tree * Benjamin Port: Set man section name to treeview * Yannick Motta: Add parser to generate documentation tree * David nolden: Add TODOs for performance speedups * David nolden: Use tokenizeFromByteArray instead of convertFromByteArray, so that also comments are tokenized, and the whole text is pre-tokenized. * David nolden: Keep a list of all entered directories, and if the file doesn't exist in the last one, iterate through the previous ones until the file is found. This somewhat works around the problem that KDevelop sometimes couldn't jump to the correct file when multiple parsing-jobs were used, since another directory was entered already. * ben2367: rename the called slot (doucmentation to documentation) * David nolden: - Do not use "error" as the standard item-type for unrecognizeed make output like "note:". Now "note:" lines are highlighted correctly in simple black, and not in red. - When there are errors in the make output, make the shortcuts cycle between those errors, and ignore possible warnings. Errors simply have a higher priority, and nobody cares about warnings as long as there are errors. * Yannick Motta: Add TransferJob to get man documentation from kioslave man * Olivier JG: Change assistants to use tooltips for verbose information and give them a shorter desc. * David nolden: Fix compilation * David nolden: modify comment (dummy commit) * David nolden: Fix severe efficiency problems in the todo-detector of the comment formatter. * Milian Wolff: adapt to changes in kdevplatform, extend testcase * ben2367: Change QtHelp plugin string * ben2367: Correct a bug when modify entry in QtHelp * ben2367: Use qtlogo instead of kdevelop logo for QtHelp KCM * ben2367: Replace QDir::NoDotAndDotDot by QDir::Files * Kevin Ottens: Don't use the deprecated setPath. * Kevin Ottens: No need to link on the deprecated kutils. * ben2367: Fix QtHelp code * ben2367: Fix QtHelp doc can be loaded once (controller) * ben2367: Fix each QtHelp doc can be added once (ui) * ben2367: Add unit test to QtHelpPlugin * ben2367: change helper method visibility * ben2367: Use default component data instead of QtHelpFactory component data * ben2367: Correct QtHelpPlugin in order to kept existing provider when config change and still need it * ben2367: Verify if the QtHelp documentation is valid * Niko Sams: fix build: adapt to platform changes * David Nolden: Reach the declaration as a DeclarationPointer to the AbstractUseBuilder. This fixes random crashes, especially during massive use-building, like when using "Rename Class". * ben2367: QtHelp plugin don't re create all QtHelpProvider instance when we change config, only the new one * ben2367: don't try to get namespace for dot and dotdot, prevents pesty warning: (thanks to milian) * ben2367: Add tooltip and click message to documentation - QtHelp KCM * ben2367: remove kdebug * ben2367: Add text to button in the QtHelp config module * ben2367: Remove KCM for QtHelp plugin from project configuration * ben2367: Solve compilation error (QtHelp Documentation) * ben2367: Update QtHelp plugin with new UI in order to select name and icon for each QtHelpProvider * ben2367: Remove a memory leak, delete provider registered by documentationProviderProvider * ben2367: Use kcmutils instead of kutils * ben2367: Modify KConfig Module for documentation, in order to allow user to import or not Qt Doc * ben2367: Adapt old QtHelpPlugin to autoload QtDoc * ben2367: Refactor QtHelpProvider with QtHelpProviderAbstract in order to create other QtHelpProvider * ben2367: Reload QtHelp documentation at runtime * ben2367: Adapt QtHelpPlugin to IDocumentProviderProvider * ben2367: Rename some files and plugin in order to work * ben2367: Add kcm for qch documentation. View / Save / Load * Milian Wolff: fix Qt warnings * Benjamin Port: Correct loading of documentation man page plugin * Yannick Motta: adding Man Page plugin (unfunctional) * Milian Wolff: opt: make sure we don't try to start assistants over and over again when e.g. setText is called on a document as is done during 'reformat source' * Milian Wolff: try to make running kdevelop instance visible when trying to open a locked session if that fails (i.e. the DBUS call does not work) offer the user a way to remove the lockfile and enforce a start * David Nolden: Don't stop type-resolution if an unresolved type was found somewhere in the template parameters. This makes the duchain a bit more robust.. * David Nolden: Improve contentContextFromProxyContext so that it never returns the wrong content-context, better return zero. This should solve some seldom duchain glitches and even assertions, that could happen when the import structure somehow got screwed up. * David Nolden: Remove some old code * Olivier JG: Fix crash in Rename Assistant when view is deleted. * Eike Hein: Fix FTBFS. * Ciprian Ciubotariu: Marked tests for ADL on class members as XFAIL * Milian Wolff: fix compile (adapt to kdevplatform changes) * Olivier JG: Tweak renameassistant includes, use transformFromLocalRevision for ranges before replacing them with new name. * Milian Wolff: disable DEBUG_UI_LOCKUP by default, if desired enabled it via cmake (BUILD_uiblocktester option) * Olivier JG: Add a rename assistant to CPP support * Ciprian Ciubotariu: Fixed build after rebasing ADL on master * Ciprian Ciubotariu: Removed ADL extra debug statements * Ciprian Ciubotariu: Fixed ADL tests for class member * Ciprian Ciubotariu: Implemented ADL for operators * Ciprian Ciubotariu: Fixed test for member function ADL * Ciprian Ciubotariu: Added tests for member functions and operators * Ciprian Ciubotariu: Implemented ADL by argument function names * Ciprian Ciubotariu: Fixed crash when visitName did not create a problem * Ciprian Ciubotariu: Removed expression tree dump from working tests * Ciprian Ciubotariu: Split test for ADL based on argument name * Ciprian Ciubotariu: Remove missing declaration problem if ADL succeeds * Ciprian Ciubotariu: Fixed ADL on template template args and recursive templates * Ciprian Ciubotariu: Fixed class member tests. Added template template test. * Ciprian Ciubotariu: Implemented ADL with template function arguments * Ciprian Ciubotariu: Added ADL tests for template argument types * Ciprian Ciubotariu: Added debug logging of ADL based on a define * Ciprian Ciubotariu: Fixed ADL through typedefs * Ciprian Ciubotariu: Renamed tests * Ciprian Ciubotariu: Implemented ADL for enumeration types and values * Ciprian Ciubotariu: Fixed tests for function type ADL * Ciprian Ciubotariu: Implemented class type ADL * Ciprian Ciubotariu: Fixed testADLClassTypeLookup test * Ciprian Ciubotariu: Added ADL while building uses for function calls * Ciprian Ciubotariu: Moved from switch to ADLTypeVisitor * Ciprian Ciubotariu: Base implementation of ADL name lookup * Milian Wolff: adapt to kdevplatform changes * Milian Wolff: don't leak temp file on error * Milian Wolff: adapt to kdevplatform changes (IBuildSystemManager is *not* a IProjectFileManager anymore) * Niko Sams: don't call clearCurrentPosition, it's not needed anymore as IDebugSession does that for us when the state changes to not paused * Niko Sams: use kdevplatform signal that has addr now too * David Faure: Make executable the Type=Application .desktop files we install, so that they can be used even from a KDE running in another prefix (http://markmail.org/message/4p3krovtnzwx35zd) * Milian Wolff: use blockSignals to stop the watcher * Milian Wolff: Revert "stop watcher before deleting item, fixes random crashes" * Milian Wolff: stop watcher before deleting item, fixes random crashes * Olivier JG: Support new removeFilesAndFolders() api. Check folders for target files before deleting. * Konstantin Karganov: Added address range control to disassemble widget. * Dmitry Risenberg: TODO reporting in Problem Reporter plugin. * Milian Wolff: optimize: use .at() instead of [] as the former does not detach * Milian Wolff: optimize: no need to call moveBehindComment if we found a last #include, just put include after that * Milian Wolff: fix unit test * Milian Wolff: add testcases for SourceCodeInsertion::firstValidCodeLineBefore * Milian Wolff: break overlong line * Milian Wolff: make autotestshell init code reusable * Milian Wolff: make LockedTopDUContext reusable * Milian Wolff: --includes * Milian Wolff: put reusable ::parse from test_duchain.cpp into helper class * Milian Wolff: fix moveIntoSource - duchain was not locked properly * Milian Wolff: properly read debugger state when adding output widget after debug process was started * Milian Wolff: required ui.rc changes to use our own editor settings action * Konstantin Karganov: Cleaned up setting the positions in debug session. The generic position changing code moved to parent interface. * Milian Wolff: fix compile warning * Milian Wolff: increase UI version * Milian Wolff: move Configure Editor action to Settings menu * Milian Wolff: fix compiler warning * Milian Wolff: comment out no-op code producing compiler warning * Milian Wolff: port away from deprecated serviceOwnerChanged() signal * Konstantin Karganov: Fixed problems in Disassemble Widget implementation and added some new features * Konstantin Karganov: Making debug session to know last execution position. * Vladimir Prus: Make display of non-ascii QString work. * Milian Wolff: remove copyright statement from splash screen * Milian Wolff: rename splash file * Kevin Ottens: Don't use kutils but the more specific kcmutils spin-off. * Vladimir Prus: Make external terminal work for debugging. * Milian Wolff: unbreak cpp-specific quickopen for cases like ./, ~/ and ../ (without anything else) * Vladimir Prus: Fix variable used in name of file to open after project is created. * Andreas Pakulat: Remove undefined function. * Milian Wolff: adapt to kdevplatform changes * Milian Wolff: unbreak session switching - sorry all.... * Milian Wolff: make --session --open-session since the former is used in Qt/KDE already * Milian Wolff: fix -d argument passing * Milian Wolff: cleanup and reorder the command line arguments for KDevelop * Milian Wolff: theoretically make use of external terminal for debugging, but disable it for now as it hangs the UI * Aleix Pol: Forgot to fix that line when merging * David nolden: Make whitespaces in #included headers work properly. CCBUG: 242925 * David nolden: - Fix the preprocessor-test so that it exposes the problem shown in bug 242925 - Fix handle_include so that it can deal with training whitespaces within the paren, like "#include ". The preprocessor adds such a whitespace as a separator in that place, thus this fixes the bug. BUG: 242925 * David nolden: Add some successful tests for macros in include-directives aka "#include MY_MACRO" * David nolden: Remvoe old todo * David nolden: Include the macro in the current line when preprocessing text for the code tooltip * David nolden: Fix apparently twisted condition, that made KDevelop crash instantly on startup when loading any cmake project. Please, don't commit stuff without testing it at least once! CCMAIL: kdevelop-devel@barney.cs.uni-potsdam.de * Aleix Pol: Improve readability for cmake build directory retrieval's code. * Aleix Pol: Properly provide the build directory for items the parents of which are not build folders. * David nolden: Hopefully, finally fix a possible due to read over the end of the document. BUG: 250383 * David nolden: Fix a regression caused by commit b4972c595228167f37fc1fdd18f760d1fb76f8e7, which led to missing highlighting in some files. * David nolden: Only omit updating the duchain if we also already have a highlighting * Jonathan Schmidt-Dominé: CustomMakeManager: Ignore .bzr, .hg and _darcs, too, use QLatin1String for the comparison * David nolden: Potentially prevent hitting the end of the input-stream. CCBUG: 250383 * Milian Wolff: increase plugin versions * Vladimir Prus: Remove "Try setting breakpoints on library loading" checkbox. * David Nolden: Reset the location-table when re-processing a header with its header-guards disabled. This fixes an occassional very annoying code-highlighting problem, where the highlighted ranges were completely messed up. * Andreas Hartmetz: compile: remove #include of apparently removed file. * Milian Wolff: fix codecompletion: we don't have smartranges anymore that update as soon as we insert something anymore * Milian Wolff: don't try to include removed smartconverter.h, now kdevelop:movingranges should build in clean envs * David Nolden: Also build uses for the scope part in definitions of static member-variables, like the "Class" in "int Class::value = 5;" * Milian Wolff: hashedstring got removed, don't try to include it * Milian Wolff: purge rest of smart* dependencies, fix compile (ControllerInterface3 for cpp's code completion models) * Milian Wolff: don't reference remove dumpRanges, MovingRanges are not nested * Milian Wolff: increase version and dependency for what will become kdevelop 4.2 * David Nolden: Allow the user to choose a session through GUI by giving the "-ps" parameter. * David nolden: Remove low-version requirement, as the movingranges branch should work even with newer versions (nearly) * Milian Wolff: fix compile, was merged blindly * Milian Wolff: require kde 4.5.0 * David nolden: Make the renaming of function-definitions that have no separate declaration work. * David Nolden: Release the foreground lock before acquiring the parse-lock, to prevent a possible deadlock. * David Nolden: Make the forwarding of standard-arguments to kdevelop instances opened through the session controller work. * David nolden: Initialize earlier, so that "updatingContentContext" etc. is actually set, and so that we call translateDUChainToRevision. * David nolden: Always update the range of the top-context. * Milian Wolff: fix compile * David nolden: Disable a temporary assertion, as this may happen. * David nolden: Make kdevelop somewhat work after the port * David nolden: Actually use KDevelopApplication, thereby making the foreground lock work * David nolden: Use CursorInRevision and RangeInRevision when referencing cursors/ranges in the duchain parsing document revision, and SimpleCursor/SimpleRange when referencing cursors/ranges in the current document revision. This way mistakes in revision-handling are nearly impossible. * David nolden: Initial port * David nolden: Re-add the foreground lock