Skip to content
Snippets Groups Projects
  1. Mar 24, 2016
  2. Feb 19, 2016
  3. Feb 12, 2016
  4. Jan 19, 2016
  5. Jan 13, 2016
  6. Dec 16, 2015
  7. Dec 15, 2015
  8. Dec 01, 2015
  9. Nov 16, 2015
  10. Nov 09, 2015
  11. Nov 06, 2015
  12. Oct 14, 2015
    • Nikolai Kosjar's avatar
      CppTools: Fix dead lock on project unloading · 77270648
      Nikolai Kosjar authored
      
      ...with the clang code model.
      
      In updateProjectInfo() we lock the project mutex and emit a signal.
      However, the correspondig slot in the clang code model will call back
      into a function that needs to lock the mutex, too:
      
          CppTools::CppModelManager::workingCopy // dead locks here
          CppTools::BaseEditorDocumentParser::InMemoryInfo::InMemoryInfo
          ClangCodeModel::Internal::ClangEditorDocumentProcessor::run
          ClangCodeModel::Internal::ModelManagerSupportClang::unregisterTranslationUnitsWithProjectParts
          ClangCodeModel::Internal::ModelManagerSupportClang::onProjectPartsRemoved
           ...
          CppTools::CppModelManager::projectPartsRemoved
          CppTools::CppModelManager::updateProjectInfo // emits here
      
      Fixed by emitting the signal after releasing the mutex.
      
      Change-Id: Id3f3cd22b0604f343ada56ea13c26f0dc1a75bd6
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      77270648
  13. Oct 12, 2015
    • Nikolai Kosjar's avatar
      CppTools: Make FollowSymbol respect projects · 6b6ad446
      Nikolai Kosjar authored
      
      Finding the class definition for a forward declaration or finding the
      function definition from its declaration is mostly determined by the
      file iteration order. Documents with the most common path prefix are
      checked first.
      
      This works fine as long as the files of your project have a common
      ancestor. If that's not the case, FollowSymbol might take you to the
      definition within another project.
      
      Fix that issue by considering the project part id when constructing the
      file iteration order. Since the cached file iteration order now depends
      on the projects, ensure to clear it if projects are added, changed or
      removed.
      
      Task-number: QTCREATORBUG-15116
      Change-Id: I529166bac363959c9fee0b946747fd0370a88809
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      6b6ad446
    • Nikolai Kosjar's avatar
      CppEditor: Move static symbol finder instance to CppTools · 6ced48ea
      Nikolai Kosjar authored
      
      ...to it can be reused by other clients more easily. Also, in a
      follow-up change it will have a project part dependency that can be
      cleared inside the CppModelManager more easily.
      
      Change-Id: Ic9f2ce5212a94fd05ab0571e9ad99d0a25f5bc5c
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      6ced48ea
  14. Oct 09, 2015
  15. Oct 06, 2015
  16. Aug 31, 2015
  17. Jul 20, 2015
  18. Jul 08, 2015
  19. Jun 24, 2015
  20. Jun 10, 2015
  21. May 13, 2015
  22. Apr 24, 2015
    • Nikolai Kosjar's avatar
      CppTools: Remove separate indexing revision · d4bb5033
      Nikolai Kosjar authored
      
      For indexing we used a custom revision that was updated on each
      modelManager BuiltinIndexingSupport::refreshSourceFiles() call. This
      could lead to rejection of updated documents triggered by refactoring
      actions, like for the following case:
      
       1. Open a project containing a.h and a.cpp
       2. Open a.cpp, insert some new lines, save and close the document
       3. Open a.h and rename a function that is defined in a.cpp
          --> The refactoring action modifies a.h and a.cpp, so re-indexing
              of those is triggered. Since a.cpp has already a higher revision
              (step 2) than the updated document, the updated document is
              discarded. As a consequence find usages and follow symbol fails
              for the renamed function.
      
      Now the document call back provided to CppSourceProcessor is responsible
      for updating the document revision based on the latest revision in the
      global snapshot.
      
      Change-Id: I4dfa0a4d34991655acfa749109f00c47b0fbfdbe
      Reviewed-by: default avatarOrgad Shaneh <orgads@gmail.com>
      Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@theqtcompany.com>
      Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
      d4bb5033
  23. Apr 07, 2015
  24. Mar 05, 2015
  25. Feb 27, 2015
  26. Feb 26, 2015
  27. Feb 20, 2015
  28. Feb 04, 2015
    • Orgad Shaneh's avatar
      C++: Remove unneeded qualifications · 65e7db42
      Orgad Shaneh authored
      
      Mostly done using the following ruby script:
      Dir.glob('**/*.cpp').each { |file|
        next if file =~ %r{src/shared/qbs|/qmljs/}
        s = File.read(file)
        s.scan(/^using namespace (.*);$/) {
          ns = $1
          t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
            before = $1
            char = $2
            if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
              m
            else
              before + char
            end
          }
          if t != s
            puts file
            File.open(file, 'w').write(t)
          end
        }
      }
      
      Change-Id: I6fbe13ddc1485efe95c3156097bf41d90c0febac
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      65e7db42
  29. Jan 16, 2015
  30. Jan 14, 2015
  31. Jan 12, 2015
  32. Dec 19, 2014
  33. Dec 18, 2014
  34. Dec 17, 2014
  35. Dec 15, 2014
  36. Dec 03, 2014
    • Nikolai Kosjar's avatar
      CppTools: Remove QTC_ASSERT in CppModelManager::editorDocument() · 6b894b50
      Nikolai Kosjar authored
      
      This fixes
      
          SOFT ASSERT: "!filePath.isEmpty()" in file
          /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppmodelmanager.cpp,
          line 467
      
      which can be triggered by e.g. a "git show" document
      (onCurrentEditorChanged does not check for an empty file path).
      
      Change-Id: If4ed8e552069b290cb4ac93da52427b7ed2b91e8
      Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
      6b894b50
    • Nikolai Kosjar's avatar
      CppTools: Update document on activation · cb0d1369
      Nikolai Kosjar authored
      
      ...if the project was updated in the meanwhile.
      
      If a project is updated mark invisible editor documents dirty and update
      them if they get focus.
      
      This also fixes document highlighting when restoring a session for
      documents that the user "switched away" before the project info is
      pushed to CppModelManager.
      
      This completes
      
          CppTools: Update visible documents on project update
          commit c2eb91e0
      
      which only takes care of visible documents.
      
      Task-number: QTCREATORBUG-13270
      Change-Id: Id445e7f509deac5d03194aecc54ce4629b7926ce
      Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@theqtcompany.com>
      cb0d1369
  37. Nov 24, 2014
Loading