Always create Documentation tool view, fix it to work with no providers

Authored by kossebau on Oct 4 2017, 1:44 PM.

Description

Always create Documentation tool view, fix it to work with no providers

Summary:
Creating the Documentation tool view at DocumentationController
initialization time only if the list returned by documentationProviders() is
non-empty has some flaws:

  1. The QtHelp plugin delays initialization to after reaching the event loop.

So if it is the only documentation provider (provider) plugin activated, it
will return 0 providers in the beginning.

  1. It ignores the option that users can enable another documentation provider plugin

at runtime.

  1. There is also no code for removing the tool view in case the user

disables any documentation providers at runtime.

  1. It ignores the option of plugins like the QtHelp one allowing the user to

disable any documentation providers at runtime.

This patch always creates the toolview instead of magically creating/removing it
automatically based on documentation provider availability and leaves it to
the user to add or remove it as they prefer.

It also prepares the Documentation tool view to properly handle the case of
no documentation providers available (done in a way to keep the current public
API).

BUG: 383875
FIXED-IN: 5.2.0

Reviewers: KDevelop, apol

Reviewed By: KDevelop, apol

Subscribers: kdevelop-devel

Differential Revision: https://phabricator.kde.org/D8140

Details