1. 28 Mar, 2020 2 commits
    • Igor Kushnir's avatar
      Merge branch '5.5' · d183c79c
      Igor Kushnir authored
      d183c79c
    • Igor Kushnir's avatar
      Disable extra context menu in Documentation tool view · 43d73f90
      Igor Kushnir authored
      Right-clicking on a non-home page in Documentation view is supposed to
      show context menu entries defined in KDevelop (only "Copy" most of the
      time). However currently two context menus are shown when KDevelop is
      built with Qt WebEngine: the "Copy" one and on top of it a WebEngine's
      native context menu (with actions like "Back", "Forward", "Reload" or
      "Open link in a new tab", "Save link"). Dismissing the two context menus
      requires two left mouse button clicks, which is surprising and
      inconvenient.
      
      Setting context menu policy to Qt::NoContextMenu in addition to the
      event filter workaround disables the WebEngine's native context menu.
      43d73f90
  2. 27 Mar, 2020 2 commits
  3. 26 Mar, 2020 1 commit
    • David Redondo's avatar
      Allow expansion of custom defined variables inside other variables · 1e4fdcf3
      David Redondo authored
      Currently if a user defined variable is included in another user defined variable
      it is replaced by an empty string. Instead we can replace it with the definition
      value of the definition. Since this is done in a while loop this continues until
      a we hit a fully defined variable, a predefined variable like $PATH or if no
      match is found the replacement is still an empty string. This useful for example
      if a custom runtime  environment is configured  in some PREFIX. Other variables
      like PATH or LD_LIBRARY_PATH can now depend on $PREFIX without needing to type
      the value of $PREFIX multiple times.
      1e4fdcf3
  4. 25 Mar, 2020 4 commits
  5. 22 Mar, 2020 1 commit
    • David Redondo's avatar
      [Documentation] Allow link following between providers · 9f1f63fa
      David Redondo authored
      Introduces a new method `documentation` to the controller and
      IDocumentationProvider. Similiar to `documentationForDeclaration` a provider
      either returns a Documentation if it has a corresponding documentation or a null
      pointer otherwise (providers that don't have a mapping from URLs to
      Documentations like the CMake one always return null). This allows the providers
      to instruct the controller to open  documentation URLs that the User requested
      and are outside their responsibility. Examples for this are links between
      different Qt modules when not using the system documentation  (each file will
      have its own provider) or links from Frameworks documentation to Qt when they
      are installed in different directories.
      9f1f63fa
  6. 20 Mar, 2020 4 commits
    • Milian Wolff's avatar
      Only cache PCH and completion results for files opened in editor · cc5d32e3
      Milian Wolff authored
      When opening large a project, we do not want to cache the PCH for
      all its files. This is only required for currently opened files,
      to speed up querying of code completion results.
      
      For any other files, creating the PCH would just slow down the
      parse process needlessly and also wastes memory when we keep the
      PCH in memory through the temp files in /tmp. Note how we only
      clean the DUChain when the parse job queue is idle. This also means
      we don't detach the AST nodes and thus only discard the attached TUs
      once the overall project parse job has finished.
      cc5d32e3
    • Igor Kushnir's avatar
      Fix a cmake test linker error with Qt 5.9 · 01e9f1b6
      Igor Kushnir authored
      I got the following error while trying to make a full Release build in
      openSUSE Leap 15.1:
      .../bin/ld: test_cmakefileapi.cpp...: undefined reference to `bool QTest::qCompare<QString, char [4]>(...)'
      01e9f1b6
    • Igor Kushnir's avatar
      Fix Ctrl+mouse_scroll zoom of documentation view · 728e952a
      Igor Kushnir authored
      In some Qt version between 5.9 and 5.14 QWebEngineView stopped
      propagating mouse wheel events to its parent, which broke the only GUI
      way to scale documentation view. Users could still set their preferred
      documentation view zoom levels in the KDevelop configuration file.
      
      This fix benefits KDevelop built with Qt WebKit too - Ctrl+mouse_scroll
      not only scaled documentation view, but at the same time scrolled it as
      QWebView ignored the Ctrl modifier key.
      728e952a
    • Igor Kushnir's avatar
  7. 18 Mar, 2020 3 commits
    • David Redondo's avatar
      Merge branch '5.5' · f746d2e5
      David Redondo authored
      f746d2e5
    • David Redondo's avatar
      Fix flickering when loading documentation · 9e4e8a21
      David Redondo authored
      The html inside the qch file has offline-simpel.css set as stylesheet which is
      replaced by offline.css by javascript which causes flickering when changing
      documentatin because the page is rerendered when the stylesheet is changed.
      Simple fix is setting offline.css as the stylesheet from the beginning.
      9e4e8a21
    • David Redondo's avatar
      [Standard Documentation View] Set the correct mime type for job replies · 0d9bc185
      David Redondo authored
      The mime type was always set to text/html resulting in warnings like "Resource
      interpreted as Stylesheet but transferred with MIME type text/html: [...] "
      displayed in attached developer tools. This prevented it from being used
      by webengine resulting in pages without style information. I believe this
      behavior change was introduced with Qt 5.14 since I first saw this after
      upgrading. Also register the qthelp scheme to avoid a similiar situation in the
      future as suggested by the warning "Please register the custom scheme 'qthelp'
      via QWebEngineUrlScheme::registerScheme() before installing the custom scheme
      handler".
      0d9bc185
  8. 10 Mar, 2020 2 commits
  9. 09 Mar, 2020 3 commits
  10. 06 Mar, 2020 2 commits
  11. 05 Mar, 2020 4 commits
  12. 04 Mar, 2020 1 commit
    • Milian Wolff's avatar
      Do not force update when reloading projects · 716ca198
      Milian Wolff authored
      The parse jobs should be smart enough to figure out what needs
      to be reparsed and what not. Most notably, we check whether
      the environment matches the one that was used previously. If it
      differs, the parse job will continue, otherwise it can stop early.
      
      This patch fixes excessive reparsing times when changing a cmake
      file or after manipulating the custom defines/includes for a project.
      716ca198
  13. 03 Mar, 2020 5 commits
  14. 02 Mar, 2020 1 commit
  15. 28 Feb, 2020 2 commits
    • David Redondo's avatar
      Show problem descriptions as inline notes at the end of the line · b1a18c66
      David Redondo authored
      Using KTextEditor's InlineNote interfaces we can show the description of problems at the end of the line. This enables the user to see what's wrong on a glance instead of manual interaction with the problems toolview or moving the mouse to the offending position. Only one problem in each line will be shown in an inline note, but ones with higher severity are shown over ones with lower severity. If the description of a problem doesn't fit in the available with of a line it will get elided. The minimum severity for which an inline note is shown is configurable in language settings where the other options to problem marking are. The default is to show inline notes for warnings and errors.
      b1a18c66
    • David Redondo's avatar
      Bump required KF and Qt versions · 5162c1a4
      David Redondo authored
      Needed for inline note feature of KTextEditor
      5162c1a4
  16. 20 Feb, 2020 3 commits