Skip to content

Repository files navigation

Build plugin GitHub Downloads (all assets, all releases)

Qt Creator Changes Panel

A Changes pane for Qt Creator, beside "Open Documents" — everything you've changed across your open projects, grouped by repository. Diff, stage, revert, or open the file in your Git client, without leaving the sidebar.

Demo-Changes-Panel2

Features

  • Live list of VCS-changed files across all open projects, sectioned per repository (submodules included).
  • Collapsible groupsMerge / Staged / Unstaged — with counts, colored by state.
  • Actions: click to diff or open (configurable); hover a file to diff, stage/unstage, revert, or open it in your Git client; right-click for more, including Open Containing Folder and Copy Full Path.
  • Toolbar: diff all changes at once, open the repository in an external Git client, and a Git menu; activate the pane with Meta+P / Alt+P.
  • External Git client: plain command lines with placeholders — e.g. smerge %{repo} to open the repository, smerge log %{relativeFile} for a file's history. %{repo}, %{file}, and %{relativeFile} are expanded when the command runs.
  • Settings: Preferences > Version Control > Changes Panel — choose the hover buttons, the file click action, and the Git client commands.

The pane relies on Qt Creator's VCS status monitoring: make sure "Show file status" is enabled in Preferences > Version Control > General (it is enabled by default).

Requires Qt Creator 20 (uses the Core::VcsManager file-state API).

Installation

Prebuilt binaries for Windows, Linux, and macOS ship with every release. Install either through the extension registry or from a downloaded archive.

  1. Download the archive for your platform from the latest release:

  2. In the Extensions view, choose Install Plugin…, select the downloaded .7z, and restart Qt Creator.

How to Build

Create a build directory and run

cmake -DCMAKE_PREFIX_PATH=<path_to_qtcreator> -DCMAKE_BUILD_TYPE=RelWithDebInfo <path_to_plugin_source>
cmake --build .

where <path_to_qtcreator> is the relative or absolute path to a Qt Creator build directory, or to a combined binary and development package (Windows / Linux), or to the Qt Creator.app/Contents/Resources/ directory of a combined binary and development package (macOS), and <path_to_plugin_source> is the relative or absolute path to this plugin directory.

Or with CMake presets: create a CMakeUserPresets.json that inherits the default preset and sets CMAKE_PREFIX_PATH to your Qt Creator dev package, then run cmake --preset <your-preset> && cmake --build --preset <your-preset>. For example:

{
  "version": 4,
  "configurePresets": [
    {
      "name": "local",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_PREFIX_PATH": "<path_to_qtcreator>;<path_to_qt>"
      }
    }
  ],
  "buildPresets": [
    { "name": "local", "configurePreset": "local" }
  ]
}

The file is machine-specific and gitignored.

How to Run

From the command line run

cmake --build . --target RunQtCreator

RunQtCreator is a custom CMake target that will use the referenced above to start the Qt Creator executable with the following parameters

-pluginpath <path_to_plugin>

where <path_to_plugin> is the path to the resulting plugin library in the build directory (<plugin_build>/lib/qtcreator/plugins on Windows and Linux, <plugin_build>/Qt Creator.app/Contents/PlugIns on macOS).

You might want to add -temporarycleansettings (or -tcs) to ensure that the opened Qt Creator instance cannot mess with your user-global Qt Creator settings.

Support the development

If you find this project helpful, there are several ways you can support it:

  • Report issues — if you encounter any bugs or have suggestions for improvements, please open an issue.
  • Contribute — feel free to submit pull requests with bug fixes or new features.
  • Spread the word — star the GitHub repository and share the plugin with your fellow developers.
  • Financial support — if you'd like to support the development financially, you can make a donation using one of the following:
    • PayPal: paypal.me/palm1r
    • Bitcoin (BTC): bc1qndq7f0mpnlya48vk7kugvyqj5w89xrg4wzg68t
    • Ethereum (ETH): 0xA5e8c37c94b24e25F9f1f292a01AF55F03099D8D
    • Litecoin (LTC): ltc1qlrxnk30s2pcjchzx4qrxvdjt5gzuervy5mv0vy
    • USDT (TRC20): THdZrE7d6epW6ry98GA3MLXRjha1DjKtUx

For Contributors

Code style

  • C++: use the .clang-format configuration in the project root.
  • Run formatting before submitting pull requests.

Third-party assets

  • resources/icons/morevert*.png — "more_vert" icon from Material Design Icons by Google, licensed under the Apache License 2.0.

License

Licensed under the MIT License.

Qt Creator components and attributions

Qt Creator Changes Panel is a plugin for Qt Creator and incorporates certain components (plugin templates, API headers, and related boilerplate) originating from Qt Creator, which are copyright (C) The Qt Company Ltd.

These components are provided by The Qt Company under the GNU General Public License version 3, annotated with The Qt Company GPL Exception 1.0. This exception permits the development and distribution of Qt Creator plugins under licenses of the plugin author's own choosing, notwithstanding the GPL's general linking requirements. It is this exception that allows Qt Creator Changes Panel to be distributed under the MIT license.

The original copyright and license notices of The Qt Company are preserved in the relevant source files and must not be removed.

About

A Qt Creator plugin that adds a "Changes" navigation panel

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages