├── Templates ├── designer │ ├── plugin.json │ ├── qt.cmake │ ├── stdafx.cpp │ ├── stdafx.h │ ├── CMakeUserPresets.json │ ├── designer.ico │ ├── widget.cpp │ ├── widget.h │ ├── CMakeLists.txt │ └── plugin.h ├── console │ ├── qt.cmake │ ├── stdafx.cpp │ ├── stdafx.h │ ├── CMakeUserPresets.json │ ├── console.ico │ ├── main.cpp │ └── CMakeLists.txt ├── empty │ ├── qt.cmake │ ├── CMakeUserPresets.json │ ├── empty.ico │ ├── CMakeLists.txt │ └── empty.vcxproj.filters ├── gui │ ├── qt.cmake │ ├── stdafx.cpp │ ├── stdafx.h │ ├── CMakeUserPresets.json │ ├── gui.ico │ ├── widget.qrc │ ├── main.cpp │ ├── widget.cpp │ ├── widget.h │ ├── widget.ui │ └── CMakeLists.txt ├── lib │ ├── qt.cmake │ ├── stdafx.cpp │ ├── stdafx.h │ ├── CMakeUserPresets.json │ ├── source.cpp │ ├── lib.ico │ ├── header.h │ ├── global.h │ └── CMakeLists.txt ├── quick │ ├── qt.cmake │ ├── stdafx.h │ ├── stdafx.cpp │ ├── CMakeUserPresets.json │ ├── quick.ico │ ├── qml.qrc │ ├── main.qml │ └── main.cpp ├── test │ ├── qt.cmake │ ├── CMakeUserPresets.json │ ├── test.ico │ ├── CMakeLists.txt │ └── test.cpp ├── server │ ├── stdafx.cpp │ ├── stdafx.h │ ├── server.rc │ ├── server.ico │ ├── server.def │ ├── source.cpp │ ├── header.h │ └── widget.ui ├── qmldir │ ├── qmldir │ ├── qml.ico │ └── qmldir.vstemplate ├── qml │ ├── qml.ico │ ├── NewFile.qml │ └── qml.vstemplate ├── runsettings │ └── qt.ico ├── widget │ ├── widget.ico │ ├── widget.ui │ └── widget.vstemplate ├── qtclass │ ├── qtclass.ico │ ├── source.cpp │ └── header.h ├── resource │ ├── resource.ico │ ├── resource.qrc │ └── resource.vstemplate ├── mainwindow │ ├── mainwindow.ico │ └── mainwindow.vstemplate ├── translation │ ├── translation.ico │ └── translation.ts ├── widgetsclass │ ├── widgetsclass.ico │ ├── widget.cpp │ ├── widget.h │ └── widget.ui ├── dialogbuttonbottom │ ├── dialogbuttonbottom.ico │ └── dialogbuttonbottom.vstemplate └── dialogbuttonright │ ├── dialogbuttonright.ico │ └── dialogbuttonright.vstemplate ├── QrcEditor ├── qrceditor.rc ├── qrceditor.ico ├── main.cpp ├── shared │ └── qrceditor.pri └── mainwindow.h ├── Tests ├── BigSolution │ └── template │ │ ├── StaticLib │ │ ├── Header.h │ │ ├── StaticLib.cpp │ │ └── StaticLib.vcxproj.filters │ │ ├── BigProjectNNN │ │ ├── BigProjectNNN.qrc │ │ ├── BigClassNNN.h │ │ ├── BigProjectQtClassNNN.cpp │ │ ├── bigprojectnnn_global.h │ │ ├── BigProjectQtClassNNN.h │ │ └── BigProjectNNN.ui │ │ ├── QtClassLibrary │ │ ├── QtClassLibrary.cpp │ │ ├── QtClass.cpp │ │ ├── QtClassLibrary.h │ │ ├── QtClass.h │ │ └── qtclasslibrary_global.h │ │ └── loop_msbuild.bat ├── ProjectFormats │ ├── 100 │ │ ├── QtProjectV100.qrc │ │ ├── QtProjectV100.pro │ │ ├── QtProjectV100.cpp │ │ ├── main.cpp │ │ ├── QtProjectV100.h │ │ └── QtProjectV100.ui │ ├── 200 │ │ ├── QtProjectV200.qrc │ │ ├── QtProjectV200.cpp │ │ ├── main.cpp │ │ ├── QtProjectV200.h │ │ ├── QtProjectV200.ui │ │ └── QtProjectV200.sln │ ├── 300 │ │ ├── QtProjectV300.qrc │ │ ├── QtProjectV300.cpp │ │ ├── main.cpp │ │ ├── QtProjectV300.h │ │ ├── QtProjectV300.ui │ │ └── QtProjectV300.sln │ ├── 301 │ │ ├── QtProjectV301.qrc │ │ ├── QtProjectV301.cpp │ │ ├── main.cpp │ │ ├── QtProjectV301.h │ │ ├── QtProjectV301.ui │ │ └── QtProjectV301.sln │ ├── 302 │ │ ├── QtProjectV302.qrc │ │ ├── QtProjectV302.cpp │ │ ├── main.cpp │ │ ├── QtProjectV302.h │ │ ├── QtProjectV302.ui │ │ └── QtProjectV302.sln │ ├── 303 │ │ ├── QtProjectV303.qrc │ │ ├── QtProjectV303.cpp │ │ ├── main.cpp │ │ ├── QtProjectV303.h │ │ ├── QtProjectV303.ui │ │ └── QtProjectV303.sln │ ├── 304 │ │ ├── QtProjectV304.qrc │ │ ├── QtProjectV304.cpp │ │ ├── main.cpp │ │ ├── QtProjectV304.h │ │ ├── QtProjectV304.ui │ │ └── QtProjectV304.sln │ ├── qmake │ │ ├── qmake.pro │ │ ├── project │ │ │ ├── bg1.jpg │ │ │ ├── project.qrc │ │ │ ├── main.cpp │ │ │ ├── mainwindow.cpp │ │ │ ├── mainwindow.h │ │ │ ├── mainwindow.ui │ │ │ └── project.pro │ │ ├── shared_project │ │ │ ├── bg1.jpg │ │ │ ├── shared_project.qrc │ │ │ ├── main.cpp │ │ │ ├── mainwindow.cpp │ │ │ ├── mainwindow.h │ │ │ ├── mainwindow.ui │ │ │ └── shared_project.pro │ │ └── shared │ │ │ ├── images │ │ │ └── bg_pattern.png │ │ │ ├── shared.qrc │ │ │ ├── shared.pri │ │ │ └── shared.h │ └── CMake │ │ ├── QtClassLibrary │ │ ├── QtClassLibrary.cpp │ │ ├── QtClassLibrary.h │ │ ├── qtclasslibrary_global.h │ │ ├── qt.cmake │ │ ├── CMakePresets.json │ │ └── CMakeLists.txt │ │ ├── QtWidgetsApplication │ │ ├── QtWidgetsApplication.qrc │ │ ├── main.cpp │ │ ├── QtWidgetsApplication.cpp │ │ ├── QtWidgetsApplication.h │ │ ├── qt.cmake │ │ ├── CMakePresets.json │ │ ├── QtWidgetsApplication.ui │ │ └── CMakeLists.txt │ │ ├── QtQuickApplication │ │ ├── qml.qrc │ │ ├── main.qml │ │ ├── qt.cmake │ │ ├── main.cpp │ │ └── CMakePresets.json │ │ ├── QtConsoleApplication │ │ ├── main.cpp │ │ ├── qt.cmake │ │ ├── CMakeLists.txt │ │ └── CMakePresets.json │ │ └── wiggly │ │ ├── main.cpp │ │ ├── dialog.h │ │ ├── CMakePresets.json │ │ ├── wigglywidget.h │ │ ├── dialog.cpp │ │ └── CMakeLists.txt ├── ProjectTemplates │ └── QtQuickApplication │ │ ├── qml.qrc │ │ ├── main.qml │ │ └── main.cpp ├── system │ ├── suite_installation │ │ ├── suite.conf │ │ ├── config.xml │ │ ├── tst_9_uninstall_verify │ │ │ └── test.py │ │ └── tst_8_uninstall │ │ │ └── test.py │ ├── suite_configuration │ │ ├── suite.conf │ │ ├── config.xml │ │ └── tst_new_project_no_qt │ │ │ └── test.py │ └── shared │ │ └── testsection.py ├── Test_QtVsTools.RegExpr │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Test_SubTokens.cs ├── Test_QtMsBuild.Build │ ├── Test_Eval.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Test_BigSolution.cs ├── Test_QtVsTools.Core │ └── Properties │ │ └── AssemblyInfo.cs ├── Test_QtMsBuild.Tasks │ └── Properties │ │ └── AssemblyInfo.cs └── Test_QtVsTools.PriorityQueue │ └── Properties │ └── AssemblyInfo.cs ├── QMakeFileReader ├── qmakefilereader.rc ├── qmakefilereader.ico ├── evaluator │ ├── README │ ├── evaluator.pri │ └── qmake_global.h ├── evalhandler.h ├── evalhandler.cpp └── qmakedataprovider.h ├── doc ├── images │ ├── minus.png │ ├── plus.png │ ├── ute.webp │ ├── build-32x32.png │ ├── demo-32x32.png │ ├── tutorials.png │ ├── ute-finish.webp │ ├── installation.png │ ├── ute-settings.webp │ ├── getting-started.png │ ├── settings-32x32.png │ ├── qtvstools-output.webp │ ├── qtvstools-projects.webp │ ├── qtvstools-qrc-editor.png │ ├── qtvstools-add-new-item.webp │ ├── qtvstools-qt-versions.webp │ ├── qtvstools-wizard-cmake.webp │ ├── qtvstools-wizard-test.webp │ ├── qtvstools-manage-extensions.webp │ ├── qtvstools-remote-debugging.webp │ ├── qtvstools-widgets-app-class.webp │ ├── qtcreator-start-qml-profiler.webp │ ├── qtvstools-addressbook-adddialog.png │ ├── qtvstools-open-solution-update.webp │ ├── qtvstools-qt-project-settings.webp │ ├── qtvstools-qtquick-app-modules.webp │ ├── qtvstools-widgets-app-modules.webp │ ├── qtvstools-wizard-test-finish.webp │ ├── qtvstools-addressbook-mainwindow.webp │ ├── qtvstools-convert-project-format.webp │ ├── qtvstools-legacy-project-filter.webp │ ├── qtvstools-msbuild-configurations.webp │ ├── qtvstools-options-qml-profiling.webp │ ├── qtvstools-options-qt-general-qd.webp │ ├── qtvstools-options-qt-general-ql.webp │ ├── qtvstools-qt-widget-class-wizard.webp │ ├── qtvstools-quick-addressbook-popup.png │ ├── qtvstools-options-qt-general-help.webp │ ├── qtvstools-options-qt-general-natvis.webp │ ├── qtvstools-options-qt-general-qmlls.webp │ ├── qtvstools-options-qt-general-style.webp │ ├── qtvstools-qt-translation-file-wizard.png │ ├── qtvstools-quick-addressbook-entries.png │ ├── qtvstools-quick-addressbook-watch.webp │ ├── qtvstools-pro-file-conversion-message.webp │ ├── qtvstools-pro-file-conversion-report.webp │ ├── qtvstools-project-properties-lrelease.webp │ ├── qtvstools-project-properties-lupdate.webp │ ├── qtvstools-quick-addressbook-mainwindow.png │ ├── qtvstools-quick-addressbook-step-into.webp │ ├── qtvstools-options-environment-keyboard.webp │ ├── qtvstools-options-qt-general-qrc-editor.webp │ ├── qtvstools-options-qt-general-qt-msbuild.webp │ ├── qtvstools-project-properties-debugging.webp │ ├── qtvstools-quick-addressbook-breakpoint.webp │ ├── qtvstools-options-qt-general-dev-releases.webp │ ├── qtvstools-options-qt-general-intellisense.webp │ ├── qtvstools-options-qt-general-notifications.webp │ ├── qtvstools-options-qt-general-qml-debugging.webp │ ├── qtvstools-quick-addressbook-breakpoint-hit.webp │ ├── qtvstools-new-project-item-qt-resource-file.webp │ ├── qtvstools-project-properties-qt-translation.webp │ └── qtvstools-quick-addressbook-enable-qml-debugging.webp ├── tutorial │ ├── AddressBook │ │ ├── AddressBook.rc │ │ ├── AddressBook.ico │ │ ├── adddialog.cpp │ │ ├── main.cpp │ │ ├── AddressBook.pro │ │ ├── adddialog.h │ │ └── addressbook.h │ └── QuickAddressBook │ │ ├── qmldir │ │ ├── qml.qrc │ │ ├── main.cpp │ │ ├── QuickAddressBookTypes │ │ └── AddressBookItem.qml │ │ └── QuickAddressBook.sln ├── qtvstools.qdocconf ├── config │ └── macros.qdocconf ├── qtvstools-online.qdocconf └── src │ └── externallinks.qdoc ├── vstools.pro ├── QtVsTools.Package ├── qt.ico ├── QtVsTools.ico ├── preview.png ├── Icons │ ├── prf32.png │ ├── pri32.png │ ├── pro32.png │ ├── qml32.png │ ├── qrc32.png │ ├── ts32.png │ └── ui32.png ├── Resources │ └── menuimages.png ├── QtVsTools.Snippets.pkgdef ├── Editors │ ├── IFileTypeSniffer.cs │ ├── QtResourceFileSniffer.cs │ ├── QtLinguistFileSniffer.cs │ ├── QtDesignerFileSniffer.cs │ └── DesignerSession.cs ├── Language │ └── LICENSE.APACHE ├── QtVsTools.Icons.pkgdef ├── QtVsTools.Qml.Debug.pkgdef └── QML │ ├── Debugging │ └── V4 │ │ └── Messages │ │ └── QmlDebugV4Connect.cs │ ├── Language │ ├── QmlLanguageClient.CustomMessage2.cs │ ├── QmlLanguageClient.BraceCompletionSessionProvider.cs │ └── Lsp │ │ └── Registration.cs │ ├── Parser │ └── QmlParserDiagnostics.cs │ └── QmlContentType.cs ├── QtVsTools.Core ├── QtVsTools.Core.ico ├── Resources │ ├── delete.png │ ├── newitem.png │ ├── delete_d.png │ └── newitem_d.png ├── MsBuild │ └── IVsMacroExpander.cs ├── Common │ ├── Utils.StreamData.cs │ ├── PunisherQueue.cs │ ├── SettingsAttribute.cs │ ├── Timestamp.cs │ └── LazyFactory.cs ├── ProjectConfigurationEventArgs.cs ├── FilesToList.cs ├── Version.cs ├── BuildConfig.cs ├── Resources.cs ├── QtPathsQuery.cs ├── QMakeQuery.cs └── VisualStudio │ └── DebuggerEvents.cs ├── QtVsTools.Wizards ├── Resources │ ├── Qt-logo-small.png │ └── QtProjectWizard.ico ├── Common │ ├── WizardResult.cs │ ├── UiClassInclusion.cs │ ├── WizardIntroPage.xaml.cs │ └── WizardWindow.xaml ├── Util │ ├── UiClassInclusionConverter.cs │ └── VCLanguageManagerValidationRule.cs └── ProjectWizard │ ├── Test │ └── TestPage.xaml.cs │ └── Library │ └── LibraryClassPage.xaml.cs ├── QtVsTools.TestAdapter ├── QtVsTools.TestAdapter.ico ├── SourceInfo.cs ├── QtTestSettingsProvider.cs ├── QtTestGlobalSettingsProvider.cs └── Resources.cs ├── .gitmodules ├── QtTmLanguage └── qt │ └── LICENSE ├── version.targets ├── VsQml ├── vsqml_global.h ├── astvisitor.h └── vsqmldebugclient.h ├── vstools.bat ├── QtMSBuild ├── QtMsBuild │ ├── idc │ │ ├── qtidc.props │ │ └── qt_import.props │ ├── qt_settings.targets │ ├── moc │ │ └── qt_import.props │ ├── rcc │ │ └── qt_import.props │ ├── uic │ │ └── qt_import.props │ ├── repc │ │ └── qt_import.props │ ├── deploy │ │ └── qt_import.props │ ├── translation │ │ └── qt_import.props │ ├── readme.md │ └── qml │ │ ├── qtqml.props │ │ ├── qt_import.props │ │ └── qtqml_static.props └── Tasks │ └── HostTranslatePaths_LinuxWSL_Error.cs ├── scripts └── vstools │ ├── startvs.cmd │ ├── error.cmd │ ├── startcmd.cmd │ ├── log_version.cmd │ └── install.cmd ├── .github └── ISSUE_TEMPLATE │ ├── feature.md │ └── bug.md ├── targetframework.props └── QtCppConfig.props /Templates/designer/plugin.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /Templates/console/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/empty/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/gui/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/gui/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/gui/stdafx.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Templates/lib/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/lib/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/lib/stdafx.h: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/quick/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/quick/stdafx.h: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/test/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/console/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/console/stdafx.h: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/designer/qt.cmake: -------------------------------------------------------------------------------- 1 | $cmake_qt_helper$ 2 | -------------------------------------------------------------------------------- /Templates/designer/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/designer/stdafx.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Templates/quick/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/server/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | -------------------------------------------------------------------------------- /Templates/server/stdafx.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Templates/empty/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/gui/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/lib/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/qmldir/qmldir: -------------------------------------------------------------------------------- 1 | MyQmlType 1.0 MyQmlType.qml 2 | -------------------------------------------------------------------------------- /Templates/quick/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/test/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/console/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /Templates/designer/CMakeUserPresets.json: -------------------------------------------------------------------------------- 1 | $cmake_user_presets$ 2 | -------------------------------------------------------------------------------- /QrcEditor/qrceditor.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "qrceditor.ico" 2 | -------------------------------------------------------------------------------- /Templates/lib/source.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | $classname$::$classname$() 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/StaticLib/Header.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void foobar(); 4 | -------------------------------------------------------------------------------- /QMakeFileReader/qmakefilereader.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "qmakefilereader.ico" 2 | -------------------------------------------------------------------------------- /Templates/gui/gui.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/gui/gui.ico -------------------------------------------------------------------------------- /Templates/lib/lib.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/lib/lib.ico -------------------------------------------------------------------------------- /Templates/qml/qml.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/qml/qml.ico -------------------------------------------------------------------------------- /doc/images/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/minus.png -------------------------------------------------------------------------------- /doc/images/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/plus.png -------------------------------------------------------------------------------- /doc/images/ute.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/ute.webp -------------------------------------------------------------------------------- /vstools.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | include(vstools.pri) 4 | include(doc/doc.pri) 5 | -------------------------------------------------------------------------------- /QrcEditor/qrceditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QrcEditor/qrceditor.ico -------------------------------------------------------------------------------- /Templates/server/server.rc: -------------------------------------------------------------------------------- 1 | 1 TYPELIB "$pro_name$.rc" 2 | 1 ICON DISCARDABLE "$pro_name$.ico" 3 | -------------------------------------------------------------------------------- /Templates/test/test.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/test/test.ico -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/AddressBook.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "AddressBook.ico" 2 | 3 | -------------------------------------------------------------------------------- /QtVsTools.Package/qt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/qt.ico -------------------------------------------------------------------------------- /Templates/empty/empty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/empty/empty.ico -------------------------------------------------------------------------------- /Templates/qmldir/qml.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/qmldir/qml.ico -------------------------------------------------------------------------------- /Templates/quick/quick.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/quick/quick.ico -------------------------------------------------------------------------------- /doc/images/build-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/build-32x32.png -------------------------------------------------------------------------------- /doc/images/demo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/demo-32x32.png -------------------------------------------------------------------------------- /doc/images/tutorials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/tutorials.png -------------------------------------------------------------------------------- /doc/images/ute-finish.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/ute-finish.webp -------------------------------------------------------------------------------- /Templates/gui/widget.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Templates/runsettings/qt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/runsettings/qt.ico -------------------------------------------------------------------------------- /Templates/server/server.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/server/server.ico -------------------------------------------------------------------------------- /Templates/widget/widget.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/widget/widget.ico -------------------------------------------------------------------------------- /doc/images/installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/installation.png -------------------------------------------------------------------------------- /doc/images/ute-settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/ute-settings.webp -------------------------------------------------------------------------------- /QtVsTools.Package/QtVsTools.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/QtVsTools.ico -------------------------------------------------------------------------------- /QtVsTools.Package/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/preview.png -------------------------------------------------------------------------------- /Templates/console/console.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/console/console.ico -------------------------------------------------------------------------------- /Templates/designer/designer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/designer/designer.ico -------------------------------------------------------------------------------- /Templates/qtclass/qtclass.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/qtclass/qtclass.ico -------------------------------------------------------------------------------- /Templates/resource/resource.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/resource/resource.ico -------------------------------------------------------------------------------- /doc/images/getting-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/getting-started.png -------------------------------------------------------------------------------- /doc/images/settings-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/settings-32x32.png -------------------------------------------------------------------------------- /QtVsTools.Core/QtVsTools.Core.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Core/QtVsTools.Core.ico -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/prf32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/prf32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/pri32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/pri32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/pro32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/pro32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/qml32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/qml32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/qrc32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/qrc32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/ts32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/ts32.png -------------------------------------------------------------------------------- /QtVsTools.Package/Icons/ui32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Icons/ui32.png -------------------------------------------------------------------------------- /Templates/resource/resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/qmake.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | SUBDIRS = project \ 3 | shared_project 4 | -------------------------------------------------------------------------------- /doc/images/qtvstools-output.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-output.webp -------------------------------------------------------------------------------- /QMakeFileReader/qmakefilereader.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QMakeFileReader/qmakefilereader.ico -------------------------------------------------------------------------------- /QtVsTools.Core/Resources/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Core/Resources/delete.png -------------------------------------------------------------------------------- /QtVsTools.Core/Resources/newitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Core/Resources/newitem.png -------------------------------------------------------------------------------- /Templates/mainwindow/mainwindow.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/mainwindow/mainwindow.ico -------------------------------------------------------------------------------- /doc/images/qtvstools-projects.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-projects.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qrc-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qrc-editor.png -------------------------------------------------------------------------------- /QtVsTools.Core/Resources/delete_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Core/Resources/delete_d.png -------------------------------------------------------------------------------- /QtVsTools.Core/Resources/newitem_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Core/Resources/newitem_d.png -------------------------------------------------------------------------------- /Templates/translation/translation.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/translation/translation.ico -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/QtProjectV100.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/QtProjectV200.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/QtProjectV300.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/QtProjectV301.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/QtProjectV302.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/QtProjectV303.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/QtProjectV304.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/images/qtvstools-add-new-item.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-add-new-item.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qt-versions.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qt-versions.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-wizard-cmake.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-wizard-cmake.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-wizard-test.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-wizard-test.webp -------------------------------------------------------------------------------- /Templates/widgetsclass/widgetsclass.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/widgetsclass/widgetsclass.ico -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/AddressBook.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/tutorial/AddressBook/AddressBook.ico -------------------------------------------------------------------------------- /QtVsTools.Package/Resources/menuimages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Package/Resources/menuimages.png -------------------------------------------------------------------------------- /Templates/designer/widget.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | $classname$::$classname$(QWidget *parent) 4 | : $baseclass$(parent) 5 | { 6 | } 7 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Tests/ProjectFormats/qmake/project/bg1.jpg -------------------------------------------------------------------------------- /doc/images/qtvstools-manage-extensions.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-manage-extensions.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-remote-debugging.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-remote-debugging.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-widgets-app-class.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-widgets-app-class.webp -------------------------------------------------------------------------------- /doc/tutorial/QuickAddressBook/qmldir: -------------------------------------------------------------------------------- 1 | AddressBookItem 1.0 AddressBookItem.qml 2 | NewAddressPopup 1.0 NewAddressPopup.qml 3 | -------------------------------------------------------------------------------- /QtVsTools.Package/QtVsTools.Snippets.pkgdef: -------------------------------------------------------------------------------- 1 | [$RootKey$\Languages\CodeExpansions\C/C++\Paths] 2 | "QtSnippets"="$PackageFolder$\Snippets" 3 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Resources/Qt-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Wizards/Resources/Qt-logo-small.png -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/BigProjectNNN.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/images/qtcreator-start-qml-profiler.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtcreator-start-qml-profiler.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-addressbook-adddialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-addressbook-adddialog.png -------------------------------------------------------------------------------- /doc/images/qtvstools-open-solution-update.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-open-solution-update.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qt-project-settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qt-project-settings.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qtquick-app-modules.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qtquick-app-modules.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-widgets-app-modules.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-widgets-app-modules.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-wizard-test-finish.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-wizard-test-finish.webp -------------------------------------------------------------------------------- /doc/qtvstools.qdocconf: -------------------------------------------------------------------------------- 1 | include(config/qtvstools-project.qdocconf) 2 | include($QT_INSTALL_DOCS/global/qt-html-templates-offline.qdocconf) 3 | -------------------------------------------------------------------------------- /QtVsTools.TestAdapter/QtVsTools.TestAdapter.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.TestAdapter/QtVsTools.TestAdapter.ico -------------------------------------------------------------------------------- /QtVsTools.Wizards/Resources/QtProjectWizard.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/QtVsTools.Wizards/Resources/QtProjectWizard.ico -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/QtClassLibrary.cpp: -------------------------------------------------------------------------------- 1 | #include "QtClassLibrary.h" 2 | 3 | QtClassLibrary::QtClassLibrary() 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /doc/images/qtvstools-addressbook-mainwindow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-addressbook-mainwindow.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-convert-project-format.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-convert-project-format.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-legacy-project-filter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-legacy-project-filter.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-msbuild-configurations.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-msbuild-configurations.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qml-profiling.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qml-profiling.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-qd.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-qd.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-ql.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-ql.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qt-widget-class-wizard.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qt-widget-class-wizard.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-popup.png -------------------------------------------------------------------------------- /Templates/dialogbuttonbottom/dialogbuttonbottom.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/dialogbuttonbottom/dialogbuttonbottom.ico -------------------------------------------------------------------------------- /Templates/dialogbuttonright/dialogbuttonright.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Templates/dialogbuttonright/dialogbuttonright.ico -------------------------------------------------------------------------------- /Templates/quick/qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.qml 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Tests/ProjectFormats/qmake/shared_project/bg1.jpg -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-help.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-help.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-natvis.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-natvis.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-qmlls.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-qmlls.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-style.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-style.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-qt-translation-file-wizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-qt-translation-file-wizard.png -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-entries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-entries.png -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-watch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-watch.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-pro-file-conversion-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-pro-file-conversion-message.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-pro-file-conversion-report.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-pro-file-conversion-report.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-project-properties-lrelease.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-project-properties-lrelease.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-project-properties-lupdate.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-project-properties-lupdate.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-mainwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-mainwindow.png -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-step-into.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-step-into.webp -------------------------------------------------------------------------------- /Templates/translation/translation.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared/images/bg_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/Tests/ProjectFormats/qmake/shared/images/bg_pattern.png -------------------------------------------------------------------------------- /doc/images/qtvstools-options-environment-keyboard.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-environment-keyboard.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-qrc-editor.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-qrc-editor.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-qt-msbuild.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-qt-msbuild.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-project-properties-debugging.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-project-properties-debugging.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-breakpoint.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-breakpoint.webp -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "QtMSBuild/QtMsBuild/vs-debugtools"] 2 | path = QtMSBuild/QtMsBuild/vs-debugtools 3 | url = https://code.qt.io/qt-labs/vs-debugtools.git 4 | -------------------------------------------------------------------------------- /Templates/console/main.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | int main(int argc, char *argv[]) 4 | { 5 | QCoreApplication app(argc, argv); 6 | 7 | return app.exec(); 8 | } 9 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/QtWidgetsApplication.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-dev-releases.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-dev-releases.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-intellisense.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-intellisense.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-notifications.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-options-qt-general-qml-debugging.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-options-qt-general-qml-debugging.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-breakpoint-hit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-breakpoint-hit.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-new-project-item-qt-resource-file.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-new-project-item-qt-resource-file.webp -------------------------------------------------------------------------------- /doc/images/qtvstools-project-properties-qt-translation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-project-properties-qt-translation.webp -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/project.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | bg1.jpg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Templates/lib/header.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "$saveglobal$_global.h" 4 | 5 | class $pro_lib_export$ $classname$ 6 | { 7 | public: 8 | $classname$(); 9 | }; 10 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared/shared.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/bg_pattern.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tests/ProjectTemplates/QtQuickApplication/qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.qml 4 | 5 | 6 | -------------------------------------------------------------------------------- /doc/images/qtvstools-quick-addressbook-enable-qml-debugging.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt-labs/vstools/HEAD/doc/images/qtvstools-quick-addressbook-enable-qml-debugging.webp -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtQuickApplication/qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.qml 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/QtProjectV200.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV200.h" 2 | 3 | QtProjectV200::QtProjectV200(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/QtProjectV300.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV300.h" 2 | 3 | QtProjectV300::QtProjectV300(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/QtProjectV301.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV301.h" 2 | 3 | QtProjectV301::QtProjectV301(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Templates/qtclass/source.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | $namespacebegin$$classname$::$classname$($signature$)$baseclasswithparent$ 4 | {} 5 | 6 | $classname$::~$classname$() 7 | {} 8 | $namespaceend$ 9 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/QtProjectV302.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV302.h" 2 | 3 | QtProjectV302::QtProjectV302(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/QtProjectV303.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV303.h" 2 | 3 | QtProjectV303::QtProjectV303(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/shared_project.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | bg1.jpg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtConsoleApplication/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char *argv[]) 4 | { 5 | QCoreApplication a(argc, argv); 6 | 7 | return a.exec(); 8 | } 9 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared/shared.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH += $$PWD 2 | 3 | SOURCES += \ 4 | $$PWD/shared.cpp 5 | 6 | HEADERS += \ 7 | $$PWD/shared.h 8 | 9 | RESOURCES += \ 10 | $$PWD/shared.qrc 11 | 12 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/StaticLib/StaticLib.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | void foobar() 5 | { 6 | } 7 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/QtProjectV100.pro: -------------------------------------------------------------------------------- 1 | QT += widgets 2 | HEADERS = QtProjectV100.h 3 | FORMS = QtProjectV100.ui 4 | RESOURCES = QtProjectV100.qrc 5 | SOURCES = QtProjectV100.cpp \ 6 | main.cpp 7 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/QtClassLibrary.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "qtclasslibrary_global.h" 4 | 5 | class QTCLASSLIBRARY_EXPORT QtClassLibrary 6 | { 7 | public: 8 | QtClassLibrary(); 9 | }; 10 | -------------------------------------------------------------------------------- /Templates/designer/widget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class $classname$ : public $baseclass$ 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | $classname$(QWidget *parent = nullptr); 11 | }; 12 | -------------------------------------------------------------------------------- /Templates/qtclass/header.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | $baseclassinclude$$namespacebegin$class $classname$ $baseclassdecl$ 4 | {$qobject$ 5 | public: 6 | $classname$($signature$); 7 | ~$classname$(); 8 | }; 9 | $namespaceend$ 10 | -------------------------------------------------------------------------------- /QtTmLanguage/qt/LICENSE: -------------------------------------------------------------------------------- 1 | Permission to copy, use, modify, sell and distribute this 2 | software is granted. This software is provided "as is" without 3 | express or implied warranty, and with no claim as to its 4 | suitability for any purpose. 5 | -------------------------------------------------------------------------------- /Templates/qml/NewFile.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Rectangle { 4 | width: 200 5 | height: 100 6 | color: "red" 7 | 8 | Text { 9 | anchors.centerIn: parent 10 | text: "Hello, World!" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/QtProjectV100.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV100.h" 2 | 3 | QtProjectV100::QtProjectV100(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | 9 | QtProjectV100::~QtProjectV100() 10 | {} 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/QtProjectV304.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV304.h" 2 | 3 | QtProjectV304::QtProjectV304(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | 9 | QtProjectV304::~QtProjectV304() 10 | {} 11 | -------------------------------------------------------------------------------- /Templates/server/server.def: -------------------------------------------------------------------------------- 1 | ; Declares the module parameters. 2 | 3 | EXPORTS 4 | DllCanUnloadNow PRIVATE 5 | DllGetClassObject PRIVATE 6 | DllRegisterServer PRIVATE 7 | DllUnregisterServer PRIVATE 8 | DumpIDL PRIVATE 9 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV200.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV200 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV300.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV300 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV301.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV301 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Templates/gui/main.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication app(argc, argv); 7 | $namespace$$classname$ window; 8 | window.show(); 9 | return app.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV100.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV100 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV302.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV302 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV303.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV303 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtProjectV304.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtProjectV304 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | MainWindow w; 9 | w.show(); 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /Templates/gui/widget.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | $namespacebegin$$classname$::$classname$(QWidget *parent) 4 | : $baseclass$(parent)$new$ 5 | { 6 | $member$$operator$setupUi(this); 7 | } 8 | 9 | $classname$::~$classname$() 10 | {$delete$} 11 | $namespaceend$ 12 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | MainWindow w; 9 | w.show(); 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /Templates/widgetsclass/widget.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | $namespacebegin$$classname$::$classname$(QWidget *parent) 4 | : $baseclass$(parent)$new$ 5 | { 6 | $member$$operator$setupUi(this); 7 | } 8 | 9 | $classname$::~$classname$() 10 | {$delete$} 11 | $namespaceend$ 12 | -------------------------------------------------------------------------------- /doc/config/macros.qdocconf: -------------------------------------------------------------------------------- 1 | macro.gui = "\\b" 2 | macro.key = "\\b" 3 | macro.QC = "Qt Creator" 4 | macro.QD = "Qt Widgets Designer" 5 | macro.QL = "Qt Linguist" 6 | macro.QOI = "Qt Online Installer" 7 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/QtClassLibrary/QtClassLibrary.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include "QtClassLibrary.h" 5 | 6 | QtClassLibrary::QtClassLibrary() 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/main.cpp: -------------------------------------------------------------------------------- 1 | #include "QtWidgetsApplication.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | QtWidgetsApplication w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Tests/system/suite_installation/suite.conf: -------------------------------------------------------------------------------- 1 | AUT=devenv 2 | ENVVARS=envvars 3 | IMPLICITAUTSTART=0 4 | LANGUAGE=Python 5 | OBJECTMAPSTYLE=script 6 | TEST_CASES=tst_0_reset_testinstance tst_1_install_from_marketplace tst_2_install_verify tst_8_uninstall tst_9_uninstall_verify 7 | VERSION=3 8 | WRAPPERS=Windows 9 | -------------------------------------------------------------------------------- /doc/tutorial/QuickAddressBook/qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.qml 4 | qmldir 5 | QuickAddressBookTypes/AddressBookItem.qml 6 | QuickAddressBookTypes/NewAddressPopup.qml 7 | 8 | 9 | -------------------------------------------------------------------------------- /Templates/lib/global.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifndef BUILD_STATIC 6 | # if defined($pro_lib_define$) 7 | # define $pro_lib_export$ Q_DECL_EXPORT 8 | # else 9 | # define $pro_lib_export$ Q_DECL_IMPORT 10 | # endif 11 | #else 12 | # define $pro_lib_export$ 13 | #endif 14 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/QtWidgetsApplication.cpp: -------------------------------------------------------------------------------- 1 | #include "QtWidgetsApplication.h" 2 | 3 | QtWidgetsApplication::QtWidgetsApplication(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | 9 | QtWidgetsApplication::~QtWidgetsApplication() 10 | {} 11 | -------------------------------------------------------------------------------- /QMakeFileReader/evaluator/README: -------------------------------------------------------------------------------- 1 | This is a copy of qmake's parser and evaluator from qmake/library 2 | directory in the qtbase repository at git://gitorious.org/qt/qtbase.git. 3 | It has been taken at 5e525d283d308fe462e83955996fc53d80465c1b. 4 | 5 | If you do changes to these files, please make sure they are upstreamed! 6 | 7 | -------------------------------------------------------------------------------- /Tests/system/suite_configuration/suite.conf: -------------------------------------------------------------------------------- 1 | AUT=devenv 2 | ENVVARS=envvars 3 | IMPLICITAUTSTART=0 4 | LANGUAGE=Python 5 | OBJECTMAPSTYLE=script 6 | TEST_CASES=tst_add_remove_qt_versions tst_debug tst_new_project_defaults tst_new_project_edit tst_new_project_file_creation tst_new_project_no_qt 7 | VERSION=3 8 | WRAPPERS=Windows 9 | -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/adddialog.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: BSD-3-Clause-Clear 3 | 4 | #include "adddialog.h" 5 | 6 | AddDialog::AddDialog(QWidget *parent) 7 | : QDialog(parent) 8 | { 9 | setupUi(this); 10 | } 11 | 12 | AddDialog::~AddDialog() 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/QtProjectV200.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV200.h" 5 | 6 | class QtProjectV200 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV200(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::QtProjectV200Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/QtProjectV300.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV300.h" 5 | 6 | class QtProjectV300 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV300(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::QtProjectV300Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/QtProjectV301.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV301.h" 5 | 6 | class QtProjectV301 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV301(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::QtProjectV301Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/mainwindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include "ui_mainwindow.h" 3 | 4 | MainWindow::MainWindow(QWidget *parent) 5 | : QMainWindow(parent) 6 | , ui(new Ui::MainWindow) 7 | { 8 | ui->setupUi(this); 9 | } 10 | 11 | MainWindow::~MainWindow() 12 | { 13 | delete ui; 14 | } 15 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/QtProjectV302.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV302.h" 5 | 6 | class QtProjectV302 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV302(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::QtProjectV302Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/QtProjectV303.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV303.h" 5 | 6 | class QtProjectV303 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV303(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::QtProjectV303Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: BSD-3-Clause-Clear 3 | 4 | #include 5 | #include "addressbook.h" 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | QApplication a(argc, argv); 10 | AddressBook w; 11 | w.show(); 12 | return a.exec(); 13 | } 14 | -------------------------------------------------------------------------------- /Templates/server/source.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | #include 4 | 5 | $classname$::$classname$(QWidget *parent) 6 | : QWidget(parent) 7 | { 8 | ui.setupUi(this); 9 | } 10 | 11 | QAXFACTORY_DEFAULT($classname$, 12 | "{$guid1$}", 13 | "{$guid2$}", 14 | "{$guid3$}", 15 | "{$guid4$}", 16 | "{$guid5$}" 17 | ) 18 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/QtClassLibrary/QtClass.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include "QtClass.h" 5 | 6 | QtClass::QtClass(QObject *parent) 7 | : QObject(parent) 8 | { 9 | } 10 | 11 | QtClass::~QtClass() 12 | { 13 | } 14 | -------------------------------------------------------------------------------- /QtVsTools.Core/MsBuild/IVsMacroExpander.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Core.MsBuild 5 | { 6 | public interface IVsMacroExpander 7 | { 8 | string ExpandString(string stringToExpand); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /QtVsTools.Package/Editors/IFileTypeSniffer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Package.Editors 5 | { 6 | public interface IFileTypeSniffer 7 | { 8 | bool IsSupportedFile(string filePath); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Common/WizardResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Wizards.Common 5 | { 6 | public enum WizardResult 7 | { 8 | Canceled, 9 | Finished, 10 | Exception 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Templates/server/header.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "$ui_hdr$" 7 | 8 | class $classname$ : public QWidget, public QAxBindable 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | $classname$(QWidget *parent = nullptr); 14 | 15 | private: 16 | Ui::$classname$Class ui; 17 | }; 18 | -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/AddressBook.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | INCLUDEPATH += . 3 | TARGET = AddressBook 4 | QT += core gui widgets 5 | 6 | HEADERS += adddialog.h \ 7 | addressbook.h 8 | SOURCES += main.cpp \ 9 | adddialog.cpp \ 10 | addressbook.cpp 11 | 12 | RC_FILE += AddressBook.rc 13 | FORMS += adddialog.ui addressbook.ui 14 | -------------------------------------------------------------------------------- /version.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)\version.log').Trim()) 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/QtProjectV100.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV100.h" 5 | 6 | class QtProjectV100 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV100(QWidget *parent = nullptr); 12 | ~QtProjectV100(); 13 | 14 | private: 15 | Ui::QtProjectV100Class ui; 16 | }; 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/QtProjectV304.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtProjectV304.h" 5 | 6 | class QtProjectV304 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtProjectV304(QWidget *parent = nullptr); 12 | ~QtProjectV304(); 13 | 14 | private: 15 | Ui::QtProjectV304Class ui; 16 | }; 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/qtclasslibrary_global.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifndef BUILD_STATIC 6 | # if defined(QTCLASSLIBRARY_LIB) 7 | # define QTCLASSLIBRARY_EXPORT Q_DECL_EXPORT 8 | # else 9 | # define QTCLASSLIBRARY_EXPORT Q_DECL_IMPORT 10 | # endif 11 | #else 12 | # define QTCLASSLIBRARY_EXPORT 13 | #endif 14 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/QtClassLibrary/QtClassLibrary.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include "qtclasslibrary_global.h" 7 | 8 | class QTCLASSLIBRARY_EXPORT QtClassLibrary 9 | { 10 | public: 11 | QtClassLibrary(); 12 | }; 13 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Common/UiClassInclusion.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Wizards.Common 5 | { 6 | public enum UiClassInclusion 7 | { 8 | Member, 9 | MemberPointer, 10 | MultipleInheritance 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/BigClassNNN.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include "bigprojectnnn_global.h" 7 | 8 | class BIGPROJECTNNN_EXPORT BigClassNNN 9 | { 10 | public: 11 | BigClassNNN(); 12 | int BigMethod(); 13 | }; 14 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/BigProjectQtClassNNN.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include "BigProjectQtClassNNN.h" 5 | 6 | BigProjectQtClassNNN::BigProjectQtClassNNN(QWidget *parent) 7 | : QMainWindow(parent) 8 | { 9 | ui.setupUi(this); 10 | } 11 | -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/adddialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: BSD-3-Clause-Clear 3 | 4 | #pragma once 5 | 6 | #include 7 | #include "ui_adddialog.h" 8 | 9 | class AddDialog : public QDialog, public Ui::AddDialog 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | AddDialog(QWidget *parent = nullptr); 15 | ~AddDialog(); 16 | }; 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause 3 | 4 | #include "dialog.h" 5 | 6 | #include 7 | 8 | int main(int argc, char *argv[]) 9 | { 10 | QApplication app(argc, argv); 11 | 12 | Dialog dialog; 13 | dialog.show(); 14 | 15 | return app.exec(); 16 | } 17 | -------------------------------------------------------------------------------- /Templates/widgetsclass/widget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include <$baseclass$> 4 | #include "$ui_hdr$" 5 | $forward_declare_class$ 6 | $namespacebegin$class $classname$ : public $baseclass$$multiple_inheritance$ 7 | {$qobject$ 8 | public: 9 | $classname$(QWidget *parent = nullptr); 10 | ~$classname$(); 11 | 12 | private: 13 | $ui_classname$ $asterisk$$member$$semicolon$ 14 | }; 15 | $namespaceend$ 16 | -------------------------------------------------------------------------------- /VsQml/vsqml_global.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #ifndef BUILD_STATIC 7 | # if defined(VSQML_LIB) 8 | # define VSQML_EXPORT __declspec(dllexport) 9 | # else 10 | # define VSQML_EXPORT __declspec(dllimport) 11 | # endif 12 | #else 13 | # define VSQML_EXPORT 14 | #endif 15 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/dialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause 3 | 4 | #ifndef DIALOG_H 5 | #define DIALOG_H 6 | 7 | #include 8 | 9 | //! [0] 10 | class Dialog : public QDialog 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | explicit Dialog(QWidget *parent = nullptr); 16 | }; 17 | //! [0] 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Templates/gui/widget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "$ui_hdr$" 5 | $forward_declare_class$ 6 | $namespacebegin$class $classname$ : public $baseclass$$multiple_inheritance$ 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | $classname$(QWidget *parent = nullptr); 12 | ~$classname$(); 13 | 14 | private: 15 | $ui_classname$ $asterisk$$member$$semicolon$ 16 | }; 17 | $namespaceend$ 18 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/QtWidgetsApplication.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_QtWidgetsApplication.h" 5 | 6 | class QtWidgetsApplication : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | QtWidgetsApplication(QWidget *parent = nullptr); 12 | ~QtWidgetsApplication(); 13 | 14 | private: 15 | Ui::QtWidgetsApplicationClass ui; 16 | }; 17 | -------------------------------------------------------------------------------- /QtVsTools.Core/Common/Utils.StreamData.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Core.Common 5 | { 6 | public sealed class StreamData 7 | { 8 | public byte[] Bytes { get; set; } 9 | public int Offset { get; set; } 10 | public int Count { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/mainwindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include "ui_mainwindow.h" 3 | 4 | MainWindow::MainWindow(QWidget *parent) 5 | : QMainWindow(parent) 6 | , ui(new Ui::MainWindow) 7 | , windowName(AnotherFancyStringClass("qmake project")) 8 | { 9 | ui->setupUi(this); 10 | setWindowTitle(windowName); 11 | } 12 | 13 | MainWindow::~MainWindow() 14 | { 15 | delete ui; 16 | } 17 | -------------------------------------------------------------------------------- /QtVsTools.TestAdapter/SourceInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.TestAdapter 5 | { 6 | internal class SourceInfo 7 | { 8 | public string SymbolName { get; set; } 9 | public int LineNumber { get; set; } 10 | public string SourceFile { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /QrcEditor/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include "qrceditor.h" 5 | #include "mainwindow.h" 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | QApplication app(argc, argv); 10 | MainWindow mw; 11 | mw.show(); 12 | if (argc == 2) 13 | mw.openFile(argv[1]); 14 | return app.exec(); 15 | } 16 | -------------------------------------------------------------------------------- /Tests/system/suite_configuration/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | true 8 | true 9 | true 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Tests/system/suite_installation/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | true 8 | true 9 | true 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /QrcEditor/shared/qrceditor.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH *= $$PWD 2 | DEPENDPATH *= $$PWD 3 | 4 | QT *= xml 5 | 6 | # Input 7 | SOURCES += \ 8 | $$PWD/resourcefile.cpp \ 9 | $$PWD/resourceview.cpp \ 10 | $$PWD/qrceditor.cpp \ 11 | $$PWD/undocommands.cpp 12 | 13 | HEADERS += \ 14 | $$PWD/resourcefile_p.h \ 15 | $$PWD/resourceview.h \ 16 | $$PWD/qrceditor.h \ 17 | $$PWD/undocommands_p.h 18 | 19 | FORMS += $$PWD/qrceditor.ui 20 | -------------------------------------------------------------------------------- /Templates/quick/main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Window 2.2 3 | 4 | Window { 5 | visible: true 6 | width: 640 7 | height: 480 8 | title: "$projectname$" 9 | Text { 10 | anchors.fill: parent 11 | horizontalAlignment: Text.AlignHCenter 12 | verticalAlignment: Text.AlignVCenter 13 | font.bold: true 14 | font.pointSize: 42 15 | text: "Hello World!" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/QtClassLibrary/QtClass.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | #include "qtclasslibrary_global.h" 6 | 7 | #include 8 | 9 | class QTCLASSLIBRARY_EXPORT QtClass : public QObject 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | QtClass(QObject *parent); 15 | ~QtClass(); 16 | }; 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include 5 | 6 | QT_BEGIN_NAMESPACE 7 | namespace Ui { class MainWindow; } 8 | QT_END_NAMESPACE 9 | 10 | class MainWindow : public QMainWindow 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | MainWindow(QWidget *parent = nullptr); 16 | ~MainWindow(); 17 | 18 | private: 19 | Ui::MainWindow *ui; 20 | }; 21 | #endif // MAINWINDOW_H 22 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Common/WizardIntroPage.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Wizards.Common 5 | { 6 | public partial class WizardIntroPage : WizardPage 7 | { 8 | public WizardIntroPage() 9 | { 10 | InitializeComponent(); 11 | DataContext = this; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Tests/ProjectTemplates/QtQuickApplication/main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Window 2.2 3 | 4 | Window { 5 | visible: true 6 | width: 640 7 | height: 480 8 | title: "QtQuickApplication" 9 | Text { 10 | anchors.fill: parent 11 | horizontalAlignment: Text.AlignHCenter 12 | verticalAlignment: Text.AlignVCenter 13 | font.bold: true 14 | font.pointSize: 42 15 | text: "Hello World!" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtQuickApplication/main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Window 2.2 3 | 4 | Window { 5 | visible: true 6 | width: 640 7 | height: 480 8 | title: "QtQuickApplication" 9 | Text { 10 | anchors.fill: parent 11 | horizontalAlignment: Text.AlignHCenter 12 | verticalAlignment: Text.AlignVCenter 13 | font.bold: true 14 | font.pointSize: 42 15 | text: "Hello World!" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/qt.cmake: -------------------------------------------------------------------------------- 1 | if(QT_VERSION VERSION_LESS 6.3) 2 | macro(qt_standard_project_setup) 3 | set(CMAKE_AUTOMOC ON) 4 | set(CMAKE_AUTOUIC ON) 5 | endmacro() 6 | endif() 7 | 8 | if(QT_VERSION VERSION_LESS 6.0) 9 | macro(qt_add_executable name) 10 | if(ANDROID) 11 | add_library(name SHARED ${ARGN}) 12 | else() 13 | add_executable(${ARGV}) 14 | endif() 15 | endmacro() 16 | endif() 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtConsoleApplication/qt.cmake: -------------------------------------------------------------------------------- 1 | if(QT_VERSION VERSION_LESS 6.3) 2 | macro(qt_standard_project_setup) 3 | set(CMAKE_AUTOMOC ON) 4 | set(CMAKE_AUTOUIC ON) 5 | endmacro() 6 | endif() 7 | 8 | if(QT_VERSION VERSION_LESS 6.0) 9 | macro(qt_add_executable name) 10 | if(ANDROID) 11 | add_library(name SHARED ${ARGN}) 12 | else() 13 | add_executable(${ARGV}) 14 | endif() 15 | endmacro() 16 | endif() 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtQuickApplication/qt.cmake: -------------------------------------------------------------------------------- 1 | if(QT_VERSION VERSION_LESS 6.3) 2 | macro(qt_standard_project_setup) 3 | set(CMAKE_AUTOMOC ON) 4 | set(CMAKE_AUTOUIC ON) 5 | endmacro() 6 | endif() 7 | 8 | if(QT_VERSION VERSION_LESS 6.0) 9 | macro(qt_add_executable name) 10 | if(ANDROID) 11 | add_library(name SHARED ${ARGN}) 12 | else() 13 | add_executable(${ARGV}) 14 | endif() 15 | endmacro() 16 | endif() 17 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/qt.cmake: -------------------------------------------------------------------------------- 1 | if(QT_VERSION VERSION_LESS 6.3) 2 | macro(qt_standard_project_setup) 3 | set(CMAKE_AUTOMOC ON) 4 | set(CMAKE_AUTOUIC ON) 5 | endmacro() 6 | endif() 7 | 8 | if(QT_VERSION VERSION_LESS 6.0) 9 | macro(qt_add_executable name) 10 | if(ANDROID) 11 | add_library(name SHARED ${ARGN}) 12 | else() 13 | add_executable(${ARGV}) 14 | endif() 15 | endmacro() 16 | endif() 17 | -------------------------------------------------------------------------------- /QtVsTools.Core/ProjectConfigurationEventArgs.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | 6 | namespace QtVsTools.Core 7 | { 8 | public class ProjectConfigurationEventArgs : EventArgs 9 | { 10 | public string ProjectPath { get; set; } 11 | public bool IsCMakeProject { get; set; } 12 | public string ConfigurationName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Tests/system/shared/testsection.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 The Qt Company Ltd. 2 | # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | # -*- coding: utf-8 -*- 5 | 6 | import test 7 | 8 | class TestSection: 9 | 10 | def __init__(self, description): 11 | self.description = description 12 | 13 | def __enter__(self): 14 | test.startSection(self.description) 15 | 16 | def __exit__(self, _, __, ___): 17 | test.endSection() 18 | -------------------------------------------------------------------------------- /QtVsTools.Core/FilesToList.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Core 5 | { 6 | public enum FilesToList 7 | { 8 | FL_Resources = 1, 9 | FL_CppFiles = 2, 10 | FL_HFiles = 3, 11 | FL_UiFiles = 4, 12 | FL_Generated = 5, 13 | FL_Translation = 6, 14 | FL_WinResource = 7, 15 | FL_QmlFiles = 8 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/bigprojectnnn_global.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #ifndef BUILD_STATIC 9 | # if defined(BIGPROJECTNNN_LIB) 10 | # define BIGPROJECTNNN_EXPORT Q_DECL_EXPORT 11 | # else 12 | # define BIGPROJECTNNN_EXPORT Q_DECL_IMPORT 13 | # endif 14 | #else 15 | # define BIGPROJECTNNN_EXPORT 16 | #endif 17 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/QtClassLibrary/qtclasslibrary_global.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #ifndef BUILD_STATIC 9 | # if defined(QTCLASSLIBRARY_LIB) 10 | # define QTCLASSLIBRARY_EXPORT Q_DECL_EXPORT 11 | # else 12 | # define QTCLASSLIBRARY_EXPORT Q_DECL_IMPORT 13 | # endif 14 | #else 15 | # define QTCLASSLIBRARY_EXPORT 16 | #endif 17 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/BigProjectQtClassNNN.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include 7 | #include "ui_BigProjectNNN.h" 8 | 9 | class BigProjectQtClassNNN : public QMainWindow 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | BigProjectQtClassNNN(QWidget *parent = nullptr); 15 | 16 | private: 17 | Ui::BigProjectNNNUi ui; 18 | }; 19 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include 5 | #include "shared.h" 6 | 7 | QT_BEGIN_NAMESPACE 8 | namespace Ui { class MainWindow; } 9 | QT_END_NAMESPACE 10 | 11 | class MainWindow : public QMainWindow 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | MainWindow(QWidget *parent = nullptr); 17 | ~MainWindow(); 18 | 19 | private: 20 | Ui::MainWindow *ui; 21 | AnotherFancyStringClass windowName; 22 | }; 23 | #endif // MAINWINDOW_H 24 | -------------------------------------------------------------------------------- /vstools.bat: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | @ECHO OFF 5 | SETLOCAL 6 | 7 | SET SCRIPT=%~n0 8 | SET SCRIPTLIB=%CD%\scripts\%SCRIPT% 9 | 10 | CALL %SCRIPTLIB%\globals.cmd 11 | 12 | CALL %SCRIPTLIB%\args.cmd %* 13 | IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% 14 | 15 | CALL %SCRIPTLIB%\validate.cmd 16 | IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% 17 | 18 | CALL %SCRIPTLIB%\vs_versions.cmd 19 | EXIT /B %ERRORLEVEL% 20 | -------------------------------------------------------------------------------- /Templates/quick/main.cpp: -------------------------------------------------------------------------------- 1 | $include$ 2 | 3 | int main(int argc, char *argv[]) 4 | { 5 | #if defined(Q_OS_WIN) && QT_VERSION_CHECK(5, 6, 0) <= QT_VERSION && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 6 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 7 | #endif 8 | 9 | QGuiApplication app(argc, argv); 10 | 11 | QQmlApplicationEngine engine; 12 | engine.load(QUrl(QStringLiteral("qrc:/qt/qml/$qml_prefix$/main.qml"))); 13 | if (engine.rootObjects().isEmpty()) 14 | return -1; 15 | 16 | return app.exec(); 17 | } 18 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtQuickApplication/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | #if defined(Q_OS_WIN) 7 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 8 | #endif 9 | 10 | QGuiApplication app(argc, argv); 11 | 12 | QQmlApplicationEngine engine; 13 | engine.load(QUrl(QStringLiteral("qrc:/qt/qml/qtquickapplication/main.qml"))); 14 | if (engine.rootObjects().isEmpty()) 15 | return -1; 16 | 17 | return app.exec(); 18 | } 19 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/idc/qtidc.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | false 9 | 1.0 10 | false 11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/tutorial/AddressBook/addressbook.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: BSD-3-Clause-Clear 3 | 4 | #pragma once 5 | 6 | #include 7 | #include "ui_addressbook.h" 8 | 9 | class AddressBook : public QWidget 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | AddressBook(QWidget *parent = 0); 15 | ~AddressBook(); 16 | 17 | private: 18 | Ui::AddressBookClass ui; 19 | 20 | private slots: 21 | void on_deleteButton_clicked(); 22 | void on_addButton_clicked(); 23 | void on_addressList_currentItemChanged(); 24 | }; 25 | -------------------------------------------------------------------------------- /QMakeFileReader/evaluator/evaluator.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH *= $$PWD 2 | DEPENDPATH *= $$PWD 3 | 4 | INCLUDEPATH += \ 5 | $$QMAKE_PARSER_DIR 6 | 7 | HEADERS += \ 8 | $$PWD/ioutils.h \ 9 | $$PWD/proitems.h \ 10 | $$PWD/qmakeevaluator.h \ 11 | $$PWD/qmakeevaluator_p.h \ 12 | $$PWD/qmakeglobals.h \ 13 | $$PWD/qmakeparser.h \ 14 | $$PWD/qmake_global.h 15 | 16 | SOURCES += \ 17 | $$PWD/ioutils.cpp \ 18 | $$PWD/proitems.cpp \ 19 | $$PWD/qmakebuiltins.cpp \ 20 | $$PWD/qmakeevaluator.cpp \ 21 | $$PWD/qmakeglobals.cpp \ 22 | $$PWD/qmakeparser.cpp 23 | -------------------------------------------------------------------------------- /QtVsTools.Core/Version.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | /* 5 | <#@output extension="tt.cs" #> 6 | <#@include file="$(SolutionDir)\version.tt" #> 7 | <#=WARNING_GENERATED_FILE#> 8 | */ 9 | 10 | namespace QtVsTools.Core 11 | { 12 | public static class Version 13 | { 14 | public const string PRODUCT_VERSION = "<#=QT_VS_TOOLS_VERSION_MANIFEST#>"; 15 | public const string USER_VERSION = "<#=QT_VS_TOOLS_VERSION_USER#>"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Templates/server/widget.ui: -------------------------------------------------------------------------------- 1 | 2 | $classname$Class 3 | 4 | 5 | $classname$Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 482 13 | 14 | 15 | 16 | $classname$ 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /scripts/vstools/startvs.cmd: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 | ::startvs.cmd 6 | :: * Opens the vstools solution in the selected instance of VS 7 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 | 9 | %##########################% 10 | %##% %BOLD%Starting Visual Studio...%RESET% 11 | %##########################% 12 | devenv vstools.sln 13 | -------------------------------------------------------------------------------- /scripts/vstools/error.cmd: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 | ::error.cmd 6 | :: * Print error message to STDERR 7 | :: * Preserves %ERRORLEVEL% passed as %1 argument 8 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 | 10 | ECHO. 11 | %##########################% 12 | %##% %BOLD%%RED%%~2%RESET% 1>&2 13 | %##########################% 14 | EXIT /B %1 15 | -------------------------------------------------------------------------------- /Templates/widget/widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Form 6 | 7 | 8 | Form 9 | 10 | 11 | 12 | 0 13 | 0 14 | 400 15 | 300 16 | 17 | 18 | 19 | Form 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/idc/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | $(QtMsBuildProps); 10 | $(MSBuildThisFileDirectory)qtidc.props 11 | 12 | 13 | $(QtMsBuildTargets); 14 | $(MSBuildThisFileDirectory)qtidc.targets 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Templates/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Test) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | $sourcefilename$ 18 | ) 19 | 20 | qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) 21 | 22 | target_link_libraries(${PROJECT_NAME} 23 | PUBLIC 24 | $cmake_qt_libs$ 25 | ) 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "hidden": true, 6 | "name": "Qt", 7 | "cacheVariables": { 8 | "CMAKE_PREFIX_PATH": "$env{QTDIR}" 9 | }, 10 | "environment": { 11 | "PATH": "$penv{PATH};$env{QTDIR}/bin" 12 | }, 13 | "vendor": { 14 | "qt-project.org/Qt": { 15 | "checksum": "Sp19WUpde73JS7nK33HZMqVZTyI=" 16 | } 17 | } 18 | } 19 | ], 20 | "vendor": { 21 | "qt-project.org/Presets": { 22 | "checksum": "+knLrtcP3xTAxZGDu4uUoEIBvBs=" 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Tests/ProjectTemplates/QtQuickApplication/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | #if defined(Q_OS_WIN) && QT_VERSION_CHECK(5, 6, 0) <= QT_VERSION && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 7 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 8 | #endif 9 | 10 | QGuiApplication app(argc, argv); 11 | 12 | QQmlApplicationEngine engine; 13 | engine.load(QUrl(QStringLiteral("qrc:/qt/qml/qtquickapplication/main.qml"))); 14 | if (engine.rootObjects().isEmpty()) 15 | return -1; 16 | 17 | return app.exec(); 18 | } 19 | -------------------------------------------------------------------------------- /scripts/vstools/startcmd.cmd: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 | ::startvs.cmd 6 | :: * Start a command prompt with the current environment 7 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 | 9 | %##% %BOLD%Starting command prompt...%RESET% 10 | %##########################% 11 | START %COMSPEC% /K "PROMPT $E[90m[%VS_VERSION%]$S$E[0m$E[1m%VCVARS_ARCH%$E[0m$_$P$G" 12 | -------------------------------------------------------------------------------- /QtVsTools.Package/Language/LICENSE.APACHE: -------------------------------------------------------------------------------- 1 | Copyright 2016 Mads Kristensen 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "hidden": true, 6 | "name": "Qt", 7 | "cacheVariables": { 8 | "CMAKE_PREFIX_PATH": "$env{QTDIR}" 9 | }, 10 | "environment": { 11 | "PATH": "$penv{PATH};$env{QTDIR}/bin" 12 | }, 13 | "vendor": { 14 | "qt-project.org/Qt": { 15 | "checksum": "Sp19WUpde73JS7nK33HZMqVZTyI=" 16 | } 17 | } 18 | } 19 | ], 20 | "vendor": { 21 | "qt-project.org/Presets": { 22 | "checksum": "+knLrtcP3xTAxZGDu4uUoEIBvBs=" 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtQuickApplication/CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "hidden": true, 6 | "name": "Qt", 7 | "cacheVariables": { 8 | "CMAKE_PREFIX_PATH": "$env{QTDIR}" 9 | }, 10 | "environment": { 11 | "PATH": "$penv{PATH};$env{QTDIR}/bin" 12 | }, 13 | "vendor": { 14 | "qt-project.org/Qt": { 15 | "checksum": "Sp19WUpde73JS7nK33HZMqVZTyI=" 16 | } 17 | } 18 | } 19 | ], 20 | "vendor": { 21 | "qt-project.org/Presets": { 22 | "checksum": "+knLrtcP3xTAxZGDu4uUoEIBvBs=" 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtConsoleApplication/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project(QtConsoleApplication LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | Core 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | main.cpp 18 | ) 19 | 20 | qt_add_executable(QtConsoleApplication ${PROJECT_SOURCES}) 21 | 22 | target_link_libraries(QtConsoleApplication 23 | PUBLIC 24 | Qt::Core 25 | ) 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtConsoleApplication/CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "hidden": true, 6 | "name": "Qt", 7 | "cacheVariables": { 8 | "CMAKE_PREFIX_PATH": "$env{QTDIR}" 9 | }, 10 | "environment": { 11 | "PATH": "$penv{PATH};$env{QTDIR}/bin" 12 | }, 13 | "vendor": { 14 | "qt-project.org/Qt": { 15 | "checksum": "Sp19WUpde73JS7nK33HZMqVZTyI=" 16 | } 17 | } 18 | } 19 | ], 20 | "vendor": { 21 | "qt-project.org/Presets": { 22 | "checksum": "+knLrtcP3xTAxZGDu4uUoEIBvBs=" 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "hidden": true, 6 | "name": "Qt", 7 | "cacheVariables": { 8 | "CMAKE_PREFIX_PATH": "$env{QTDIR}" 9 | }, 10 | "environment": { 11 | "PATH": "$penv{PATH};$env{QTDIR}/bin" 12 | }, 13 | "vendor": { 14 | "qt-project.org/Qt": { 15 | "checksum": "Sp19WUpde73JS7nK33HZMqVZTyI=" 16 | } 17 | } 18 | } 19 | ], 20 | "vendor": { 21 | "qt-project.org/Presets": { 22 | "checksum": "+knLrtcP3xTAxZGDu4uUoEIBvBs=" 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Templates/console/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | main.cpp 18 | ) 19 | 20 | qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) 21 | 22 | target_link_libraries(${PROJECT_NAME} 23 | PUBLIC 24 | $cmake_qt_libs$ 25 | ) 26 | $cmake_precompile_headers$ 27 | -------------------------------------------------------------------------------- /doc/tutorial/QuickAddressBook/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include 5 | #include 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | #if defined(Q_OS_WIN) 10 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 11 | #endif 12 | 13 | QGuiApplication app(argc, argv); 14 | 15 | QQmlApplicationEngine engine; 16 | engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 17 | if (engine.rootObjects().isEmpty()) 18 | return -1; 19 | 20 | return app.exec(); 21 | } 22 | -------------------------------------------------------------------------------- /Templates/widgetsclass/widget.ui: -------------------------------------------------------------------------------- 1 | 2 | $classname$Class 3 | 4 | 5 | $classname$Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | $classname$ 17 | $centralwidget$ 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/mainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Templates/empty/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) 17 | 18 | set_target_properties(${PROJECT_NAME} 19 | PROPERTIES 20 | WIN32_EXECUTABLE TRUE 21 | ) 22 | 23 | target_link_libraries(${PROJECT_NAME} 24 | PUBLIC 25 | $cmake_qt_libs$ 26 | ) 27 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/mainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /QMakeFileReader/evalhandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #ifndef EVALHANDLER_H 5 | #define EVALHANDLER_H 6 | 7 | #include 8 | 9 | /** 10 | * Dummy handler to please qmake's parser. 11 | */ 12 | class EvalHandler : public QMakeHandler 13 | { 14 | public: 15 | void message(int type, const QString &msg, const QString &fileName, int lineNo); 16 | void fileMessage(const QString &msg); 17 | void aboutToEval(ProFile *parent, ProFile *proFile, EvalFileType type); 18 | void doneWithEval(ProFile *parent); 19 | }; 20 | 21 | #endif // EVALHANDLER_H 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /VsQml/astvisitor.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include "vsqml.h" 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | class AstVisitorPrivate; 13 | 14 | class AstVisitor { 15 | public: 16 | AstVisitor(); 17 | ~AstVisitor(); 18 | void setCallback(Callback visitCallback); 19 | void setCallback(int nodeKindFilter, Callback visitCallback); 20 | QQmlJS::AST::Visitor *GetVisitor(); 21 | 22 | private: 23 | AstVisitorPrivate *d_ptr; 24 | }; 25 | -------------------------------------------------------------------------------- /Templates/gui/widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | $classname$Class 4 | 5 | 6 | $classname$Class 7 | 8 | 9 | 10 | 0 11 | 0 12 | 600 13 | 400 14 | 15 | 16 | 17 | $classname$ 18 | $centralwidget$ 19 | 20 | 21 | 22 | $uiresources$ 23 | 24 | 25 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/qt_settings.targets: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 11 | 12 | 14 | Project;PropertySheet 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Util/UiClassInclusionConverter.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.Globalization; 6 | using System.Windows.Data; 7 | 8 | namespace QtVsTools.Wizards.Util 9 | { 10 | public class UiClassInclusionConverter : IValueConverter 11 | { 12 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 13 | => value?.Equals(parameter); 14 | 15 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 16 | => value?.Equals(true) == true ? parameter : Binding.DoNothing; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Templates/designer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | $headerfilename$ 18 | $sourcefilename$ 19 | $pluginheaderfilename$ 20 | $pluginsourcefilename$ 21 | ) 22 | 23 | add_library(${PROJECT_NAME} SHARED ${PROJECT_SOURCES}) 24 | 25 | target_link_libraries(${PROJECT_NAME} 26 | PRIVATE 27 | $cmake_qt_libs$ 28 | ) 29 | $cmake_precompile_headers$ 30 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/wigglywidget.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause 3 | 4 | #ifndef WIGGLYWIDGET_H 5 | #define WIGGLYWIDGET_H 6 | 7 | #include 8 | #include 9 | 10 | //! [0] 11 | class WigglyWidget : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | WigglyWidget(QWidget *parent = nullptr); 17 | 18 | public slots: 19 | void setText(const QString &newText) { text = newText; } 20 | 21 | protected: 22 | void paintEvent(QPaintEvent *event) override; 23 | void timerEvent(QTimerEvent *event) override; 24 | 25 | private: 26 | QBasicTimer timer; 27 | QString text; 28 | int step; 29 | }; 30 | //! [0] 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/moc/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qtmoc.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qtmoc.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/rcc/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qtrcc.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qtrcc.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/uic/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qtuic.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qtuic.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /QtVsTools.Package/Editors/QtResourceFileSniffer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text.RegularExpressions; 7 | 8 | namespace QtVsTools.Package.Editors 9 | { 10 | internal class QtResourceFileSniffer : IFileTypeSniffer 11 | { 12 | private static readonly Regex Regex = new(@"<\s*(?i:rcc)\s*>"); 13 | 14 | public bool IsSupportedFile(string filePath) 15 | { 16 | try { 17 | return File.ReadLines(filePath).Take(3).Any(line => Regex.IsMatch(line.Trim())); 18 | } catch { 19 | return false; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/project/project.pro: -------------------------------------------------------------------------------- 1 | QT += core core-private gui 2 | 3 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 | 5 | CONFIG += c++17 6 | 7 | # You can make your code fail to compile if it uses deprecated APIs. 8 | # In order to do so, uncomment the following line. 9 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 10 | 11 | SOURCES += \ 12 | main.cpp \ 13 | mainwindow.cpp 14 | 15 | HEADERS += \ 16 | mainwindow.h 17 | 18 | FORMS += \ 19 | mainwindow.ui 20 | 21 | RESOURCES += \ 22 | project.qrc 23 | 24 | # Default rules for deployment. 25 | qnx: target.path = /tmp/$${TARGET}/bin 26 | else: unix:!android: target.path = /opt/$${TARGET}/bin 27 | !isEmpty(target.path): INSTALLS += target 28 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/repc/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qtrepc.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qtrepc.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /QMakeFileReader/evalhandler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #include "evalhandler.h" 5 | 6 | void EvalHandler::message(int type, const QString &msg, const QString &fileName, int lineNo) 7 | { 8 | Q_UNUSED(type); 9 | Q_UNUSED(msg); 10 | Q_UNUSED(fileName); 11 | Q_UNUSED(lineNo); 12 | } 13 | 14 | void EvalHandler::fileMessage(const QString &msg) 15 | { 16 | Q_UNUSED(msg); 17 | } 18 | 19 | void EvalHandler::aboutToEval(ProFile *parent, ProFile *proFile, EvalFileType type) 20 | { 21 | Q_UNUSED(parent); 22 | Q_UNUSED(proFile); 23 | Q_UNUSED(type); 24 | } 25 | 26 | void EvalHandler::doneWithEval(ProFile *parent) 27 | { 28 | Q_UNUSED(parent); 29 | } 30 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/deploy/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qtdeploy.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qtdeploy.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtClassLibrary/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project(QtClassLibrary LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | Core 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | qtclasslibrary_global.h 18 | QtClassLibrary.h 19 | QtClassLibrary.cpp 20 | ) 21 | 22 | add_library(QtClassLibrary SHARED ${PROJECT_SOURCES}) 23 | 24 | target_link_libraries(QtClassLibrary 25 | PRIVATE 26 | Qt::Core 27 | ) 28 | 29 | target_compile_definitions(QtClassLibrary 30 | PRIVATE 31 | QTCLASSLIBRARY_LIB 32 | ) 33 | -------------------------------------------------------------------------------- /QtVsTools.Package/Editors/QtLinguistFileSniffer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text.RegularExpressions; 7 | 8 | namespace QtVsTools.Package.Editors 9 | { 10 | internal class QtLinguistFileSniffer : IFileTypeSniffer 11 | { 12 | private static readonly Regex Regex = new(@"<\s*\!\s*DOCTYPE\s*(?i:TS)\s*>"); 13 | 14 | public bool IsSupportedFile(string filePath) 15 | { 16 | try { 17 | return File.ReadLines(filePath).Take(3).Any(line => Regex.IsMatch(line.Trim())); 18 | } catch { 19 | return false; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/translation/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps); 14 | $(MSBuildThisFileDirectory)qttranslation.props 15 | 16 | 17 | $(QtMsBuildTargets); 18 | $(MSBuildThisFileDirectory)qttranslation.targets 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /QtVsTools.TestAdapter/QtTestSettingsProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.ComponentModel.Composition; 5 | using System.Xml; 6 | using Microsoft.VisualStudio.TestPlatform.ObjectModel; 7 | using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; 8 | 9 | namespace QtVsTools.TestAdapter 10 | { 11 | [Export(typeof(ISettingsProvider))] 12 | [SettingsName(Resources.SettingsName)] 13 | internal class QtTestSettingsProvider : ISettingsProvider 14 | { 15 | internal QtTestSettings Settings { get; private set; } 16 | 17 | public void Load(XmlReader reader) => 18 | Settings = QtTestSettings.Load(reader, Resources.SettingsName); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /QtVsTools.Package/Editors/QtDesignerFileSniffer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text.RegularExpressions; 7 | 8 | namespace QtVsTools.Package.Editors 9 | { 10 | internal class QtDesignerFileSniffer : IFileTypeSniffer 11 | { 12 | private static readonly Regex Regex = new(@"<\s*(?i:ui)\s+version\s*=\s*""\d+\.\d+""\s*>"); 13 | 14 | public bool IsSupportedFile(string filePath) 15 | { 16 | try { 17 | return File.ReadLines(filePath).Take(3).Any(line => Regex.IsMatch(line.Trim())); 18 | } catch { 19 | return false; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /QtVsTools.Package/QtVsTools.Icons.pkgdef: -------------------------------------------------------------------------------- 1 | [$RootKey$\ShellFileAssociations\.prf] 2 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:0" 3 | 4 | [$RootKey$\ShellFileAssociations\.pri] 5 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:1" 6 | 7 | [$RootKey$\ShellFileAssociations\.pro] 8 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:2" 9 | 10 | [$RootKey$\ShellFileAssociations\.qml] 11 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:3" 12 | 13 | [$RootKey$\ShellFileAssociations\.qrc] 14 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:4" 15 | 16 | [$RootKey$\ShellFileAssociations\.ts] 17 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:5" 18 | 19 | [$RootKey$\ShellFileAssociations\.ui] 20 | "DefaultIconMoniker"="0d2e443f-6dbb-4001-99dc-9cd7d5c924e7:6" 21 | -------------------------------------------------------------------------------- /Templates/lib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | $saveglobal$_global.h 18 | $headerfilename$ 19 | $sourcefilename$ 20 | ) 21 | 22 | add_library(${PROJECT_NAME} $cmake_static$ ${PROJECT_SOURCES}) 23 | 24 | target_link_libraries(${PROJECT_NAME} 25 | PRIVATE 26 | $cmake_qt_libs$ 27 | ) 28 | 29 | target_compile_definitions(${PROJECT_NAME} 30 | PRIVATE 31 | $pro_lib_define$ 32 | ) 33 | $cmake_precompile_headers$ 34 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/dialog.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause 3 | 4 | #include "dialog.h" 5 | #include "wigglywidget.h" 6 | 7 | #include 8 | #include 9 | 10 | //! [0] 11 | Dialog::Dialog(QWidget *parent) 12 | : QDialog(parent) 13 | { 14 | WigglyWidget *wigglyWidget = new WigglyWidget; 15 | QLineEdit *lineEdit = new QLineEdit; 16 | 17 | QVBoxLayout *layout = new QVBoxLayout(this); 18 | layout->addWidget(wigglyWidget); 19 | layout->addWidget(lineEdit); 20 | 21 | connect(lineEdit, &QLineEdit::textChanged, wigglyWidget, &WigglyWidget::setText); 22 | lineEdit->setText(tr("Hello world!")); 23 | 24 | setWindowTitle(tr("Wiggly")); 25 | resize(360, 145); 26 | } 27 | //! [0] 28 | -------------------------------------------------------------------------------- /QtVsTools.TestAdapter/QtTestGlobalSettingsProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.ComponentModel.Composition; 5 | using System.Xml; 6 | using Microsoft.VisualStudio.TestPlatform.ObjectModel; 7 | using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; 8 | 9 | namespace QtVsTools.TestAdapter 10 | { 11 | [Export(typeof(ISettingsProvider))] 12 | [SettingsName(Resources.GlobalSettingsName)] 13 | internal class QtTestGlobalSettingsProvider : ISettingsProvider 14 | { 15 | internal QtTestSettings Settings { get; private set; } 16 | 17 | public void Load(XmlReader reader) => 18 | Settings = QtTestSettings.Load(reader, Resources.GlobalSettingsName); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /QtVsTools.Core/BuildConfig.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Core 5 | { 6 | public struct BuildConfig 7 | { 8 | public static string PlatformToolset => 9 | // TODO: Find a proper way to return the PlatformToolset version. 10 | #if VS2019 11 | "142"; 12 | #elif VS2022 13 | "143"; 14 | #else 15 | #error Unknown Visual Studio version! 16 | #endif 17 | 18 | // Since Visual Studio 2019: WindowsTargetPlatformVersion=10.0 19 | // will be treated as "use latest installed Windows 10 SDK". 20 | // https://developercommunity.visualstudio.com/comments/407752/view.html 21 | public static string WindowsTargetPlatformVersion = "10.0"; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Templates/gui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project($projectname$ LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | $cmake_qt_modules$ 13 | ) 14 | qt_standard_project_setup() 15 | 16 | set(PROJECT_SOURCES 17 | main.cpp 18 | $uifilename$ 19 | $headerfilename$ 20 | $sourcefilename$ 21 | $cmake_project_sources$) 22 | 23 | qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) 24 | 25 | set_target_properties(${PROJECT_NAME} 26 | PROPERTIES 27 | WIN32_EXECUTABLE TRUE 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PUBLIC 32 | $cmake_qt_libs$ 33 | ) 34 | $cmake_precompile_headers$ 35 | -------------------------------------------------------------------------------- /Tests/Test_QtVsTools.RegExpr/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | [assembly: AssemblyTitle("Test_QtVsTools.RegExpr")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test_QtVsTools.RegExpr")] 12 | [assembly: AssemblyCopyright("Copyright (C) 2025 The Qt Company Ltd.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | [assembly: ComVisible(false)] 17 | 18 | [assembly: Guid("d574efed-5e19-45be-9b05-310f65065303")] 19 | 20 | [assembly: AssemblyVersion("1.0.0.0")] 21 | [assembly: AssemblyFileVersion("1.0.0.0")] 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - Qt VS Tool Version [e.g. 2.7.1, 2.8.1, 2.8.1 (Rev.06)] 28 | - Visual Studio version [e.g. VS2017, VS2019, VS2022] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /targetframework.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 9.0 10 | 11 | 12 | 13 | 14 | v4.8 15 | 16 | 17 | 18 | 19 | v4.8 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /QtVsTools.Package/QtVsTools.Qml.Debug.pkgdef: -------------------------------------------------------------------------------- 1 | [$RootKey$\AD7Metrics\Engine\{86102A1B-4378-4964-A7ED-21852A8AFB7F}] 2 | "CLSID"="{FA2993E3-8B2A-40A6-8853-AC2DB2DAED5A}" 3 | "ProgramProvider"="{F2FF34E2-7FA5-461B-9E59-B5997EE0A637}" 4 | "Attach"=dword:00000001 5 | "AddressBP"=dword:00000000 6 | "AlwaysLoadLocal"=dword:00000001 7 | "AutoSelectPriority"=dword:00000004 8 | "CallstackBP"=dword:00000001 9 | "Name"="QML" 10 | "PortSupplier"="{708C1ECA-FF48-11D2-904F-00C04FA302A1}" 11 | @="QML" 12 | 13 | [$RootKey$\CLSID\{FA2993E3-8B2A-40A6-8853-AC2DB2DAED5A}] 14 | "Assembly"="QtVsTools" 15 | "Class"="QtVsTools.Qml.Debug.AD7.QmlEngine" 16 | "CodeBase"="$PackageFolder$\QtVsTools.dll" 17 | 18 | [$RootKey$\CLSID\{F2FF34E2-7FA5-461B-9E59-B5997EE0A637}] 19 | "Assembly"="QtVsTools" 20 | "Class"="QtVsTools.Qml.Debug.AD7.ProgramProvider" 21 | "CodeBase"="$PackageFolder$\QtVsTools.dll" 22 | -------------------------------------------------------------------------------- /Tests/Test_QtMsBuild.Build/Test_Eval.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.IO; 6 | using Microsoft.VisualStudio.TestTools.UnitTesting; 7 | 8 | namespace QtVsTools.Test.QtMsBuild.Build 9 | { 10 | using Core; 11 | 12 | [TestClass] 13 | public class Test_Eval 14 | { 15 | [TestMethod] 16 | public void Eval() 17 | { 18 | using var temp = new TempProject(); 19 | temp.Clone($@"{Properties.SolutionDir}Tests\ProjectFormats\304\QtProjectV304.vcxproj"); 20 | var project = MsBuild.Evaluate(temp.ProjectPath, ("Platform", "x64")); 21 | Assert.AreEqual(project.ExpandString("$(QtVSToolsVersion)"), Version.PRODUCT_VERSION); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /scripts/vstools/log_version.cmd: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 | ::log_version.cmd 6 | :: * Generates log file with extension version, based on the latest repository tag 7 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 | 9 | ECHO. 10 | %##########################% 11 | %##% %BOLD%Logging extension version%RESET% 12 | IF "%VERSION_REV%" == "" ( 13 | ECHO %VERSION%.0 > version.log 14 | %##% %BOLD%%DARK_CYAN%%VERSION%%RESET% 15 | ) ELSE ( 16 | ECHO %VERSION%.%VERSION_REV% > version.log 17 | %##% %BOLD%%DARK_CYAN%%VERSION% ^(rev.%VERSION_REV%^)%RESET% 18 | ) 19 | %##########################% 20 | -------------------------------------------------------------------------------- /QtVsTools.Core/Common/PunisherQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | 6 | namespace QtVsTools 7 | { 8 | public class PunisherQueue : BasePriorityQueue 9 | { 10 | public PunisherQueue() 11 | { } 12 | 13 | public PunisherQueue(Func getItemKey) : base(getItemKey) 14 | { } 15 | 16 | /// 17 | /// Enqueue/re-queue moves item to back of the queue, effectively "punishing" items that 18 | /// were already in the queue. 19 | /// 20 | /// 21 | public void Enqueue(T item) 22 | { 23 | lock (CriticalSection) { 24 | Enqueue(item, Timestamp.Next()); 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared/shared.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | class AnotherFancyStringClass 9 | { 10 | public: 11 | AnotherFancyStringClass() = default; 12 | explicit AnotherFancyStringClass(const char *str); 13 | ~AnotherFancyStringClass(); 14 | 15 | AnotherFancyStringClass(const AnotherFancyStringClass &other); 16 | AnotherFancyStringClass(AnotherFancyStringClass &&other) noexcept; 17 | 18 | AnotherFancyStringClass &operator=(const AnotherFancyStringClass &other); 19 | AnotherFancyStringClass &operator=(AnotherFancyStringClass &&other) noexcept; 20 | 21 | operator QString() const; 22 | 23 | private: 24 | char *data = nullptr; 25 | std::size_t size = 0; 26 | }; 27 | -------------------------------------------------------------------------------- /QtVsTools.Package/Editors/DesignerSession.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.Diagnostics; 6 | using System.Net; 7 | using System.Net.Sockets; 8 | 9 | namespace QtVsTools.Package.Editors 10 | { 11 | internal sealed class DesignerSession : IDisposable 12 | { 13 | public Process Process { get; set; } 14 | public TcpListener Listener { get; } = new(IPAddress.Loopback, 0); 15 | public NetworkStream Stream { get; set; } 16 | 17 | public void Dispose() 18 | { 19 | try { 20 | Stream?.Dispose(); 21 | } catch { /* ignored */ } 22 | 23 | try { 24 | Listener.Stop(); 25 | } catch { /* ignored */ } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/qmake/shared_project/shared_project.pro: -------------------------------------------------------------------------------- 1 | QT += core core-private gui 2 | 3 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 | 5 | CONFIG += c++17 6 | 7 | # You can make your code fail to compile if it uses deprecated APIs. 8 | # In order to do so, uncomment the following line. 9 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 10 | 11 | SOURCES += \ 12 | main.cpp \ 13 | mainwindow.cpp 14 | 15 | HEADERS += \ 16 | mainwindow.h 17 | 18 | FORMS += \ 19 | mainwindow.ui 20 | 21 | RESOURCES += \ 22 | shared_project.qrc 23 | 24 | SHARED_FOLDER = ../shared 25 | include($$SHARED_FOLDER/shared.pri) 26 | 27 | # Default rules for deployment. 28 | qnx: target.path = /tmp/$${TARGET}/bin 29 | else: unix:!android: target.path = /opt/$${TARGET}/bin 30 | !isEmpty(target.path): INSTALLS += target 31 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/Debugging/V4/Messages/QmlDebugV4Connect.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Runtime.Serialization; 5 | 6 | namespace QtVsTools.Qml.Debug.V4 7 | { 8 | [DataContract] 9 | sealed class ConnectMessage : Message 10 | { 11 | // "connect" 12 | // { "redundantRefs" : , 13 | // "namesAsObjects" : 14 | // } 15 | public const string MSG_TYPE = "connect"; 16 | public ConnectMessage() 17 | { 18 | Type = MSG_TYPE; 19 | } 20 | 21 | [DataMember(Name = "redundantRefs")] 22 | public bool RedundantRefs { get; set; } 23 | 24 | [DataMember(Name = "namesAsObjects")] 25 | public bool NamesAsObjects { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Tests/Test_QtVsTools.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | [assembly: AssemblyTitle("Test_QtVsTools.Core")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test_QtVsTools.Core")] 12 | [assembly: AssemblyCopyright("Copyright (C) 2025 The Qt Company Ltd.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | [assembly: ComVisible(false)] 17 | 18 | [assembly: Guid("4b8fc08c-4901-45d4-bc00-c0c461292ff2")] 19 | 20 | // [assembly: AssemblyVersion("1.0.*")] 21 | [assembly: AssemblyVersion("1.0.0.0")] 22 | [assembly: AssemblyFileVersion("1.0.0.0")] 23 | -------------------------------------------------------------------------------- /Tests/Test_QtMsBuild.Build/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | [assembly: AssemblyTitle("Test_QtMsBuild.Build")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test_QtMsBuild.Build")] 12 | [assembly: AssemblyCopyright("Copyright (C) 2025 The Qt Company Ltd.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | [assembly: ComVisible(false)] 17 | 18 | [assembly: Guid("e809dde3-ae76-4f7a-8dc5-775ac4900138")] 19 | 20 | // [assembly: AssemblyVersion("1.0.*")] 21 | [assembly: AssemblyVersion("1.0.0.0")] 22 | [assembly: AssemblyFileVersion("1.0.0.0")] 23 | -------------------------------------------------------------------------------- /Tests/Test_QtMsBuild.Tasks/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | [assembly: AssemblyTitle("Test_QtMsBuild.Tasks")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test_QtMsBuild.Tasks")] 12 | [assembly: AssemblyCopyright("Copyright (C) 2025 The Qt Company Ltd.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | [assembly: ComVisible(false)] 17 | 18 | [assembly: Guid("F1DA3C24-5920-4164-BC46-51BFDC12048E")] 19 | 20 | // [assembly: AssemblyVersion("1.0.*")] 21 | [assembly: AssemblyVersion("1.0.0.0")] 22 | [assembly: AssemblyFileVersion("1.0.0.0")] 23 | -------------------------------------------------------------------------------- /QMakeFileReader/qmakedataprovider.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #ifndef QMAKEDATAPROVIDER_H 5 | #define QMAKEDATAPROVIDER_H 6 | 7 | #include 8 | #include 9 | 10 | class QMakeDataProviderPrivate; 11 | 12 | class QMakeDataProvider { 13 | 14 | QMakeDataProviderPrivate * const d; 15 | 16 | public: 17 | QMakeDataProvider(); 18 | ~QMakeDataProvider(); 19 | 20 | bool readFile(const QString &fileName); 21 | void setQtDir(const QString &qtdir); 22 | QStringList getFormFiles() const; 23 | QStringList getHeaderFiles() const; 24 | QStringList getResourceFiles() const; 25 | QStringList getSourceFiles() const; 26 | bool isFlat() const; 27 | bool isValid() const; 28 | }; 29 | 30 | #endif // QMAKEDATAPROVIDER_H 31 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Common/WizardWindow.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 20 | -------------------------------------------------------------------------------- /Templates/designer/plugin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class $plugin_class$ : public QObject, public QDesignerCustomWidgetInterface 6 | { 7 | Q_OBJECT 8 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "$plugin_json$") 9 | Q_INTERFACES(QDesignerCustomWidgetInterface) 10 | 11 | public: 12 | $plugin_class$(QObject *parent = nullptr); 13 | 14 | bool isContainer() const; 15 | bool isInitialized() const; 16 | QIcon icon() const; 17 | QString domXml() const; 18 | QString group() const; 19 | QString includeFile() const; 20 | QString name() const; 21 | QString toolTip() const; 22 | QString whatsThis() const; 23 | QWidget *createWidget(QWidget *parent); 24 | void initialize(QDesignerFormEditorInterface *core); 25 | 26 | private: 27 | bool initialized; 28 | }; 29 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/Language/QmlLanguageClient.CustomMessage2.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Threading.Tasks; 5 | using Microsoft.VisualStudio.LanguageServer.Client; 6 | using StreamJsonRpc; 7 | 8 | namespace QtVsTools.Package.QML.Language 9 | { 10 | public partial class QmlLanguageClient : ILanguageClientCustomMessage2 11 | { 12 | internal JsonRpc JsonRpc { get; set; } 13 | 14 | public Task AttachForCustomMessageAsync(JsonRpc rpc) 15 | { 16 | JsonRpc = rpc; 17 | CustomMessageTarget = new CustomMessageTarget(this); 18 | 19 | return Task.CompletedTask; 20 | } 21 | 22 | public object MiddleLayer => null; 23 | 24 | public object CustomMessageTarget { get; private set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/Parser/QmlParserDiagnostics.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Qml 5 | { 6 | using Syntax; 7 | 8 | public enum DiagnosticMessageKind { Warning, Error } 9 | 10 | /// 11 | /// Represents a syntax error issued by the QML parser 12 | /// 13 | public class DiagnosticMessage 14 | { 15 | private DiagnosticMessageKind Kind { get; } 16 | public SourceLocation Location { get; } 17 | public DiagnosticMessage(DiagnosticMessageKind kind, int offset, int length) 18 | { 19 | Kind = kind; 20 | Location = new SourceLocation 21 | { 22 | Offset = offset, 23 | Length = length 24 | }; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Tests/Test_QtVsTools.PriorityQueue/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Reflection; 5 | using System.Runtime.InteropServices; 6 | 7 | [assembly: AssemblyTitle("Test_QtVsTools.PriorityQueue")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test_QtVsTools.PriorityQueue")] 12 | [assembly: AssemblyCopyright("Copyright (C) 2025 The Qt Company Ltd.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | [assembly: ComVisible(false)] 17 | 18 | [assembly: Guid("a5320606-37b8-4f15-97e2-16314109caf9")] 19 | 20 | // [assembly: AssemblyVersion("1.0.*")] 21 | [assembly: AssemblyVersion("1.0.0.0")] 22 | [assembly: AssemblyFileVersion("1.0.0.0")] 23 | -------------------------------------------------------------------------------- /QMakeFileReader/evaluator/qmake_global.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #ifndef QMAKE_GLOBAL_H 5 | #define QMAKE_GLOBAL_H 6 | 7 | #include 8 | 9 | #if defined(QMAKE_AS_LIBRARY) 10 | # if defined(QMAKE_LIBRARY) 11 | # define QMAKE_EXPORT Q_DECL_EXPORT 12 | # else 13 | # define QMAKE_EXPORT Q_DECL_IMPORT 14 | # endif 15 | #else 16 | # define QMAKE_EXPORT 17 | #endif 18 | 19 | // Be fast even for debug builds 20 | // MinGW GCC 4.5+ has a problem with always_inline putTok and putBlockLen 21 | #if defined(__GNUC__) && !(defined(__MINGW32__) && __GNUC__ == 4 && __GNUC_MINOR__ >= 5) 22 | # define ALWAYS_INLINE inline __attribute__((always_inline)) 23 | #elif defined(_MSC_VER) 24 | # define ALWAYS_INLINE __forceinline 25 | #else 26 | # define ALWAYS_INLINE inline 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /QrcEditor/mainwindow.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #ifndef MAINWINDOW_H 5 | #define MAINWINDOW_H 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | namespace SharedTools { 12 | class QrcEditor; 13 | } 14 | 15 | class MainWindow : public QMainWindow 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | MainWindow(); 21 | void openFile(QString fileName); 22 | 23 | protected: 24 | void closeEvent(QCloseEvent *e); 25 | 26 | private slots: 27 | void slotOpen(); 28 | void slotSave(); 29 | void slotAbout(); 30 | void slotAboutQt(); 31 | 32 | private: 33 | int fileChangedDialog(); 34 | 35 | private: 36 | SharedTools::QrcEditor *m_qrcEditor; 37 | QString m_devenvPIDArg; 38 | }; 39 | 40 | #endif // MAINWINDOW_H 41 | -------------------------------------------------------------------------------- /QtVsTools.Core/Resources.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | namespace QtVsTools.Core 5 | { 6 | /// 7 | /// Summary description for Resources. 8 | /// 9 | public static class Resources 10 | { 11 | public const string RegistryRoot = @"SOFTWARE\QtProject\QtVsTools"; 12 | public static string RegistrySuffix { get; set; } = ""; 13 | public static string RegistryPath => RegistryRoot + RegistrySuffix; 14 | public static string SettingsRegistryPath => RegistryPath + @"\Settings"; 15 | public static string VersionsRegistryPath => RegistryPath + @"\Versions"; 16 | public static string TestAdapterSettingsPath => RegistryPath + @"\TestAdapter"; 17 | 18 | public const string ObsoleteRegistryPath = @"SOFTWARE\Digia"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/Language/QmlLanguageClient.BraceCompletionSessionProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.ComponentModel.Composition; 5 | using Microsoft.VisualStudio.Text; 6 | using Microsoft.VisualStudio.Text.BraceCompletion; 7 | using Microsoft.VisualStudio.Text.Editor; 8 | 9 | namespace QtVsTools.Package.QML.Language 10 | { 11 | [Export(typeof(IBraceCompletionSessionProvider))] 12 | [BracePair('{', '}')] 13 | public partial class QmlLanguageClient : IBraceCompletionSessionProvider 14 | { 15 | public bool TryCreateSession(ITextView textView, SnapshotPoint openingPoint, 16 | char openingBrace, char closingBrace, out IBraceCompletionSession session) 17 | { 18 | session = null; 19 | return true; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/readme.md: -------------------------------------------------------------------------------- 1 | ## Qt/MSBuild 2 | Special build rules called Qt/MSBuild let you run Qt build tools and set build options for them. You can also use the tools independently from Qt VS Tools with MSBuild or Visual Studio. 3 | 4 | ### Using with MSBuild 5 | - Set the `QTMSBUILD` environment variable to this folder. 6 | - Call msbuild with the `-p:QtInstall=[PATH]` property to set the Qt installation to build with. 7 | - Example: `msbuild -t:Rebuild -p:Configuration=Release -p:QtInstall=C:\Qt\6.8.0\msvc2022_64`. 8 | 9 | ### Using with Visual Studio 10 | - Set `Menu > Tools > Options > Qt > General > Qt/MSBuild > Path to Qt/MSBuild files` to this folder. 11 | 12 | Note that Qt VS Tools already contains the latest Qt/MSBuild, hence this is only necessary if you need a specific version of Qt/MSBuild. 13 | 14 | ### Support 15 | If you experience any problems, please open an issue at [https://bugreports.qt.io/projects/QTVSADDINBUG](). 16 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/wiggly/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project(wiggly LANGUAGES CXX) 3 | 4 | set(CMAKE_AUTOMOC ON) 5 | 6 | if(NOT DEFINED INSTALL_EXAMPLESDIR) 7 | set(INSTALL_EXAMPLESDIR "examples") 8 | endif() 9 | 10 | set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/widgets/wiggly") 11 | 12 | find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) 13 | 14 | qt_add_executable(wiggly 15 | dialog.cpp dialog.h 16 | main.cpp 17 | wigglywidget.cpp wigglywidget.h 18 | ) 19 | 20 | set_target_properties(wiggly PROPERTIES 21 | WIN32_EXECUTABLE TRUE 22 | MACOSX_BUNDLE TRUE 23 | ) 24 | 25 | target_link_libraries(wiggly PUBLIC 26 | Qt::Core 27 | Qt::Gui 28 | Qt::Widgets 29 | ) 30 | 31 | install(TARGETS wiggly 32 | RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" 33 | BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" 34 | LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" 35 | ) 36 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/QtProjectV200.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV200Class 3 | 4 | 5 | QtProjectV200Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV200 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/QtProjectV300.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV300Class 3 | 4 | 5 | QtProjectV300Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV300 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/QtProjectV301.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV301Class 3 | 4 | 5 | QtProjectV301Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV301 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/BigProjectNNN/BigProjectNNN.ui: -------------------------------------------------------------------------------- 1 | 2 | BigProjectNNNUi 3 | 4 | 5 | BigProjectNNNUi 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | BigProject 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/100/QtProjectV100.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV100Class 3 | 4 | 5 | QtProjectV100Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV100 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/QtProjectV302.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV302Class 3 | 4 | 5 | QtProjectV302Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV302 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/QtProjectV303.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV303Class 3 | 4 | 5 | QtProjectV303Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV303 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/QtProjectV304.ui: -------------------------------------------------------------------------------- 1 | 2 | QtProjectV304Class 3 | 4 | 5 | QtProjectV304Class 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtProjectV304 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Templates/test/test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class $classname$ : public QObject 4 | { 5 | Q_OBJECT 6 | 7 | private slots: 8 | 9 | void initTestCase_data() 10 | { 11 | qDebug("Creates a global test data table."); 12 | } 13 | 14 | void initTestCase() 15 | { 16 | qDebug("Called before the first test function is executed."); 17 | } 18 | 19 | void init() 20 | { 21 | qDebug("Called before each test function is executed."); 22 | } 23 | 24 | void myTest() 25 | { 26 | QVERIFY(true); // check that a condition is satisfied 27 | QCOMPARE(1, 1); // compare two values 28 | } 29 | 30 | void cleanup() 31 | { 32 | qDebug("Called after every test function."); 33 | } 34 | 35 | void cleanupTestCase() 36 | { 37 | qDebug("Called after the last test function was executed."); 38 | } 39 | }; 40 | 41 | QTEST_MAIN($classname$) 42 | #include "$mocfile$" 43 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/Util/VCLanguageManagerValidationRule.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Windows.Controls; 5 | using EnvDTE; 6 | using Microsoft.VisualStudio.Shell; 7 | using Microsoft.VisualStudio.VCCodeModel; 8 | 9 | namespace QtVsTools.Wizards.Util 10 | { 11 | using VisualStudio; 12 | 13 | internal abstract class VCLanguageManagerValidationRule : ValidationRule 14 | { 15 | protected VCLanguageManagerValidationRule() 16 | { 17 | ThreadHelper.ThrowIfNotOnUIThread(); 18 | 19 | ValidatesOnTargetUpdated = true; 20 | 21 | if (VsServiceProvider.GetService() is { } dte) 22 | Vclm = dte.GetObject("VCLanguageManager") as VCLanguageManager; 23 | } 24 | 25 | public string FileExt { get; set; } 26 | protected VCLanguageManager Vclm { get; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /VsQml/vsqmldebugclient.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | class VsQmlDebugClientPrivate; 9 | 10 | class VsQmlDebugClient : public QObject 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | VsQmlDebugClient(QObject *parent = nullptr); 16 | ~VsQmlDebugClient() override; 17 | 18 | public slots: 19 | void connectToHost(const QString &hostName, quint16 port); 20 | void startLocalServer(const QString &fileName); 21 | void disconnectFromHost(); 22 | void sendMessage(const QByteArray &messageType, const QByteArray &messageParams); 23 | 24 | signals: 25 | void connected(); 26 | void disconnected(); 27 | void messageReceived(const QByteArray &messageType, const QByteArray &messageParams); 28 | 29 | private: 30 | VsQmlDebugClientPrivate *d; 31 | friend class VsQmlDebugClientPrivate; 32 | }; 33 | -------------------------------------------------------------------------------- /QtVsTools.Core/Common/SettingsAttribute.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | 6 | namespace QtVsTools.Core.Common 7 | { 8 | using QtVsTools.Common; 9 | 10 | public sealed class SettingsAttribute : Attribute 11 | { 12 | public SettingsAttribute(string key, object defaultValue) 13 | { 14 | DefaultValue = defaultValue; 15 | Key = key; 16 | } 17 | 18 | public SettingsAttribute(object key, object defaultValue) 19 | { 20 | DefaultValue = defaultValue; 21 | if (key.GetType().BaseType != typeof(Enum)) 22 | throw new ArgumentException("The provided argument must be an Enum type."); 23 | Key = ((Enum)key).Cast(); 24 | } 25 | 26 | public string Key { get; } 27 | public object DefaultValue { get; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /QtVsTools.TestAdapter/Resources.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.Collections.Generic; 6 | 7 | namespace QtVsTools.TestAdapter 8 | { 9 | public static class Resources 10 | { 11 | internal const string FileExtension = ".exe"; 12 | internal const string ExecutorUriString = "executor://QtTestExecutor/v1"; 13 | internal static readonly Uri ExecutorUri = new(ExecutorUriString); 14 | 15 | internal const string SettingsName = "QtTest"; 16 | public const string GlobalSettingsName = "QtTestGlobal"; 17 | 18 | internal static readonly HashSet SupportedOutputFormats = new() 19 | { 20 | "txt", 21 | "csv", 22 | "junitxml", 23 | "xml", 24 | "lightxml", 25 | "teamcity", 26 | "tap" 27 | }; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/QtWidgetsApplication.ui: -------------------------------------------------------------------------------- 1 | 2 | QtWidgetsApplicationClass 3 | 4 | 5 | QtWidgetsApplicationClass 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | QtWidgetsApplication 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tests/system/suite_configuration/tst_new_project_no_qt/test.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 The Qt Company Ltd. 2 | # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | # -*- coding: utf-8 -*- 5 | 6 | source("../shared/scripts/config_utils.py") 7 | 8 | import names 9 | 10 | 11 | def testForMissingQt(_, __): 12 | test.compare(waitForObjectExists(names.qt_ConfigTable).rowCount, 0) 13 | test.compare(waitForObjectExists(names.no_Qt_version_Label).text, 14 | 'No registered Qt version found. Click here to browse for a Qt version.') 15 | test.verify(not waitForObjectExists(names.qt_Wizard_Next_Button).enabled, 16 | '"Next" button should be disabled when there are no Qt versions') 17 | test.verify(not waitForObjectExists(names.qt_Wizard_Finish_Button).enabled, 18 | '"Finish" button should be disabled when there are no Qt versions') 19 | 20 | 21 | def main(): 22 | testAllQtWizards(funcPage2=testForMissingQt, setupQtVersions=False) 23 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/200/QtProjectV200.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV200", "QtProjectV200.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64 15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64 16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/qml/qtqml.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 11 | 15 | 18 | 19 | 23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /QtVsTools.Core/Common/Timestamp.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Diagnostics; 5 | 6 | namespace QtVsTools 7 | { 8 | using Common; 9 | 10 | public class Timestamp : Concurrent 11 | { 12 | static LazyFactory StaticLazy { get; } = new(); 13 | 14 | long LastTimestamp { get; set; } 15 | long GetStrictMonotonicTimestamp() 16 | { 17 | lock (CriticalSection) { 18 | long t = Stopwatch.GetTimestamp(); 19 | if (t <= LastTimestamp) 20 | t = LastTimestamp + 1; 21 | return LastTimestamp = t; 22 | } 23 | } 24 | 25 | static Timestamp Instance => StaticLazy.Get(() => 26 | Instance, () => new Timestamp()); 27 | 28 | public static long Next() 29 | { 30 | return Instance.GetStrictMonotonicTimestamp(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Templates/qml/qml.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt QML File 13 | qml.ico 14 | VC 15 | VisualC 16 | Qt 17 | NewFile.qml 18 | QtVsTools 19 | QtVsTools-QMLFile 20 | Qt QML File (.qml) 21 | 22 | 23 | NewFile.qml 24 | 25 | 26 | -------------------------------------------------------------------------------- /QtVsTools.Core/QtPathsQuery.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Diagnostics; 5 | 6 | namespace QtVsTools.Core 7 | { 8 | public class QtPathsQuery : QtBuildToolQuery 9 | { 10 | private class QPathsProcess : QtPaths 11 | { 12 | public QPathsProcess(string qtDir) 13 | : base(qtDir) 14 | { 15 | Query = " "; 16 | } 17 | 18 | protected override void OutMsg(Process process, string msg) 19 | { 20 | StdOutput.AppendLine(msg); 21 | } 22 | 23 | protected override void InfoStart(Process process) 24 | { 25 | InfoMsg(process, "Querying persistent properties"); 26 | base.InfoStart(process); 27 | } 28 | } 29 | 30 | protected override IQueryProcess CreateQueryProcess(string qtDir) => new QPathsProcess(qtDir); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Tests/system/suite_installation/tst_9_uninstall_verify/test.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 The Qt Company Ltd. 2 | # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | # -*- coding: utf-8 -*- 5 | 6 | source("../../shared/utils.py") 7 | source("../shared/scripts/install_utils.py") 8 | 9 | 10 | def main(): 11 | startApp(clearSettings=False) 12 | vsToolsLabelText = selectInstalledVsTools() 13 | test.compare(vsToolsLabelText, None, 14 | "Are 'Qt VS Tools for Visual Studio' installed?") 15 | closeExtensionManager() 16 | checkMenuItems() 17 | closeMainWindow() 18 | 19 | 20 | def checkMenuItems(): 21 | try: 22 | openVsToolsMenu() 23 | test.fail("Surplus menu items", "Qt VS Tools show unexpected menu items.") 24 | mouseClick(waitForObject(globalnames.file_MenuItem)) # Close menu 25 | except: 26 | mouseClick(waitForObject(globalnames.file_MenuItem)) # Close Extensions menu 27 | test.passes("Qt VS Tools do not show unexpected menu items.") 28 | -------------------------------------------------------------------------------- /doc/qtvstools-online.qdocconf: -------------------------------------------------------------------------------- 1 | include(config/qtvstools-project.qdocconf) 2 | 3 | HTML.footer = \ 4 | " \n" \ 5 | "

