More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.
Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Registers a new function "value('name')", available to the wizard json
files, which returns the value of the variable "name" as a JavaScript
object. So, variables with a string value are actual JavaScript strings,
booleans are booleans, lists are lists, and dictionaries are
dictionaries.
The patch also makes it actually possible to assign JSON lists and
dictionaries to values.
This removes some hacks involving creating complex JavaScript objects
through string substitution.
Change-Id: I4ac6da22bc5bccc9fadee97694c2fa14d44c9307
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
When importing projects, it can happen that several files are
encountered that could serve as the main project file. Until now, we
basically opened a random one, which was less than ideal. Now the user
can choose.
Fixes: QTCREATORBUG-17828
Change-Id: Iec08c942d0f9ff349c9752503c8157556f07b416
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
For freshly created projects using the json wizard, this
expands the outermost level of that project's entry in
the project tree.
This intentionally does not trigger when reloading from existing
sessions do honor a user's choice after collapsing that
item manually.
Fixes: QTCREATORBUG-17800
Change-Id: I101efaea84e68a4e769c803918652a1447805b2b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The moment the file is added to the project, a reparse is triggered,
which invalidates the tree sub-nodes.
So we need to check if the context node (on which the wizard was opened)
still exists before trying to access it, similar to how we do that in
JsonSummaryPage::findWizardContextNode.
Change-Id: I9154e000a31ea8d5d4ebc66c25528d422c377b94
Fixes: QTCREATORBUG-21342
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Remove soft assert and do a pre-check before calling the function.
Change-Id: I9882e841a47a5b7bc566f1b3a4b156df4229f051
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This is necessary to allow for constants that are not re-evaluated all
the time.
Change-Id: I4aec9d71aeae1a25ffa97eac177dd9c6fc6a90ca
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Code was duplicated between the factory of the wizard and the file
generator.
Change-Id: Ied2ba99218a5f06e8a0dce0fbc12f277195de8ad
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
I want to use it e.g. for snippets and the TextEditor plugin may
not depend on the ProjectExplorer, so the code has to move.
This adds a dependency on QtQml to Utils, but that does not really
matter since that is loaded into QtCreator anyway.
Change-Id: Iada9f40b2966a1fc41631ab33da09812ad67d967
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Instead, switch to edit mode, show sidebar, scroll to project,
and show a tooltip next to the project.
The tooltip is somewhat easy to miss, but this is a clear improvement
in most cases.
Change-Id: Icd27f76e7d434f33e731b6fd56473ff913986a89
Task-number: QTCREATORBUG-8422
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Fix expansion of bool macros and empty string macros embedded into
other macros.
Change-Id: I7d65a4692c48c6299956cc8c4c2c28efb1c8e149
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Add an action to trigger it (not bound to any key sequence
by default).
Change-Id: I52ed9107fcbcb8c6b5ae1e4c4768250e405e141a
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Move code opening files and projects directly into the JsonWizard.
It makes no sense to keep reimplementing this functionality in
generators.
Change-Id: Ib4686a262fa9b2c78028146d138c5bba5d5b604a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Add a signal/method to polish the generated files: This phase happens after all files
are written to disk and are ready. It is intended for tasks not directly related to
the project setup: E.g. generation of config files, etc.
Use this to generate our config files.
Change-Id: I9bb5d296bec19f163b70c5ec8d43d5b8e3a52d79
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This did trigger all kinds of side-effects, one of them was
Task-number: QTCREATORBUG-14294
Change-Id: If39f827828e9c5a2559bd6b3b5392ac819fbd931
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Have value(...) return a QVariant that is never mangeled and add
a stringValue(...) method to retrieve stringified values. It is
way easier to see who needs what now.
Use this consistently in the JsonWizard and fix one place where
a QVariant was expected but a stringified version was returned.
Task-number: QTCREATORBUG-13486
Change-Id: I2c4e9188280940e529f0f60bcc18b9b7330865d1
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Export the form contents as a list of lines and join them when
needed instead of hoping to unescape '\\n' in all places where
it is necessary.
This approach should be a bit saver since it will cause parse
errors in the wizard, which are more visible than broken output
in the generated files.
Task-number: QTCREATORBUG-13456
Change-Id: I434a9227082f92be3c2ce75006f61ac79a2b6fd6
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Change the JsonWizard interface:
* generateFileList now does no longer change the state of the JsonWizard
* commitToFileList added which is used to commit the wizard to a final
list of files.
* Trigger generateFileList when version control is changed in the
SummaryPage
* Commit to the file list once the SummaryPage is done
Change-Id: Ieb7b7abbf428d96596526c01946ecf0852f65744
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This avoids a new project being opened if you are trying to add a new
subproject to some existing project.
Change-Id: Ic5a2f4b0dedbfd6994c59e4944fc32b11d648871
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Make sure to open files only after last touches were applied by
the wizard.
Change-Id: I0da8b49ebe58b0516fa44ef7b0472cce20a5936f
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
These reuse the existing pages we use for other wizards.
Change-Id: Ic505204e0988a6b44d112da35748f81d9f8e2c1f
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This is a generalization of the customwizard (using Json for its
configuration files since that is so easy to handle in Qt 5 and
since it is incompatible with the customwizard anyway).
It allows to define an arbitrary number of pages and generators to
generate the actual files.
Change-Id: I45a01cf7fb906701b627fa1471a898cad472f679
Reviewed-by: Daniel Teske <daniel.teske@digia.com>