1. 20 Sep, 2017 1 commit
  2. 19 Jul, 2017 2 commits
    • Claus Steuer's avatar
      CMake: Fix "CMake configuration changed on disk" dialog · d105ac82
      Claus Steuer authored
      The dialog is shown when the cmake configuration changes.
      The user can either apply the changes or reject them. To determine the
      decision of the user the return value of the dialog is evaluated.
      This is wrong because the dialog uses custom buttons (see documentation
      of QMessageBox::exec). As a consequence the configuration is never
      applied.
      
      Use QMessageBox::clickedButton to determine the user decision.
      Additionally change the role of the apply button from AcceptRole to
      ApplyRole as this better matches its intention.
      
      Change-Id: I1d2d1fb7186dcc8d789c192c51bb34111eb84ee5
      Task-number: QTCREATORBUG-18292
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      d105ac82
    • Claus Steuer's avatar
      CMake: Do not check for changes if config was changed by the user · 9916c0a7
      Claus Steuer authored
      When the cmake configuration changes, BuildDirManager checks whether
      the new configuration differs from the current configuration.
      In case of differences a dialog is opened and the user must decide if
      the changes shall be applied or rejected.
      When the user changes the cmake configuration in the projects page the
      dialog will open as well. This is unencessary since the user already
      decided to apply the changes.
      
      Let BuildDirManager not check for changes if the configuration was
      changed by the user via the projects page.
      
      Change-Id: I736ee7f4dee99fe707f2931c73b287231b1daa1d
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      9916c0a7
  3. 23 Jun, 2017 1 commit
  4. 21 Jun, 2017 1 commit
  5. 20 Jun, 2017 1 commit
    • Tobias Hunger's avatar
      CMake: Avoid duplicate build targets · e42f3db9
      Tobias Hunger authored
      Make sure that build targets that get added explicitly are never reported
      by any of the readers, too. This makes sure entries will not show up twice
      in the UI.
      
      Task-number: QTCREATORBUG-18409
      Change-Id: Id5039add262211fd87cd5c2884df2af0fcf24577
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      e42f3db9
  6. 13 Jun, 2017 1 commit
    • Tobias Hunger's avatar
      CMake: Add "test" target to cmake builds · 460e1d7e
      Tobias Hunger authored
      Always show a test target for cmake projects. This will show even
      if there are no tests in the project. But I think it is more annoying
      *not* to be able to run tests via the locator when tests are available
      than getting an error message when attempting that with a project that
      does not have tests.
      
      Task-number: QTCREATORBUG-18323
      Change-Id: Iba85aa868cb9bfe6c3f44a7ffff620d081d3082f
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      Reviewed-by: Eike Ziller's avatarEike Ziller <eike.ziller@qt.io>
      460e1d7e
  7. 27 Apr, 2017 1 commit
  8. 27 Mar, 2017 1 commit
    • Tobias Hunger's avatar
      CMake: Break loop in error handling · 3a20cec6
      Tobias Hunger authored
      Block access to the BuildDirManager while one of its errors is
      processed. This prevents more errors being raised as part of
      error handling, which can trigger a loop.
      
      Task-number: QTCREATORBUG-17869
      Change-Id: Ic6f8d9a3c3b4e63f27260c40f27ab09d20b62b3e
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      3a20cec6
  9. 15 Mar, 2017 1 commit
  10. 13 Mar, 2017 2 commits
  11. 10 Mar, 2017 1 commit
  12. 22 Feb, 2017 1 commit
  13. 20 Feb, 2017 1 commit
    • Nikolai Kosjar's avatar
      CppTools/ProjectManagers: Reduce ui blocking when loading projects · 8c90998f
      Nikolai Kosjar authored
      ${AnyProject}::updateCppCodeModel() did two potentially not that cheap
      operations in the ui thread:
       (1) Querying the MimeDatabase for the mime type for the source files of
           the project. In 99.9% of the cases no files need to be read for
           this as the file extension will resolve the type. The expensiveness
           comes from the sheer number of files that can occur.
       (2) Calling compilers with the "(sub)project's compiler command line"
           to determine the macros. While the caches avoid redundant calls,
           the number of the unique compiler calls makes this still a
           ui-freezing experience.
      
      These two operations are moved into a worker thread. For this, the
      expensive compiler calls are encapsulated in thread safe lambdas
      ("runners") in order to keep the "mutexed" data minimal. The original
      API calls of the toolchains are implemented in terms of the runners.
      
      While adapting the project managers, remove also the calls to
      setProjectLanguage(). These are redundant because all of the project
      managers already set a proper value in the constructor. Also, currently
      there is no need (client) to report back detection of C sources in
      project parts. This also keeps CppProjectUpdater simple.
      
      There is still room for improvement:
       * Run the compiler calls in parallel instead of sequence.
       * Ensure that the mime type for a file is determined exactly once.
      
      Change-Id: I2efc4e132ee88e3c8f264012ec8fafe3d86c404f
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      8c90998f
  14. 10 Feb, 2017 1 commit
  15. 09 Feb, 2017 1 commit
  16. 27 Jan, 2017 1 commit
  17. 20 Jan, 2017 1 commit
  18. 19 Jan, 2017 1 commit
  19. 21 Dec, 2016 2 commits
  20. 13 Dec, 2016 1 commit
    • Alexander Drozdov's avatar
      CMake: make project file system tree scanner persistent · dfaf0161
      Alexander Drozdov authored
      Project source tree is a same for all build configurations so it is
      a good idea to keep it persistent between CMake runs, configurations
      switches and so on. It safes a lot of time for big projects.
      
      Move more operations to the scanner thread:
       - Nodes filtering: skip .user files on top level of the project, skip
      well-known extensions and octet-streams: In most cases these are not
      required to be shown in the project tree.
       - Nodes sorting
      
      Fix small memory leak: we have .user in the scanner result. After this
      node filtered out, but is not feed (old code at the
      BuildDirManager::generateProjectTree()). Now .user file skips during scan
      without memory allocation at all.
      
      Allow user manually rescan project tree by call Build -> Rescan project
      tree. It runs CMake and Tree Scanner together: in most cases only CMake
      run requires but time to time (VCS update) full rescan also required.
      
      Change-Id: I4a6e6c897202da557509291c79932dd7751860e5
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      dfaf0161
  21. 05 Dec, 2016 1 commit
  22. 02 Dec, 2016 3 commits
  23. 30 Nov, 2016 1 commit
  24. 14 Nov, 2016 5 commits
  25. 08 Nov, 2016 1 commit
  26. 07 Nov, 2016 1 commit
  27. 04 Nov, 2016 2 commits
  28. 01 Nov, 2016 1 commit
  29. 31 Oct, 2016 2 commits