Qt Creator opens by default the offline documentation of CMake.
But the user can click on the "Globe" to go to the online version
of the documentation.
Change-Id: I0b3a6bceb13784b232b539f1c04bd09aa3a11034
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The Qt support has the option to only register the documentation for
"the highest Qt version", which is enabled by default.
That is based on finding the help files for registered Qt versions and
only registering the right set depending on the settings.
Unfortunately the online installer additionally registers the Qt
documentation path as a separate documentation set in the install
settings. (This was originally introduced to support documentation for
components that are not directly related to a Qt version.) The Help
plugin that handles this setting doesn't know that the Qt support
explicitly doesn't want the documentation of some Qt versions
registered.
Let the Qt support explicitly tell the Help plugin about documentation
files that should not be registered, even if they appear in the separate
install setting.
Change-Id: I0512adc0dfe9969481ce83094f5349a49aae5d9f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
The price of having to loop in two places seems small compared
to cleaner relations between the classes.
There's a new hack in the helpmanager to make sure we aren't
looping to often. The hack wouldn't be needed if the (odd(?))
check there weren't there.
Change-Id: Ifed50213b2de8feedfb45c185808d163c00c19ca
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Adapt the code to deprecated usage of map as a multi map,
hence all cases replaced by QMultiMap.
Change-Id: I2d480467cd6e91d3e880555e6a21058dec056b3f
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
While doing we must take care that we do not remove documentation that
is used by other, still registered Qt versions (since for example
desktop & mobile Qt versions share the same documentation).
Fixes: QTCREATORBUG-16631
Change-Id: I77a38c89698cb3050d4a0a6963ab12d3238e2068
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Only used by the options page and generally needs knowledge of help
namespaces, which requires querying QtHelp.
Change-Id: Id8eda86e5b373ab3214e8eff6e2e3ce92c1239ba
Reviewed-by: David Schulz <david.schulz@qt.io>
And if multiple topics are found in the index, show the topic chooser
dialog that we already have for the help index.
Fixes: QTCREATORBUG-12704
Task-number: QTCREATORBUG-15959
Change-Id: I7afa6f44bbecc12f602aaaa4a11209ec72399689
Reviewed-by: David Schulz <david.schulz@qt.io>
It is documentation related API, so it belongs there.
Change-Id: I5d1676f251e6deb92050ddedac19bf3c332aab54
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We don't want various plugins to depend on the Help plugin,
but we also do not want Core to depend on QtHelp.
For example when turning the Help plugin off, documentation should
actually no longer be registered through QtHelp. So we need
parts of the interface in Core, which must then be delegated
to the actual implementation in Help.
As positive side-effects the interface in Core will be slimmer,
and the code in the Help plugin can later be simplified, too,
because then we don't have the "Core" and the "Gui" help engines
separated in different plugins anymore, which should remove the
need for some setup indirections.
Task-number: QTCREATORBUG-20381
Change-Id: I634c5811c45d6a3dfd6ddc682cae270e38384cbf
Reviewed-by: hjk <hjk@qt.io>
As documentation is now registered in another thread
accessing the help engine from the main thread may crash.
Task-number: QTCREATORBUG-19933
Change-Id: Id5e376c793156bf2d553c237cfb068b000c5afb1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Querying the namespaces is expensive as it involves a complicated SQL
query. We shouldn't do this if we don't need to. In this case we only
need the initial list. After that, we know if we add something to it.
Change-Id: I0c45ae6d39da686fa29a968d815dac3d68890208
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
QHelpSearchIndexReaderDefault is run in a separate thread
in order to return the results of the search. It reads
the info about the current filter in order to filter out
the results. However, the main thread didn't
store the current filter in the qhc file, just in memory,
and the search thread reads the value of the current filter
from qhc file, so this goes out of sync.
This patch stores the current filter in the qhc file
whenever it is changed.
The current code resets the current filter
by the launch of creator anyway.
Task-number: QTCREATORBUG-17845
Change-Id: I7c8d2c93b319c94e1400a677ecee9e9b41b029c3
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Needing to compile Qt tools is a bit of a chore (and at some point a
diskspace issue) when building/starting Creator as sanity check for
comparing different compiler optimization settings.
This is not an officially supported configuration.
Change-Id: I628e33eb7137f09ecfebbd27453de548bac2fde5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Move retrieval away from prepare search, and do some caching. Also split
the keyword search into individual chunks per help database that are
executed on the UI thread individually.
Change-Id: I0b8fe4abfc3cba46620985752d3d90638e10512f
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
It would keep documentation registered as long as the files are still
there, but that is actually not what is wanted. If you remove a Qt
version from Qt Creator, or switch between different Qt Creator
installations with different auto-detected Qt versions, the registered
documentation should be updated.
This also reduces the number of open files in these cases.
We keep a list of manually added documentation in the settings and treat
all other documentation as automatically managed.
Change-Id: I542f9aee0e62cab70db5afc5c6d6764d84cb253d
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
We have many conditions where we return empty default values when the
help engine is not yet set up. These deserve a warning.
Change-Id: Ib7235d344f93ab7a6e2e0ee126c3593818b8a8b0
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Also remove the hack that HelpManager::handleHelpRequest looks
for ?view=split in the URL and use an enum instead.
Change-Id: I4ad74775381cf0b321181358266d8e89c6e277b5
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
So far candidates were prefix matched case sensitive which led to
an unfavorable results order.
With this patch, if the input is lower case, the prioritizing happens by
a case insensitive prefix match. Otherwise the match happens case
sensitive (just like before).
Example:
Search for e.g. "m cppmodelmanager"
Top result before: AbstractEditorSupport (match at parameter type)
Top result now: CppModelManager
Change-Id: Ic27042cfe717be812a2237a3437399597c98dd74
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
Fixes e.g. opening help from the Locator help index filter
Change-Id: I3f7dae08aa83c36119a31d97232b9cdba0ba89fc
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
The former unsorted list would not fully match the search term,
while searching for QString the actual top hit would be somewhere
in between other search results instead of position one. Make sure
to remove duplicates from the search hits.
Task-number: QTCREATORBUG-5167
Change-Id: I640c3e8d5a5498c5a13c083370a961f458576da5
Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Getting the #include directives ready for Qt5. This includes the
new-project wizards.
Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
And use it for some of the plugins. It avoids the plugins to
do the timing on their own, and actually adds guarantees about
the order the delayed initialization is done.
Change-Id: I88ad9b46b24b82c91509774170fe0e7e99e88e4b
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>