1. 15 Dec, 2017 1 commit
    • hjk's avatar
      De-emphasize PluginManager::getObjects<Type>() · cc883023
      hjk authored
      ... by additionally keeping local (currently non-owning) pools per
      "interesting" type.
      
      Current situation:
        - The global object pool does not scale well for looking up
          objects, as iteration plus qobject_cast typically iterates
          over all pooled objects.
        - User code that can use typed results from the object
          pool need to have access to the full type definition anyway,
          i.e.  depend on the plugin of the target class anyway.
      
      The patch here solves the scaling problem is to have local
      type-specific pools to which objects register in their
      constructors and deregister in their destructors.
      
      This patch here does *not* change the ownership model of the
      pooled objects, however, it opens the possibility to change
      the ownership model per type (e.g. by not putting things into
      the global pool at all anymore and make the local pool 'owning')
      and the intent is to handle that in later patchs.
      
      Even without the follow-up patches this here is a performance
      improvement for the cases that access the local pools instead
      the global one, i.e. "practically all".
      
      Change-Id: Ib11a42df2c4ecf5e1155534730083a520dd1995b
      Reviewed-by: Eike Ziller's avatarEike Ziller <eike.ziller@qt.io>
      Reviewed-by: Christian Kandeler's avatarChristian Kandeler <christian.kandeler@qt.io>
      cc883023
  2. 13 Nov, 2017 1 commit
  3. 01 Nov, 2017 1 commit
  4. 19 Oct, 2017 1 commit
  5. 29 Sep, 2017 2 commits
  6. 26 Sep, 2017 1 commit
  7. 19 Sep, 2017 1 commit
  8. 05 Sep, 2017 1 commit
    • Eike Ziller's avatar
      Handle case sensitive file system gracefully with case-insensitive setup · 05485071
      Eike Ziller authored
      If you use a case sensitive file system with a Qt Creator that is set to
      case insensitive file system handling (default on Windows and macOS),
      we still want file change notifications to work as long as you do not
      actually have files that only differ in case.
      
      This requires us to carefully differentiate between the keys that are
      used for comparing files (=> case insensitive), and the paths that are
      registered in the file watcher (=> file path as we get it from the
      user).
      
      Also for the check if a file path is a symlink, we should not check
      equality of the resolved vs unresolved keys, but equality of the
      cleaned, absolute paths (resolved vs unresolved).
      
      Task-number: QTCREATORBUG-17929
      Task-number: QTCREATORBUG-18672
      Task-number: QTCREATORBUG-18678
      Change-Id: I36b8b034880a0c60765a934b3c9e83316c4eb367
      Reviewed-by: Christian Stenger's avatarChristian Stenger <christian.stenger@qt.io>
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      05485071
  9. 03 Mar, 2017 1 commit
  10. 28 Nov, 2016 1 commit
  11. 25 Nov, 2016 1 commit
  12. 15 Nov, 2016 1 commit
  13. 14 Nov, 2016 1 commit
  14. 21 Oct, 2016 2 commits
  15. 17 Oct, 2016 1 commit
  16. 08 Aug, 2016 1 commit
  17. 04 May, 2016 1 commit
  18. 04 Mar, 2016 1 commit
  19. 03 Feb, 2016 1 commit
  20. 19 Jan, 2016 1 commit
  21. 14 Jan, 2016 1 commit
  22. 06 Jul, 2015 1 commit
  23. 15 Jun, 2015 1 commit
  24. 03 Jun, 2015 1 commit
  25. 02 Jun, 2015 2 commits
  26. 16 Mar, 2015 1 commit
  27. 17 Feb, 2015 1 commit
  28. 11 Feb, 2015 1 commit
  29. 06 Feb, 2015 1 commit
    • Orgad Shaneh's avatar
      Core: Remove unneeded qualifications · 428565cb
      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: I5c6690f51488bf8ca3610ba9fb11e6e5fd814aaa
      Reviewed-by: default avatarChristian Kandeler <christian.kandeler@theqtcompany.com>
      Reviewed-by: default avatarhjk <hjk@theqtcompany.com>
      428565cb
  30. 02 Feb, 2015 2 commits
  31. 19 Jan, 2015 2 commits
  32. 16 Jan, 2015 1 commit
  33. 12 Jan, 2015 1 commit
  34. 26 Nov, 2014 1 commit
    • Orgad Shaneh's avatar
      Core: Cosmetics · 7f341580
      Orgad Shaneh authored
      * Remove redundant namespace qualifiers
      * Qt5-ify some signal/slot connections
      * Replace some using Core::Internal with explicit namespace scopes
      
      Change-Id: Id1aae05e2c6fc2992c2716e1f8f9e985c6e56122
      Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
      7f341580
  35. 13 Nov, 2014 1 commit
    • Eike Ziller's avatar
      Fix reloading documents when they are changed fast, multiple times. · 3a8564c1
      Eike Ziller authored
      This can for example happen when doing interactive git rebases.
      
      * When a file was changed after we reloaded it, but before we removed
      +readded the watcher, we wouldn't get a notification for these changes.
      
      * When we got a file changed notification while we were in checkForReload
      (because of event processing of the dialog, or file loading), the
      notification was dropped and only processes when a check was triggered
      again (e.g. at window activation, or when some (other) file changed)
      
      Change-Id: Iab1861a8f05c739a3405bc1afe90ae6f2145057b
      Task-number: QTCREATORBUG-9745
      Reviewed-by: default avatarDaniel Teske <daniel.teske@theqtcompany.com>
      Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
      3a8564c1