If a plugin was selected in the ExtensionManager, and meanwhile, the
"load" status of that plugin was changed via the plugin dialog, the
change was not reflected in the ExtensionManager.
This change connects the "Load on Start" checkbox in the
ExtensionManager with the PluginManager's "changed" signal to keep the
state in sync.
Fixes: QTCREATORBUG-31177
Change-Id: I6946e23e8491e9c896026b55315acf76bb50cb92
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Empty lines play a crucial role since we now interpret the description
text as Markdown.
Change-Id: Idad3996bde4183145d6ba1c092536c4c52fa6457
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
As per UI design spec, this change inserts two widgets between the
search field and the extensions list. One for filtering, one for
sorting.
The widgets are derived from QComboBox, with custom paintEvent. The
selected filter/sort options are applied to the custom
SortFilterProxyModel which is inserted between the "search" proxy model
and the view.
Fixes: QTCREATORBUG-31179
Change-Id: Ia7768fa4f31b5bf5682918e724a3a299e851eb46
Reviewed-by: hjk <hjk@qt.io>
The current code silently failed to add the description text to the
search role. This change fixes it.
Change-Id: I33e5554ac1ff2b11f9610843b566698551a6e0a1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
The used QSysInfo::productType() provides various code/distribution
names which in some cases have little to do with the "host_os" that is
expected by the extension service API.
This change involves osTypeToString to instead return plain OS names.
Change-Id: I24b8070342c1de9de9040adcf5e06be967b6a180
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Where they were missing. The text is shown as a paragraph in the
extension manager.
Change-Id: I6e15c89fe4023b222e9c476f4312e13fcb0905c0
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Since recently, the green background is used for enabled plugins and
grey is for disabled ones. With that change comes the requirement to
draw the icon for disabled icons with less intensity, to make it really
appear disabled.
I took this opportunity to unify the drawing of small/big enabled/
disabled pack/extension icon variants in a central helper function.
Change-Id: Ia68218c774ccb8e9e7ed48620ac36f4bca0724fd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
And de-pimpl. Smaller overall interface and less indirections.
Change-Id: If6a5c0824581a6478ad6e88410d97e23cc517a53
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
We want to sort by type and then alphabetically. That requires a custom
lessThan() implementation, thus a custom QSortFilterProxyModel.
Will come handy for further filtering/sorting requirements in the
future.
Change-Id: Iaacd955015d56026e41d404dcf4781a1715dc55a
Reviewed-by: hjk <hjk@qt.io>
The fetching is postponed until the extension manager is shown.
This also adds a spinner which is shown during the fetching of the data.
Change-Id: Id24ae772bcdfdf885ecfd5341d9a8d02f398c1a0
Reviewed-by: hjk <hjk@qt.io>
- Add dots to ends of messages
- Replace "plugin" with "extension" in translatable text
- Fix capitalization of headings and button labels
- Change wording
Change-Id: I24a3ca6de6a5a0a4509bab34ad2f50cbcf40c73a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This change sets green vs. grey background for extension icons depending
of enabled state.
Change-Id: Id99419544a00acca897aa0ad6c98d2598e4b2210
Reviewed-by: hjk <hjk@qt.io>
Log the network request, incl. result and response. And how many
extensions were fetched remotely and added locally.
Change-Id: I634d72462c8076c2fa01e88a1918163f76d28aff
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
The extansion query service is currently only reachable from within the
internal network. So far, if the request failed, and if Qt Creator was
configured with WITH_TESTS, a set of test json got loaded.
That test data confuses people in the team.
This change makes loading of test data explicit, and comments it off by
default.
Change-Id: I89236064b6af32be7559bb6d36cbf0d42982085d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This change enables the Qt Creator Extension service data to override
data of locally installed plugins (so far it was the other way around).
We might want to add more description text, links, images or tags to
plugins. And we want to be able do that independently of Qt Creator
releases.
This change also allows for substantial simplification of the "data
merging" code.
The parsing of extension plugin dependencies from the json data needed
to be fixed. See dependenciesFromJson()
Change-Id: Ia0433f0e0c7a0f13c43e0569c0915b7d08f7370a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This instantiates PluginView in order to use setPluginsEnabled. It
enables dependencies of a plugin that is being enabled. Likewise, it
disables dependent plugins when users disable a plugin.
In both cases, the user sees the familiar info dialog.
On confirmation, a "Restart now" button is shown.
Change-Id: Ie74ed377bfdd1ce3cb06289c2aae78377475bc53
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: hjk <hjk@qt.io>
But keep experimental.
It is currently less functional than the old plugin dialog, it
misses e.g. dependency tracking when disabling plugins and the
design misses a way to restart Creator in the common case where
this is necessary.
Change-Id: Ib6c5aba762426510fc174c99ddc486d31d240484
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
(cherry picked from commit c57d70e242)
Reviewed-by: hjk <hjk@qt.io>
This implements the design for the "right side" of the extension
manager.
The introduced "header" shows the extension icon in a slightly bigger
variant. The "Install..." button that starts downloading and installing
of a plugin moved to the newly desigend "header".
The previous HTML based prototype has been split up into separate items
in order to achieve specialized sections like the images and tags.
Images are loaded via TaskTree and displayed as static image or as
animation.
Change-Id: Ifaf4a46c0a4789e77e76f9a44c8a15ee74c5e8df
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This updates the list delegate for ExtensionManager items to match the
latest Figma design.
Change-Id: I769026caa1e08feea4f71d901d1bda01d74ab0a2
Reviewed-by: hjk <hjk@qt.io>
Stuff you notice 10 Minutes after pushing the code you worked on for
days.
Change-Id: I24614b8129f80c8986ec11d5146c5631dae5d515
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This adds a parser for the JSON response of the extension rest API. The
data, combined with the PluginSpecs of local plugins, serve as data
model for the extension mode view.
A couple of "packs" are provided as test data.
Change-Id: I5ce961a9de9bf54ca745e5e5a5e584b1698e6ac6
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Avoid the redirect that is inevitable nowerdays.
Also, change necessitas.kde.org to www.qt.io, since the orgininal page
is offline.
Change-Id: Ib1823f0df97d2df87822fd2bb7552e2f2c7e971e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>