Even though the variables are local, they were exposed as writable
references. Turning those variables into constants and propagating the
constness prevents accidental modifications.
Change-Id: If874ae4995fb95434ad28da6682c980f90666061
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Instead, set the default level of all logs to QtWarningMsg.
The call to setFilterRules overrides the user preferences in qtlogging.ini.
Change-Id: Id5f6cd550d14ff7f45ae04c5d3110e0bafb0f072
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: hjk <hjk@qt.io>
It provides no real additional value and seems to
be more confusing when Qt Creator gets started with
command line options that load disabled or disable
enabled plugins.
Change-Id: I979f9ee95154af11aedd6100717043adc5e1e7a9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
We print a report both before and after a plugin's initialization method
is called, but only the time spent till after the method call should be
counted.
This makes a different for the delayedInitialize cycle: Before
delayedInitialize is called of a plugin, there can be a delay after the
previous one. But this delay should not be counted as part of the
initialization time of the plugin.
Change-Id: I4e5fb53cd83cb36a45a599cfc3f1f8539f6327f9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
QSysInfo::*Version is deprecated, and prettyProductName should
provide better results anyway.
Change-Id: I5de3369e583d8d51b894e74509363cd6be150010
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Private part of PluginSpec is not accessible from plugins.
Change-Id: Id5b8099777b58895b37b5a57c65ecc11a5228143
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Not used anymore inside Qt Creator.
If 3rd party code really relies on this function, it can use the
function locally, or, likely switch to the still supported
getObjectByName or getObject.
Change-Id: I041877b3e0630e6b257055dec5e10baf68c83546
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Since commit cc88302309, access to the
typed lists is cheaper via the local pools, and subsequently all users
of getObjects() have been adapted.
As getObjects() is unused now, and the local pool pattern is preferred,
having the function around is not needed anymore. If the provided
functionality would ever be needed, user code can use allObjects() and
manually filter.
Change-Id: I1e9d8fa11da2ed0e68090cce1a25a3dd62c1aef6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
To be used for the version control revision the plugin was built from.
Invent a QTC_PLUGIN_REVISION replacement string for the plugin .json.in
which can be set by the build process.
Task-number: QTCREATORBUG-19951
Change-Id: Id5fd64b5506383e0b7749bcfd34d178baf8fe7af
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Remove now-unused IPlugin::addAutoReleasedObject and IPlugin::
{add,remove}Object convenience functions that were only forwarding
to the global pool.
Adjust all related tests.
All previous users of these convenience functions are gone, and we do
not want to encourage the use of object pool anymore.
Plugins that wish to share objects to implement weak dependencies
can use the global object pool via ExtensionSystem::PluginManager::
{add,remove}Object directly.
Change-Id: Ic668ad5504af76963f6d4c69ae160438efc70db5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
... 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 <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
... and use it for the profiling report.
Instantiate a Utils::Benchmarker(...) to report a data point (which
will be created at destruction time, reporting the live-time of the
object).
Alternatively you can use Utils::Benchmarker::report(...) to record
your data point.
Independent of how you create a datapoint, it will be reported through
the qtc.benchmark logging category and can get pushed to a database
from a script parsing creator's output.
Note: The plugin-loading uses the existing -profiling infrastructure,
so you need to start Creator with -profile to see data points.
Change-Id: I18e6b84137d0f49ee5e12e7c3d75323005ce5a29
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
"Required" is only the Core plugin, and that should never be disabled.
Fixes the weird issue that running "qtcreator -test WinRt" on
non-Windows platforms failed with "Core plugin is disabled".
Change-Id: Id349f406e4bde876ae5513c75d39b4b4c052b8ba
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Since the disabling of all plugins except tested onces was implemented
as an afterthought, it did not update the indirectly enabled plugins.
Instead, update the list of enabled/disabled plugins in the
optionsparser like for the -(no)load options, and trigger the update of
indirectly enabled plugins afterwards. Also take test dependencies into
account when indirectly enabling plugins directly.
Change-Id: I59d6c05de69a3073576155f7bd6201f1cd44697c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
...by adapting to recent mime type changes:
commit e8e46ab553
Plugins: Fix that mimetype definition was not valid JSON
Change-Id: Iac416ab481814e4488fac4d818c51c647c1ec349
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
JSON officially does not support multiline strings, so we should use
the same mechanism that we already use for the plugin description
(i.e. additionally support arrays of strings which are interpreted
as lines).
This just happens to work because Qt's JSON parser eats it without
choking.
Change-Id: I25ef04600b209775c5a7af916c687fda4a8b1a4d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
To avoid repeating the 'MimeDatabase mdb; mdb.something(); ' mantra
all over the place.
Change-Id: I4bfef62e73275a991455141671d6071162788e9d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
- Avoids the hassle of QRC files and manually registering mime types
- Avoids performance regressions because of mime types that are
registered after mime database has been used
- Makes it technically possible to detect that a disabled plugin could
handle a mime type if it was enabled
Change-Id: I373008b1b56e9c6b4853055f20b3eeb112a6eff9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
... to warn about situations where Mime types are registered too
late (i.e. after Plugin::initialize() or used too early (i.e. before
Plugin::extensionsInitialized())
Change-Id: I22681e94bfdd508e954bb3457b834ec3ad1f0fee
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Plugins can be hidden in the "About Plugins" view by default. Users can
still make them all visible, but the default view can be made less noisy
by hiding plugins that only exist as a base for other plugins.
Plugins that can not run on the current platform are hidden by default
as well.
Change-Id: Iaf2f751c4ea4b3afc605bbbea6611eea042e62c7
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This makes the difference between "experimental" and "disabled" visible
in the UI.
Task-number: QTCREATORBUG-17368
Change-Id: I6a74d27dbad9d35f447fe5687fe26c4eee3a3808
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
1) Make the font non-proportional, since qtDiag's output is formatted
with spaces
2) Make the dialog a window with maximize buttons
3) Fix the formatting for unloaded plugins
Change-Id: I911871b1ffc9dceebcbb04f544cc6d580b95c54e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Using Qt5.6 and Xcode 5 or Xcode 6 results in compile
issues.
Change-Id: I33af400f51991e043672712b531869c6a79d6ffd
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Which outputs the information from qtdiag, installed plugins,
and general Qt Creator build information.
Task-number: QTCREATORBUG-16135
Change-Id: I618b9883369bae45006bb109f8757e89b091b882
Reviewed-by: David Schulz <david.schulz@qt.io>
There is no reason why it should be more than just a list of plugin
specs. Saves a few symbols. Also simplify some related code.
Change-Id: Ibaff64735e78e1454e1aca0b49cadb9e1030ee3c
Reviewed-by: hjk <hjk@qt.io>
It is only used in the pluginview, and "broken" fits in better with
"ok" and "notloaded" for plugin states. Also, we avoid confusion with
the "error" icon in coreicons.h.
Change-Id: I44159a878f60eacf46780b27b4d9c4f31601a9dc
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
On Windows disabling the crashhandler results in re-enabling the
Windows internal error reporting which causes trouble as well, so
limit disabling of crashhandler to Linux/OSX.
This patch more or less amends 80352d703c.
Change-Id: I0588cd22c2ff894e07378524baf03794963c92a1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>