For this make the default context menu for the text editor extensible
and add the context help item from the help plugin, which now has an
optional dependency on the text editor to ensure correct loading order
if both are present.
Task-number: QTCREATORBUG-55
Change-Id: I378a491ba3700e65fc262bdb10c8ead5ad62cb33
Reviewed-by: David Schulz <david.schulz@qt.io>
Create a HelpPluginPrivate class, move all previously private
HelpPlugin data and code there.
Make it live from HelpPlugin::initialize() to HelpPlugin destruction,
so it can be used to handle life time of data members automatically,
making use of IPlugin::addAutoRemovedObject unneeded.
Change-Id: I9e381ca20b98f4d9c06687c11b81a64e69ceeb96
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
HelpWidgets that are created to be shown in an external window, had
two different places where they were deleted:
1) When the widget was closed (due to Qt::WA_DeleteOnClose)
2) In HelpPlugin::aboutToShutdown via manual delete call
In certain circumstances (when the WebEngine backend was used)
this caused a double delete. Specifically, after opening an external
help window, and closing the MainWindow, the application did not quit
due to QTBUG-62596.
Now if the help window were left open, and the application was quit
via the macOS Dock, this caused a crash.
When the application quits, it calls the HelpPlugin::aboutToShutdown,
which deletes the HelpWidget. This in turn destroys the WebEngine
view, which destroys the underlying QQuickWidget, which destroys
a QQuickRenderControl, which calls
QQuickRenderControlPrivate::windowDestroyed, which handles all
posted QEvent::DeferredDelete events, which in turn triggers the
deletion of the same HelpWidget due to the
Qt::WA_DeleteOnClose attribute.
The solution is to remove the Qt::WA_DeleteOnClose attribute, and only
delete the external HelpWidget on shutdown, and not on CloseEvent.
Task-number: QTBUG-63945
Task-number: QTCREATORBUG-19582
Change-Id: I5b73ff7fe52e7e1259a8aa98c97c9dbedd5e3c20
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
If we do not specify the correct documentation URL including the version
number, QtHelp will look for any documentation that has the given path.
Since we now register Qbs documentation, and that also has a file
"doc/index.html", the Get Started Now button could open the Qbs manual
instead of the Qt Creator one.
Specify the full documentation URL including version number to ensure
that QtHelp opens the right page.
Change-Id: Ia77103fe2763dd208d3b9a279a8301f7f5799c8b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When using locator in the external help window, open help pages or show
the topic chooser in the external help window, not the main window.
Change-Id: I792223147f1eb00addafb2618017536c126c71dd
Reviewed-by: David Schulz <david.schulz@qt.io>
That centralizes all the focus setting, raising of windows, etc. This
was for example already done wrong when opening links in help mode and
external window.
Change-Id: I5036b5caa751d1f36dc442078624a31fb8f573ee
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
When using the "Web Search" locator filter ('r') or "Get Help Online"
from the context menu on build errors in the issues pane, we already
know that we want to show the URL in an external browser, not help mode.
Task-number: QTCREATORBUG-17795
Change-Id: Ie7faa527907124251a60e7618747d81a6003fa19
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Q*Application classes have unusually many static functions. In many
cases in our code, these functions are unnecessarily called as instance
functions, using the qApp helper.
This patch replaces many occurencies of qApp with the according
Q*Application classname.
Change-Id: I6099a419fa7bf969891269c37ed7a9e817ef5124
Reviewed-by: hjk <hjk@qt.io>
After we constructed the online URL for Qt/Qt Creator documentation that
is not installed locally, we can just open that via desktop services
instead of bothering built-in help viewers.
Change-Id: Ic8a37bc22d34af881b5daf87534d59db4d331e44
Task-number: QTCREATORBUG-16111
Reviewed-by: Robert Loehning <robert.loehning@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>
QtWebKit is gone, removing it is better than letting it rot.
Change-Id: Ie0a43f9aed028edb76b2e9f2dac0b4a9be8ce05d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When trying to open pages that should be in the installed documentation,
but are not, we try to open the page from the online documentation in
the external browser (e.g. for the links from Welcome mode). Looks like
the online documentation moved.
Change-Id: I7a8eaf37783661dc4751a12b65efeac419d3a802
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
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>
For external windows we need to separate the contexts in which help
mode's "add bookmark" and editor's "toggle bookmark" are present.
Task-number: QTCREATORBUG-16286
Change-Id: I2a7a28c75dc53e1dd0b21c0a8833bd4594d5afad
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Makes it more uniform to use and allows placeholder widget
creation to be independent of mode creations.
Change-Id: I4021bc9db7f8c78f0374c0cc3b3331506959afe4
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
The different viewer backends have different issues with scrolling to
the right position if the URL contains an anchor. In all combinations of
"viewer was visible/invisible when help was requested" and "viewer last
showed the same/a different page then the requested URL".
Move the special logic from help plugin to the viewer backends.
Task-number: QTCREATORBUG-15548
Change-Id: I962c90695ceaee48800a3590676e1d28343cf790
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
The tool tip never has focus, so it cannot become the IContext that is
checked for context help. So, integrate the help id into Utils::ToolTip
and check the tool tip first when checking for context help.
As a side effect the [F1] button and help id for the tool tip is now also
available for use outside of the text editors.
Task-number: QTCREATORBUG-5345
Change-Id: Id975703caf161d1183c247e8ad8bb693b90fd306
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
There is no reason why some part of the help mode couldn't provide
help.
Change-Id: I9c28dc1dacf122e5f3828144a0e386a9f7e2b6c2
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Visual Studio before 2013 had bugs in bool conversion of std::function,
leading to "true" in some cases where it shouldn't.
Task-number: QTCREATORBUG-14399
Change-Id: I8a1ad2f952247049355e11337ddf99f380ebde98
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Using the help database is not necessary, does not follow our style,
and is less reliable (with all the setupEngine mess).
Change-Id: Icb7f63a6b349458011e1b068bdf0954b78d3281f
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
It's not clear why we need it there, it's generally not advisable to do
qApp->processEvents() and in this case it clearly creates problems.
Change-Id: I2707ef0ec98ee761078283ee3ce3f76f9da95f31
Task-number: QTCREATORBUG-14215
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
We have to make sure that the help engine is properly set up before
trying to read the bookmark data.
Change-Id: Id57cce5f538472eeac17b39a3640bf2ed77fa56a
Task-number: QTCREATORBUG-14106
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
... and default to C_GLOBAL. A rather common case.
Similar for ActionContainer::addSeparator().
Change-Id: I7f9ba573af201c0a472132d5a494ad17cc4175b7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
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: I919da493d0629b719d328e5e71c96a29d230dfd1
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Since using window container breaks the native view hierarchy
(QTBUG-39363), we can use the native viewer only if we use QQuickWidget
for the welcome screen.
Task-number: QTBUG-39363
Change-Id: I26407a5c1db558d9a8ac6d79c37e3ffa0e009ed6
Reviewed-by: Erik Verbruggen <erik.verbruggen@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>
For some reason the load() calls in the nested HelpViewer::setSource
calls lead to even more nesting because webkit decides to cancel loading
inbetween...... so we make the side bar viewer synchronization async on
the event loop.
Task-number: QTCREATORBUG-12742
Change-Id: I276272af7c477d627638e9611a34e80cca945b21
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
In the case of clean settings.
Change-Id: Ie230cc6a20a932c5917c4a9af26f94c0292e5ada
Task-number: QTCREATORBUG-13197
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>