The plugin will be developed as part of QtCreator in the future and
also be released under the GPLv3 license.
Change-Id: I673519161e105982d68f0c4ebbc06e6d7a6f91ac
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This initial commit is merely a mockup of a ExtensionManager concept.
Change-Id: I19b2285667678a86097c043cc27a554545559eff
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: hjk <hjk@qt.io>
The screen recorder plugin allows a user to record the contents of a
screen (or part thereof), and in a second step to export the result as
various lossless or lossy animated picture or video formats. Before
exporting, the recorded video can be trimmend in length and be cropped
in size.
All functionality relies on the ffmpeg/ffprobe tools, which need to be
present on the user's system.
This initial version of the plugin introduces a settings page, and a
recording/exporting dialog with sub dialogs for recording and export
options.
Some autottests for ffmpeg/ffprobe output parsing are included.
Task-number: QTCREATORBUG-29366
Change-Id: Iaf16d369fd9088d69b1bd130185ca920d07b34c6
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This introduces the vcpkg support plugin. Initial features are:
- Options page for defining vcpkg installation location
- Search dialog for searching/selecting a package
(incl. parsing autotest)
- TextEditor that shows search/options toolbuttons
- File wizard that creates a vcpkg.json manifest
Change-Id: I098784100c869e0bb2ed6f60db4dedad559a142a
Reviewed-by: hjk <hjk@qt.io>
So far only adding global settings and project settings.
Global settings allow to specify configurations used later
inside the project settings or when accessing GitLab
server instances.
Project settings already can "link" to GitLab projects,
which will allow to fetch notifications for the project
later on.
Real functionality is added in the follow ups.
Change-Id: I8a0f978001c58c6dc9e07917c183891abec9a3d0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The UWP support in Qt was removed with Qt 6 and the support in Qt
Creator is basically untested.
Change-Id: I3148efdb596ddd326f590c14c22cc77ded2582a7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
There was no proper separation of responsibilities between these
plugins. In particular, CppTools had lots of editor-related
functionality, so it's not clear why it was separated out in the first
place.
In fact, for a lot of code, it seemed quite arbitrary where it was put
(just one example: switchHeaderSource() was in CppTools, wheras
switchDeclarationDefinition() was in CppEditor).
Merging the plugins will enable us to get rid of various convoluted
pseudo-abstractions that were only introduced to keep up the artificial
separation.
Change-Id: Iafc3bce625b4794f6d4aa03df6cddc7f2d26716a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This removes the plugins and tools, and removes all the tests that would
fail to build because of that.
Fixes: QTCREATORBUG-25659
Change-Id: I8adb5d503fc8eea313bcaada421f309dbbfa8c26
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
The usual boiler plate for plugins, including an option page that
knows how to run "docker search" for demonstration purposes.
Change-Id: I2df91f18f4869cbb2ee8f65ccb8b41969f8c90ae
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
- Using raw pointers instead of QSharedPointers.
- Removing redundant pointers existence checks before delete.
- Replacing empty quotes with explicit QString() instance creation.
- A few spaces and tab fixes.
- Save settings after migrating build steps
Change-Id: Iff87d75c7047474ab8e49366ddfeced766ff1a67
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Most basic project management is implemented:
- Project config/build
- Build options accessible to user
- Lists most build targets
- Meson and Ninja added to kit setup
- Basic project file tree with files known by Meson
- Some basic meson and ninja process output parsing
- Some project templates
Missing features, that will come later:
- Configurable project tree layout
- Locators for Meson
- Build importer
- Access to Machine files for better user fine tuning
- ...
Fixes: QTCREATORBUG-18117
Change-Id: I2811e71562c113fb0fc6b6177bcf0698fa71ef63
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The project file was missing from the build tree
Change-Id: If4d97774e63b0368a5b7bfbedd7425d4e871eef5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Provides a simple integration into the welcome page.
Task-number: QTCREATORBUG-23452
Change-Id: I3e615dcd6dfd9e401159ea6d30b48737edb1e1f9
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Medium term to be merged with BareMetal/RemoteLinux/...
Change-Id: I444c65bcfa8e3cf8642ff64e964459720814860a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This change adds WebAssembly support in the shape of a plugin.
- Auto-detection of the emsdk toolchain
- Handling of "asmjs-unknown-emscripten" Abi
- Binary detection of WebAssembly libraries
- Auto-creation of a "WebAssembly runtime" device (with icon)
- Runconfiguration that launches the application via the "emrun"
tool which spawns a local web server and runs the application on
the chosen web browser.
Limitations:
- So far only tested on Windows/MinGW and Linux
- Not yet tested with Qt WebAssembly installation form the installer
Only tested with self-built Qt and manually added kit
- The attempt to launch an application via emrun, while a previous
application is still running, will fail. The reason is that the
web servers spawned by emrun listen to the same default port but
serve only the content of one application.
Possible solutions: We could either spawn the different web servers
with different ports, or we could use one single web server instance
which serves the whole default project location (home directory).
Task-number: QTCREATORBUG-21068
Task-number: QTCREATORBUG-22249
Change-Id: I1a16fbe52382d45c37e9bc624a943a6ca475fa09
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The plugin does not only contain a pure editor, but all kind of support
for a programming language like project and run support.
Change-Id: I1251367c8db2e7a54986415ffc5b860cb210de3c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
A plugin for communication with Boot2Qt devices.
Task-number: QTCREATORBUG-21808
Change-Id: I61f4a9451c2fe8ff4e1108e07db2e72e8c613c43
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
... and relicense it as GPL or Commercial.
Fixes: QTCREATORBUG-21838
Change-Id: I28d58ee963e1c63aa4a8bbe4525faade7201c353
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The remaining dependency is hacked into QmakeProjectManager
by using a compile time-only dependency on androidconstants.h.
Change-Id: Id78125137bc75c145a072bc753276abbf0029647
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Automatically checks currently opened documents and displays results via text marks/annotations.
CppcheckTrigger detects when to check files or clear results.
CppcheckTextMarkManager stores/clears text marks with checks' results.
CppcheckTool generates run arguments and parses output.
CppcheckRunner runs cppcheck binary.
CppcheckOptions configures CppcheckTool.
Task-number: QTCREATORBUG-20418
Change-Id: I8eafeac7af6137d2c9061ae75d4a56c85b3b5a2d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This is the new experimental plugin based on LibFormat.
It replaces the default indenter for CppEditorDocument
and applies clang-format after the CR or the set of 'electric'
characters.
Uses the global .clang-format kept in QtC settings or
the one for current project. Both can be configured.
For indentation some style modifications and code manipulations
are done to prevent line shrinking when it's not expected.
Manual indentation uses unmodified style from .clang-format file.
Change-Id: I6279b805e418e1804b553efa615f5c843f395a58
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
The language server protocol is used to transport language specific
information needed to efficiently edit source files. For example
completion, go to operations and symbol information. These information
are transferred via JSON-RPC. The complete definition can be found under
https://microsoft.github.io/language-server-protocol/specification.
This language server protocol support consists of two major parts, the
C++ representation of the language server protocol, and the client part
for the communication with an external language server.
The TypeScript definitions of the protocol interfaces are transferred to
C++ classes. Those classes have getter and setter for every interface
value. Optional values from the protocol are represented by
Utils::optional<ValueType>. The JSON objects that are used to transfer
the data between client and server are hidden by a specialized
JsonObject class derived from QJsonObject. Additionally this JsonObject
provides a validity check that is capable of creating a detailed error
message for malformed, or at least unexpected JSON representation of the
protocol.
The client is the interface between Qt Creator and language server
functionality, like completion, diagnostics, document and workspace
synchronization. The base client converts the data that is sent from/to
the server between the raw byte array and the corresponding C++ objects.
The transportat layer is defined in a specialized base client (this
initial change will only support stdio language server). The running
clients are handled inside the language client manager, which is also
used to connect global and exclusive Qt Creator functionality to the
clients.
Task-number: QTCREATORBUG-20284
Change-Id: I8e123e20c3f14ff7055c505319696d5096fe1704
Reviewed-by: Eike Ziller <eike.ziller@qt.io>