\n" \ 6 | " © 2025 The Qt Company Ltd.\n" \ 7 | " Documentation contributions included herein are the copyrights of\n" \ 8 | " their respective owners. " \ 9 | " The documentation provided herein is licensed under the terms of the" \ 10 | " GNU Free Documentation" \ 11 | " License version 1.3 as published by the Free Software Foundation. " \ 12 | " Qt and respective logos are trademarks of The Qt Company Ltd " \ 13 | " in Finland and/or other countries worldwide. All other trademarks are property\n" \ 14 | " of their respective owners.

\n" 15 | 16 | include($QT_INSTALL_DOCS/global/qt-html-templates-online.qdocconf) 17 | 18 | # Add an .html file with sidebar content, used in the online style 19 | HTML.stylesheets += config/style/qt5-sidebar.html 20 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/QmlContentType.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.ComponentModel.Composition; 5 | using Microsoft.VisualStudio.LanguageServer.Client; 6 | using Microsoft.VisualStudio.Utilities; 7 | 8 | namespace QtVsTools.Qml 9 | { 10 | internal sealed class QmlContentType 11 | { 12 | public const string Name = "qml"; 13 | 14 | [Export] 15 | [Name(Name)] 16 | [BaseDefinition(CodeRemoteContentDefinition.CodeRemoteContentTypeName)] 17 | internal static ContentTypeDefinition qmlContentType = null; 18 | 19 | [Export] 20 | [FileExtension(".qml")] 21 | [ContentType(Name)] 22 | internal static FileExtensionToContentTypeDefinition qmlFileType = null; 23 | 24 | [Export] 25 | [FileExtension(".qmlproject")] 26 | [ContentType(Name)] 27 | internal static FileExtensionToContentTypeDefinition qmlprojectFileType = null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Tests/Test_QtMsBuild.Build/Test_BigSolution.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.IO; 6 | using Microsoft.VisualStudio.TestTools.UnitTesting; 7 | 8 | namespace QtVsTools.Test.QtMsBuild.Build 9 | { 10 | [TestClass] 11 | public class Test_BigSolution 12 | { 13 | [TestMethod] 14 | public void BigSolution_Build() 15 | { 16 | #if !ENABLE_TEST_BIGSOLUTION 17 | Assert.Inconclusive(); 18 | #endif 19 | using var temp = new TempProject(); 20 | temp.GenerateBigSolution( 21 | $@"{Properties.SolutionDir}Tests\BigSolution\template", 100); 22 | Assert.IsTrue(MsBuild.Run(temp.ProjectDir, 23 | $"-p:QtMsBuild={Path.Combine(Environment.CurrentDirectory, "QtMsBuild")}", 24 | "-p:Platform=x64", "-p:Configuration=Release", 25 | "-m", "-t:Build", temp.ProjectFileName)); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/qml/qt_import.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | $(QtMsBuildProps_AfterRcc); 14 | $(MSBuildThisFileDirectory)qtqml.props; 15 | $(MSBuildThisFileDirectory)qtqml_cache.props; 16 | $(MSBuildThisFileDirectory)qtqml_static.props 17 | 18 | 19 | $(QtMsBuildTargets_AfterRcc); 20 | $(MSBuildThisFileDirectory)qtqml.targets; 21 | $(MSBuildThisFileDirectory)qtqml_cache.targets; 22 | $(MSBuildThisFileDirectory)qtqml_static.targets 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Templates/qmldir/qmldir.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt QML Module Definition 13 | qml.ico 14 | VC 15 | VisualC 16 | Qt 17 | qmldir 18 | QtVsTools 19 | QtVsTools-QMLDir 20 | Qt QML Module Definition (qmldir) 21 | 22 | 23 | qmldir 24 | 25 | 26 | -------------------------------------------------------------------------------- /Templates/widget/widget.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt Widget Form File 13 | widget.ico 14 | VC 15 | VisualC 16 | Qt 17 | Widget.ui 18 | Qt Widget Form File (.ui) 19 | QtVsTools-QWidget 20 | QtVsTools 21 | 22 | 23 | widget.ui 24 | 25 | 26 | -------------------------------------------------------------------------------- /QtCppConfig.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ..\..\..\install\qt5-x86-vs2019-static 7 | 8 | 9 | ..\..\..\install\qt5-x86-vs2022-static 10 | 11 | 12 | $(QtBuild_Static_Vs2019) 13 | 14 | 15 | $(QtBuild_Static_Vs2022) 16 | 17 | 18 | $([System.IO.Path]::Combine($(ProjectDir),$(QtBuild))) 19 | $([System.IO.Path]::GetFullPath($(QtBuild))) 20 | 21 | 22 | -------------------------------------------------------------------------------- /QtMSBuild/QtMsBuild/qml/qtqml_static.props: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 11 | 15 | 18 | 19 | 23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Templates/resource/resource.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt Resource File 13 | resource.ico 14 | VC 15 | VisualC 16 | Qt 17 | Resource.qrc 18 | QtVsTools 19 | QtVsTools-QResource 20 | Qt Resource Collection File (.qrc) 21 | 22 | 23 | resource.qrc 24 | 25 | 26 | -------------------------------------------------------------------------------- /Templates/mainwindow/mainwindow.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt MainWindow Form File 13 | mainwindow.ico 14 | VC 15 | VisualC 16 | Qt 17 | MainWindow.ui 18 | Qt MainWindow Form File (.ui) 19 | QtVsTools-QMainWindow 20 | QtVsTools 21 | 22 | 23 | mainwindow.ui 24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/tutorial/QuickAddressBook/QuickAddressBookTypes/AddressBookItem.qml: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | import QtQuick 2.9 5 | import QtQuick.Window 2.2 6 | import QtQuick.Controls 2.5 7 | import QtQuick.Layouts 1.12 8 | 9 | Rectangle { 10 | id: addressBookItem 11 | color: (index % 2) == 0 ? "dimgray" : "lightgray" 12 | anchors.left: parent.left 13 | anchors.right: parent.right 14 | height: itemText.height + 12 15 | 16 | signal removed() 17 | 18 | RowLayout { 19 | spacing: 12 20 | anchors.left: parent.left 21 | anchors.leftMargin: spacing 22 | RoundButton { 23 | id: deleteButton 24 | text: "🗙" 25 | font.pointSize: 12 26 | palette.buttonText: "red" 27 | onClicked: addressBookItem.removed() 28 | } 29 | Text { 30 | id: itemText 31 | font.pointSize: 24 32 | text: "" + name + "
" + addr + "" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /QtMSBuild/Tasks/HostTranslatePaths_LinuxWSL_Error.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | #region Task TaskName="HostTranslatePaths" Condition="('$(VisualStudioVersion)' != '16.0' AND '$(VisualStudioVersion)' != '17.0') AND '$(ApplicationType)' == 'Linux' AND '$(PlatformToolset)' == 'WSL_1_0'" 5 | 6 | namespace QtVsTools.QtMsBuild.Tasks 7 | { 8 | public static class HostTranslatePaths_LinuxWSL_Error 9 | { 10 | public static QtMSBuild.ITaskLoggingHelper Log { get; set; } 11 | 12 | public static bool Execute( 13 | #region Parameters 14 | Microsoft.Build.Framework.ITaskItem[] Items, 15 | out Microsoft.Build.Framework.ITaskItem[] Result, 16 | System.String[] Names = null) 17 | #endregion 18 | { 19 | #region Code 20 | Result = null; 21 | Log.LogError("Cross-compilation of Qt projects in WSL not supported."); 22 | return false; 23 | #endregion 24 | } 25 | } 26 | } 27 | #endregion 28 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/CMake/QtWidgetsApplication/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | project(QtWidgetsApplication LANGUAGES CXX) 3 | 4 | include(qt.cmake) 5 | 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 8 | 9 | find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 10 | find_package(Qt${QT_VERSION_MAJOR} 11 | COMPONENTS 12 | Core 13 | Gui 14 | Widgets 15 | ) 16 | qt_standard_project_setup() 17 | 18 | set(PROJECT_SOURCES 19 | main.cpp 20 | QtWidgetsApplication.ui 21 | QtWidgetsApplication.h 22 | QtWidgetsApplication.cpp 23 | ) 24 | 25 | if(QT_VERSION VERSION_LESS 5.15) 26 | qt5_add_resources(PROJECT_SOURCES QtWidgetsApplication.qrc) 27 | else() 28 | qt_add_resources(PROJECT_SOURCES QtWidgetsApplication.qrc) 29 | endif() 30 | 31 | qt_add_executable(QtWidgetsApplication ${PROJECT_SOURCES}) 32 | 33 | set_target_properties(QtWidgetsApplication 34 | PROPERTIES 35 | WIN32_EXECUTABLE TRUE 36 | ) 37 | 38 | target_link_libraries(QtWidgetsApplication 39 | PUBLIC 40 | Qt::Core 41 | Qt::Gui 42 | Qt::Widgets 43 | ) 44 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/ProjectWizard/Test/TestPage.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Windows; 5 | using System.Windows.Controls; 6 | 7 | namespace QtVsTools.Wizards.ProjectWizard 8 | { 9 | using Common; 10 | 11 | public partial class TestPage : WizardPage 12 | { 13 | public TestPage() 14 | { 15 | InitializeComponent(); 16 | DataContext = this; 17 | } 18 | 19 | private void OnClassNameChanged(object sender, TextChangedEventArgs e) 20 | { 21 | UpdateFileName(); 22 | } 23 | 24 | private void OnLowerCaseFileNamesClick(object sender, RoutedEventArgs e) 25 | { 26 | UpdateFileName(); 27 | } 28 | 29 | private void UpdateFileName() 30 | { 31 | Data.LowerCaseFileNames = LowerCaseFileNames.IsChecked.GetValueOrDefault(); 32 | ClassSourceFile.Text = 33 | (Data.LowerCaseFileNames ? ClassName.Text.ToLower() : ClassName.Text) + ".cpp"; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Templates/dialogbuttonright/dialogbuttonright.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt Dialog Form File (Button Right) 13 | dialogbuttonright.ico 14 | VC 15 | VisualC 16 | Qt 17 | DialogButtonRight.ui 18 | QtVsTools 19 | QtVsTools-QDialog.ButtonRight 20 | Qt Dialog Form File (.ui) with two buttons on the right side. 21 | 22 | 23 | dialogbuttonright.ui 24 | 25 | 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/300/QtProjectV300.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32106.194 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV300", "QtProjectV300.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64 15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64 16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {862404ED-03D5-41D1-B5BB-72FD8BD05038} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/301/QtProjectV301.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32106.194 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV301", "QtProjectV301.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64 15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64 16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {AD220BEA-2E4C-4346-9387-E61F9D9E6181} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/302/QtProjectV302.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32106.194 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV302", "QtProjectV302.vcxproj", "{10A7CC05-6663-4C63-906F-E56EDF8218CA}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {10A7CC05-6663-4C63-906F-E56EDF8218CA}.Debug|x64.ActiveCfg = Debug|x64 15 | {10A7CC05-6663-4C63-906F-E56EDF8218CA}.Debug|x64.Build.0 = Debug|x64 16 | {10A7CC05-6663-4C63-906F-E56EDF8218CA}.Release|x64.ActiveCfg = Release|x64 17 | {10A7CC05-6663-4C63-906F-E56EDF8218CA}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {4FB5DF86-4C19-4C53-B0CC-EAA09A44D321} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/303/QtProjectV303.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32106.194 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV303", "QtProjectV303.vcxproj", "{812E4050-B861-4918-A0DC-53053B848372}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {812E4050-B861-4918-A0DC-53053B848372}.Debug|x64.ActiveCfg = Debug|x64 15 | {812E4050-B861-4918-A0DC-53053B848372}.Debug|x64.Build.0 = Debug|x64 16 | {812E4050-B861-4918-A0DC-53053B848372}.Release|x64.ActiveCfg = Release|x64 17 | {812E4050-B861-4918-A0DC-53053B848372}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {7F50220B-20CF-415F-80A5-DA078F8F82BF} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Tests/ProjectFormats/304/QtProjectV304.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.31919.166 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtProjectV304", "QtProjectV304.vcxproj", "{923588D5-2AA5-4B0F-8110-56BEEBB531D5}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {923588D5-2AA5-4B0F-8110-56BEEBB531D5}.Debug|x64.ActiveCfg = Debug|x64 15 | {923588D5-2AA5-4B0F-8110-56BEEBB531D5}.Debug|x64.Build.0 = Debug|x64 16 | {923588D5-2AA5-4B0F-8110-56BEEBB531D5}.Release|x64.ActiveCfg = Release|x64 17 | {923588D5-2AA5-4B0F-8110-56BEEBB531D5}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {AE3F49BF-2193-402A-AA0C-E77FF9B63160} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Templates/dialogbuttonbottom/dialogbuttonbottom.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | Qt Dialog Form File (Button Bottom) 13 | dialogbuttonbottom.ico 14 | VC 15 | VisualC 16 | Qt 17 | DialogButtonBottom.ui 18 | QtVsTools 19 | QtVsTools-QDialog.ButtonBottom 20 | Qt Dialog Form File (.ui) with two buttons on the bottom. 21 | 22 | 23 | dialogbuttonbottom.ui 24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/tutorial/QuickAddressBook/QuickAddressBook.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.31919.166 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QuickAddressBook", "QuickAddressBook.vcxproj", "{09DCDDDF-9469-4F20-84EF-7D8481C6FFE1}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {09DCDDDF-9469-4F20-84EF-7D8481C6FFE1}.Debug|x64.ActiveCfg = Debug|x64 15 | {09DCDDDF-9469-4F20-84EF-7D8481C6FFE1}.Debug|x64.Build.0 = Debug|x64 16 | {09DCDDDF-9469-4F20-84EF-7D8481C6FFE1}.Release|x64.ActiveCfg = Release|x64 17 | {09DCDDDF-9469-4F20-84EF-7D8481C6FFE1}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {7D002559-106F-4ED4-A8D0-DCF37C96FDA8} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /QtVsTools.Core/QMakeQuery.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Diagnostics; 5 | using System.Text; 6 | 7 | namespace QtVsTools.Core 8 | { 9 | public class QMakeQuery : QtBuildToolQuery 10 | { 11 | private class QMakeProcess : QMake, IQueryProcess 12 | { 13 | public QMakeProcess(string qtDir) 14 | : base(qtDir) 15 | { 16 | Query = " "; 17 | } 18 | 19 | protected override void OutMsg(Process process, string msg) 20 | { 21 | StdOutput.AppendLine(msg); 22 | } 23 | 24 | protected override void InfoStart(Process process) 25 | { 26 | InfoMsg(process, "Querying persistent properties"); 27 | base.InfoStart(process); 28 | } 29 | 30 | private StringBuilder stdOutput; 31 | public StringBuilder StdOutput => stdOutput ??= new StringBuilder(); 32 | } 33 | 34 | protected override IQueryProcess CreateQueryProcess(string qtDir) => new QMakeProcess(qtDir); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/StaticLib/StaticLib.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /QtVsTools.Core/Common/LazyFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System; 5 | using System.Collections.Concurrent; 6 | using System.Linq.Expressions; 7 | using System.Reflection; 8 | 9 | namespace QtVsTools.Common 10 | { 11 | public class LazyFactory : Concurrent 12 | { 13 | private ConcurrentDictionary Objs { get; } = new(); 14 | 15 | public T Get(Expression> propertyRef, Func initFunc) where T : class 16 | { 17 | if (propertyRef?.Body is not MemberExpression lazyPropertyExpr) 18 | throw new ArgumentException("Expected lambda member expression", "propertyRef"); 19 | if (lazyPropertyExpr?.Member is not PropertyInfo lazyProperty) 20 | throw new ArgumentException("Invalid property reference", "propertyRef"); 21 | lock (CriticalSection) { 22 | if (!Objs.TryGetValue(lazyProperty, out var lazyObject)) 23 | Objs[lazyProperty] = lazyObject = initFunc(); 24 | return lazyObject as T; 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/BigSolution/template/loop_msbuild.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | SET TOTAL=0 4 | SET FAIL=0 5 | SET RATE=0 6 | SET USER_QUIT=0 7 | SET PAD=..00 8 | 9 | :loop 10 | CLS 11 | SET RATE=%PAD%%RATE% 12 | ECHO ################################################################################ 13 | ECHO # Total: %TOTAL%, Failed: %FAIL%...%RATE:~-4,-2%,%RATE:~-2%%% 14 | ECHO ################################################################################ 15 | IF %USER_QUIT% EQU 1 GOTO quit 16 | SET /A "TOTAL+=1" 17 | msbuild %* ^ 18 | /m /bl /v:m /nologo ^ 19 | && ( 20 | DEL last_build_ok.binlog 2> NUL 21 | COPY msbuild.binlog last_build_ok.binlog > NUL 22 | ) || ( 23 | SET /A "FAIL+=1" 24 | COPY msbuild.binlog error_build_%TOTAL%.binlog > NUL 25 | ) 26 | SET /A "RATE=(FAIL*100*100)/(TOTAL)" 27 | ECHO ################################################################################ 28 | CHOICE /C QNOP /N /T 1 /D N /M "# [N]ext / [O]pen Log / [P]ause / [Q]uit ?" 29 | IF %ERRORLEVEL% EQU 3 ( 30 | START "" msbuild.binlog 31 | PAUSE 32 | ) 33 | IF %ERRORLEVEL% EQU 4 PAUSE 34 | SET USER_QUIT=%ERRORLEVEL% 35 | GOTO :loop 36 | :quit 37 | -------------------------------------------------------------------------------- /QtVsTools.Core/VisualStudio/DebuggerEvents.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using Microsoft.VisualStudio; 5 | using Microsoft.VisualStudio.Shell; 6 | using Microsoft.VisualStudio.Shell.Interop; 7 | 8 | namespace QtVsTools.VisualStudio 9 | { 10 | using Core; 11 | 12 | public class DebuggerEvents : IVsDebuggerEvents 13 | { 14 | private readonly EnvDTE.DTE dte; 15 | 16 | public DebuggerEvents(EnvDTE.DTE dte) 17 | { 18 | this.dte = dte; 19 | } 20 | 21 | public int OnModeChange(DBGMODE dbgmodeNew) 22 | { 23 | ThreadHelper.ThrowIfNotOnUIThread(); 24 | 25 | if (dbgmodeNew != DBGMODE.DBGMODE_Run) 26 | return VSConstants.S_OK; 27 | if (HelperFunctions.GetSelectedQtProject(dte) is not { } project) 28 | return VSConstants.S_OK; 29 | 30 | var @namespace = project.VersionInfo?.Namespace; 31 | if (!string.IsNullOrEmpty(@namespace)) 32 | NatvisHelper.CopyVisualizersFiles(@namespace); 33 | 34 | return VSConstants.S_OK; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Tests/Test_QtVsTools.RegExpr/Test_SubTokens.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using Microsoft.VisualStudio.TestTools.UnitTesting; 5 | 6 | namespace QtVsTools.Test.RegExpr 7 | { 8 | using static SyntaxAnalysis.RegExpr; 9 | 10 | [TestClass] 11 | public class Test_SubTokens 12 | { 13 | [TestMethod] 14 | public void TestManyToMany() 15 | { 16 | var tokenA = new Token("A", "a"); 17 | var tokenB = new Token("B", "b" & tokenA); 18 | var tokenC = new Token("C", "c" & tokenB); 19 | var tokenX = new Token("X", (tokenA | tokenB | tokenC).Repeat()); 20 | var parser = tokenX.Render(); 21 | parser.Parse("abacba"); 22 | } 23 | 24 | [TestMethod] 25 | public void TestLookAhead() 26 | { 27 | var tokenA = new Token("A", "a"); 28 | var tokenB = new Token("B", "b" & !LookAhead[tokenA] & AnyChar); 29 | var tokenX = new Token("X", (tokenA | tokenB).Repeat()); 30 | var parser = tokenX.Render(); 31 | parser.Parse("abc"); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Tests/system/suite_installation/tst_8_uninstall/test.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 The Qt Company Ltd. 2 | # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | # -*- coding: utf-8 -*- 5 | 6 | source("../../shared/utils.py") 7 | source("../shared/scripts/install_utils.py") 8 | 9 | import names 10 | 11 | 12 | def main(): 13 | test.warning("This is a semi-manual test.", 14 | "It is designed to run on VS with Qt VS Tools installed " 15 | "and requires manual steps.") 16 | startApp() 17 | if uninstallQtVsTools(): 18 | test.warning("If the test succeeded so far, it now requires manual steps.", 19 | "Please finish the steps of the VSIX Installer wizard which should have " 20 | "appeared. After this, you can run tst_uninstall_verify to check the result.") 21 | closeMainWindow() 22 | 23 | 24 | def uninstallQtVsTools(): 25 | selectInstalledVsTools() 26 | mouseClick(waitForObject(names.msvs_ExtensionManager_UI_InstalledExtItem_Uninstall_Label)) 27 | clickButton(waitForObject(names.microsoft_Visual_Studio_Yes_Button)) 28 | testChangesScheduledLabel() 29 | closeExtensionManager() 30 | return True 31 | -------------------------------------------------------------------------------- /doc/src/externallinks.qdoc: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | /*! 5 | \externalpage http://download.qt.io/development_releases/vsaddin/ 6 | \title Qt Downloads 7 | */ 8 | 9 | /*! 10 | \externalpage https://account.qt.io/ 11 | \title Qt Account 12 | */ 13 | 14 | /*! 15 | \externalpage https://doc.qt.io/qt-6/qtqml-tooling-qmlls.html 16 | \title QML Language Server Reference 17 | */ 18 | 19 | /*! 20 | \externalpage https://doc.qt.io/qt-6/qtquick-debugging.html#starting-applications 21 | \title Qt Quick: Starting Applications 22 | */ 23 | 24 | /*! 25 | \externalpage https://doc.qt.io/qt-6/qtest-overview.html 26 | \title Qt Test Overview 27 | */ 28 | 29 | /*! 30 | \externalpage https://doc.qt.io/qtcreator/creator-qml-performance-monitor.html 31 | \title \QC: Profiling QML applications 32 | */ 33 | 34 | /*! 35 | \externalpage https://doc.qt.io/qtcreator/creator-how-to-profile-qml.html 36 | \title \QC: Profile QML applications 37 | */ 38 | 39 | /*! 40 | \externalpage https://learn.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file 41 | \title Configure unit tests by using a .runsettings file 42 | */ 43 | -------------------------------------------------------------------------------- /QtVsTools.Package/QML/Language/Lsp/Registration.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Runtime.Serialization; 5 | using Newtonsoft.Json; 6 | 7 | namespace QtVsTools.Package.QML.Language.Lsp 8 | { 9 | [DataContract] 10 | internal sealed class Registration 11 | { 12 | [DataMember(Name = "id")] 13 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 14 | public string Id { get; set; } 15 | 16 | [DataMember(Name = "method")] 17 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 18 | public string Method { get; set; } 19 | 20 | [DataMember(Name = "registerOptions")] 21 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 22 | public object RegisterOptions { get; set; } 23 | } 24 | 25 | [DataContract] 26 | internal sealed class RegistrationParams 27 | { 28 | /// 29 | /// 30 | [DataMember(Name = "registrations")] 31 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 32 | public Registration[] Registrations { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /QtVsTools.Wizards/ProjectWizard/Library/LibraryClassPage.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | using System.Windows; 5 | using System.Windows.Controls; 6 | 7 | namespace QtVsTools.Wizards.ProjectWizard 8 | { 9 | using Common; 10 | 11 | public partial class LibraryClassPage : WizardPage 12 | { 13 | public LibraryClassPage() 14 | { 15 | InitializeComponent(); 16 | DataContext = this; 17 | } 18 | 19 | private void OnClassNameChanged(object sender, TextChangedEventArgs e) 20 | { 21 | UpdateFileNames(); 22 | } 23 | 24 | private void OnLowerCaseFileNamesClick(object sender, RoutedEventArgs e) 25 | { 26 | UpdateFileNames(); 27 | } 28 | 29 | private void UpdateFileNames() 30 | { 31 | var filename = ClassName.Text; 32 | if (LowerCaseFileNames.IsChecked.GetValueOrDefault()) 33 | filename = filename.ToLower(); 34 | 35 | ClassHeaderFile.Text = filename + @".h"; 36 | ClassSourceFile.Text = filename + @".cpp"; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /scripts/vstools/install.cmd: -------------------------------------------------------------------------------- 1 | :: Copyright (C) 2025 The Qt Company Ltd. 2 | :: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 3 | 4 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 | ::install.cmd 6 | :: * Removes previously installed extension, if any 7 | :: * Installs newly generated package 8 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 | 10 | ECHO. 11 | %##########################% 12 | %##% %BOLD%Installing extension package%RESET% 13 | %##########################% 14 | 15 | ECHO Removing previous installation... 16 | IF "%VS%" == "2022" ( 17 | start "Uninstalling 2022" /WAIT VSIXInstaller %VSIX_INSTALLER_ARG% /force /quiet /shutdownprocesses /uninstall:QtVsTools.8e827d74-6fc4-40a6-a3aa-faf19652b3b8 18 | ) ELSE IF "%VS%" == "2019" ( 19 | start "Uninstalling 2019" /WAIT VSIXInstaller %VSIX_INSTALLER_ARG% /force /quiet /shutdownprocesses /uninstall:QtVsTools.bf3c71c0-ab41-4427-ada9-9b3813d89ff5 20 | ) 21 | 22 | ECHO Installing... 23 | start "Installing" /WAIT VSIXInstaller %VSIX_INSTALLER_ARG% /force /quiet /shutdownprocesses QtVsTools.Package\bin\%BUILD_CONFIGURATION%\QtVsTools.vsix 24 | EXIT /B %ERRORLEVEL% 25 | -------------------------------------------------------------------------------- /Templates/empty/empty.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {99349809-55BA-4b9d-BF79-8FDBB0286EB3} 18 | ui 19 | 20 | 21 | {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} 22 | ts 23 | 24 | 25 | 26 | --------------------------------------------------------------------------------