ProjectExplorer: inline projectexplorersettingspage.ui

Change-Id: Ia279c32a26f6e07d41fdff71b2f6c2b09075ac87
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Alessandro Portale
2022-08-18 17:39:40 +02:00
parent a531a8c64e
commit c0f2fb9981
6 changed files with 151 additions and 384 deletions

View File

@@ -137,7 +137,7 @@ add_qtc_plugin(ProjectExplorer
projectexplorerconstants.h
projectexplorericons.cpp projectexplorericons.h
projectexplorersettings.h
projectexplorersettingspage.cpp projectexplorersettingspage.h projectexplorersettingspage.ui
projectexplorersettingspage.cpp projectexplorersettingspage.h
projectfilewizardextension.cpp projectfilewizardextension.h
projectimporter.cpp projectimporter.h
projectmacro.cpp projectmacro.h

View File

@@ -143,6 +143,7 @@
#include <QSettings>
#include <QThreadPool>
#include <QTimer>
#include <QVBoxLayout>
#include <functional>
#include <memory>

View File

@@ -111,7 +111,7 @@ Project {
"projectexplorerconstants.h",
"projectexplorericons.h", "projectexplorericons.cpp",
"projectexplorersettings.h",
"projectexplorersettingspage.cpp", "projectexplorersettingspage.h", "projectexplorersettingspage.ui",
"projectexplorersettingspage.cpp", "projectexplorersettingspage.h",
"projectfilewizardextension.cpp", "projectfilewizardextension.h",
"projectimporter.cpp", "projectimporter.h",
"projectmacro.cpp", "projectmacro.h",

View File

@@ -4,13 +4,19 @@
#include "projectexplorersettingspage.h"
#include "projectexplorersettings.h"
#include "projectexplorer.h"
#include "ui_projectexplorersettingspage.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/documentmanager.h>
#include <utils/layoutbuilder.h>
#include <utils/hostosinfo.h>
#include <utils/pathchooser.h>
#include <QButtonGroup>
#include <QCheckBox>
#include <QComboBox>
#include <QCoreApplication>
#include <QLabel>
#include <QRadioButton>
using namespace Core;
using namespace Utils;
@@ -39,102 +45,183 @@ public:
private:
void slotDirectoryButtonGroupChanged();
void setJomVisible(bool);
Ui::ProjectExplorerSettingsPageUi m_ui;
mutable ProjectExplorerSettings m_settings;
QRadioButton *m_currentDirectoryRadioButton;
QRadioButton *m_directoryRadioButton;
PathChooser *m_projectsDirectoryPathChooser;
QCheckBox *m_closeSourceFilesCheckBox;
QCheckBox *m_saveAllFilesCheckBox;
QCheckBox *m_deployProjectBeforeRunCheckBox;
QCheckBox *m_addLibraryPathsToRunEnvCheckBox;
QCheckBox *m_promptToStopRunControlCheckBox;
QCheckBox *m_automaticallyCreateRunConfiguration;
QCheckBox *m_clearIssuesCheckBox;
QCheckBox *m_abortBuildAllOnErrorCheckBox;
QCheckBox *m_lowBuildPriorityCheckBox;
QComboBox *m_buildBeforeDeployComboBox;
QComboBox *m_stopBeforeBuildComboBox;
QComboBox *m_terminalModeComboBox;
QCheckBox *m_jomCheckbox;
QButtonGroup *m_directoryButtonGroup;
};
ProjectExplorerSettingsWidget::ProjectExplorerSettingsWidget(QWidget *parent) :
QWidget(parent)
{
m_ui.setupUi(this);
setJomVisible(HostOsInfo::isWindowsHost());
m_ui.stopBeforeBuildComboBox->addItem(tr("None"), int(StopBeforeBuild::None));
m_ui.stopBeforeBuildComboBox->addItem(tr("All"), int(StopBeforeBuild::All));
m_ui.stopBeforeBuildComboBox->addItem(tr("Same Project"), int(StopBeforeBuild::SameProject));
m_ui.stopBeforeBuildComboBox->addItem(tr("Same Build Directory"),
int(StopBeforeBuild::SameBuildDir));
m_ui.stopBeforeBuildComboBox->addItem(tr("Same Application"),
int(StopBeforeBuild::SameApp));
m_ui.buildBeforeDeployComboBox->addItem(tr("Do Not Build Anything"),
int(BuildBeforeRunMode::Off));
m_ui.buildBeforeDeployComboBox->addItem(tr("Build the Whole Project"),
int(BuildBeforeRunMode::WholeProject));
m_ui.buildBeforeDeployComboBox->addItem(tr("Build Only the Application to Be Run"),
int(BuildBeforeRunMode::AppOnly));
m_ui.directoryButtonGroup->setId(m_ui.currentDirectoryRadioButton, UseCurrentDirectory);
m_ui.directoryButtonGroup->setId(m_ui.directoryRadioButton, UseProjectDirectory);
m_currentDirectoryRadioButton = new QRadioButton(tr("Current directory"));
m_directoryRadioButton = new QRadioButton(tr("Directory"));
m_projectsDirectoryPathChooser = new PathChooser;
m_closeSourceFilesCheckBox = new QCheckBox(tr("Close source files along with project"));
m_saveAllFilesCheckBox = new QCheckBox(tr("Save all files before build"));
m_deployProjectBeforeRunCheckBox = new QCheckBox(tr("Always deploy project before running it"));
m_addLibraryPathsToRunEnvCheckBox =
new QCheckBox(tr("Add linker library search paths to run environment"));
m_promptToStopRunControlCheckBox = new QCheckBox(tr("Always ask before stopping applications"));
m_automaticallyCreateRunConfiguration =
new QCheckBox(tr("Create suitable run configurations automatically"));
m_clearIssuesCheckBox = new QCheckBox(tr("Clear issues list on new build"));
m_abortBuildAllOnErrorCheckBox = new QCheckBox(tr("Abort on error when building all projects"));
m_lowBuildPriorityCheckBox = new QCheckBox(tr("Start build processes with low priority"));
m_buildBeforeDeployComboBox = new QComboBox;
m_buildBeforeDeployComboBox->addItem(tr("Do Not Build Anything"),
int(BuildBeforeRunMode::Off));
m_buildBeforeDeployComboBox->addItem(tr("Build the Whole Project"),
int(BuildBeforeRunMode::WholeProject));
m_buildBeforeDeployComboBox->addItem(tr("Build Only the Application to Be Run"),
int(BuildBeforeRunMode::AppOnly));
const QSizePolicy cbSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
m_buildBeforeDeployComboBox->setSizePolicy(cbSizePolicy);
m_stopBeforeBuildComboBox = new QComboBox;
m_stopBeforeBuildComboBox->addItem(tr("None"), int(StopBeforeBuild::None));
m_stopBeforeBuildComboBox->addItem(tr("All"), int(StopBeforeBuild::All));
m_stopBeforeBuildComboBox->addItem(tr("Same Project"), int(StopBeforeBuild::SameProject));
m_stopBeforeBuildComboBox->addItem(tr("Same Build Directory"),
int(StopBeforeBuild::SameBuildDir));
m_stopBeforeBuildComboBox->addItem(tr("Same Application"),
int(StopBeforeBuild::SameApp));
m_stopBeforeBuildComboBox->setSizePolicy(cbSizePolicy);
m_terminalModeComboBox = new QComboBox;
m_terminalModeComboBox->addItem(tr("Enabled"));
m_terminalModeComboBox->addItem(tr("Disabled"));
m_terminalModeComboBox->addItem(tr("Deduced from Project"));
m_terminalModeComboBox->setSizePolicy(cbSizePolicy);
m_jomCheckbox = new QCheckBox(tr("Use jom instead of nmake"));
m_jomCheckbox->setVisible(HostOsInfo::isWindowsHost());
auto jomLabel = new QLabel("<i>jom</i> is a drop-in replacement for <i>nmake</i> which "
"distributes the compilation process to multiple CPU cores. "
"The latest binary is available at "
"<a href=\"http://download.qt.io/official_releases/jom/\">"
"http://download.qt.io/official_releases/jom/</a>. "
"Disable it if you experience problems with your builds.");
jomLabel->setVisible(HostOsInfo::isWindowsHost());
connect(m_ui.directoryButtonGroup, &QButtonGroup::buttonClicked,
using namespace Utils::Layouting;
Column {
Group {
title(tr("Projects Directory")),
Column {
m_currentDirectoryRadioButton,
Row { m_directoryRadioButton, m_projectsDirectoryPathChooser },
},
},
Group {
title(tr("Closing Projects")),
Column {
m_closeSourceFilesCheckBox,
},
},
Group {
title(tr("Build and Run")),
Column {
m_saveAllFilesCheckBox,
m_deployProjectBeforeRunCheckBox,
m_addLibraryPathsToRunEnvCheckBox,
m_promptToStopRunControlCheckBox,
m_automaticallyCreateRunConfiguration,
m_clearIssuesCheckBox,
m_abortBuildAllOnErrorCheckBox,
m_lowBuildPriorityCheckBox,
Form {
tr("Build before deploying:"), m_buildBeforeDeployComboBox, br,
tr("Stop applications before building:"), m_stopBeforeBuildComboBox, br,
tr("Default for \"Run in terminal\":"), m_terminalModeComboBox, br,
},
m_jomCheckbox,
jomLabel,
},
},
st,
}.attachTo(this);
m_directoryButtonGroup = new QButtonGroup;
m_directoryButtonGroup->setExclusive(true);
m_directoryButtonGroup->addButton(m_currentDirectoryRadioButton, UseCurrentDirectory);
m_directoryButtonGroup->addButton(m_directoryRadioButton, UseProjectDirectory);
connect(m_directoryButtonGroup, &QButtonGroup::buttonClicked,
this, &ProjectExplorerSettingsWidget::slotDirectoryButtonGroupChanged);
}
void ProjectExplorerSettingsWidget::setJomVisible(bool v)
{
m_ui.jomCheckbox->setVisible(v);
m_ui.jomLabel->setVisible(v);
}
ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const
{
m_settings.buildBeforeDeploy = static_cast<BuildBeforeRunMode>(
m_ui.buildBeforeDeployComboBox->currentData().toInt());
m_settings.deployBeforeRun = m_ui.deployProjectBeforeRunCheckBox->isChecked();
m_settings.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked();
m_settings.useJom = m_ui.jomCheckbox->isChecked();
m_settings.addLibraryPathsToRunEnv = m_ui.addLibraryPathsToRunEnvCheckBox->isChecked();
m_settings.prompToStopRunControl = m_ui.promptToStopRunControlCheckBox->isChecked();
m_settings.automaticallyCreateRunConfigurations = m_ui.automaticallyCreateRunConfiguration->isChecked();
m_buildBeforeDeployComboBox->currentData().toInt());
m_settings.deployBeforeRun = m_deployProjectBeforeRunCheckBox->isChecked();
m_settings.saveBeforeBuild = m_saveAllFilesCheckBox->isChecked();
m_settings.useJom = m_jomCheckbox->isChecked();
m_settings.addLibraryPathsToRunEnv = m_addLibraryPathsToRunEnvCheckBox->isChecked();
m_settings.prompToStopRunControl = m_promptToStopRunControlCheckBox->isChecked();
m_settings.automaticallyCreateRunConfigurations = m_automaticallyCreateRunConfiguration->isChecked();
m_settings.stopBeforeBuild = static_cast<StopBeforeBuild>(
m_ui.stopBeforeBuildComboBox->currentData().toInt());
m_settings.terminalMode = static_cast<TerminalMode>(m_ui.terminalModeComboBox->currentIndex());
m_settings.closeSourceFilesWithProject = m_ui.closeSourceFilesCheckBox->isChecked();
m_settings.clearIssuesOnRebuild = m_ui.clearIssuesCheckBox->isChecked();
m_settings.abortBuildAllOnError = m_ui.abortBuildAllOnErrorCheckBox->isChecked();
m_settings.lowBuildPriority = m_ui.lowBuildPriorityCheckBox->isChecked();
m_stopBeforeBuildComboBox->currentData().toInt());
m_settings.terminalMode = static_cast<TerminalMode>(m_terminalModeComboBox->currentIndex());
m_settings.closeSourceFilesWithProject = m_closeSourceFilesCheckBox->isChecked();
m_settings.clearIssuesOnRebuild = m_clearIssuesCheckBox->isChecked();
m_settings.abortBuildAllOnError = m_abortBuildAllOnErrorCheckBox->isChecked();
m_settings.lowBuildPriority = m_lowBuildPriorityCheckBox->isChecked();
return m_settings;
}
void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings &pes)
{
m_settings = pes;
m_ui.buildBeforeDeployComboBox->setCurrentIndex(
m_ui.buildBeforeDeployComboBox->findData(int(m_settings.buildBeforeDeploy)));
m_ui.deployProjectBeforeRunCheckBox->setChecked(m_settings.deployBeforeRun);
m_ui.saveAllFilesCheckBox->setChecked(m_settings.saveBeforeBuild);
m_ui.jomCheckbox->setChecked(m_settings.useJom);
m_ui.addLibraryPathsToRunEnvCheckBox->setChecked(m_settings.addLibraryPathsToRunEnv);
m_ui.promptToStopRunControlCheckBox->setChecked(m_settings.prompToStopRunControl);
m_ui.automaticallyCreateRunConfiguration->setChecked(m_settings.automaticallyCreateRunConfigurations);
m_ui.stopBeforeBuildComboBox->setCurrentIndex(
m_ui.stopBeforeBuildComboBox->findData(int(m_settings.stopBeforeBuild)));
m_ui.terminalModeComboBox->setCurrentIndex(static_cast<int>(m_settings.terminalMode));
m_ui.closeSourceFilesCheckBox->setChecked(m_settings.closeSourceFilesWithProject);
m_ui.clearIssuesCheckBox->setChecked(m_settings.clearIssuesOnRebuild);
m_ui.abortBuildAllOnErrorCheckBox->setChecked(m_settings.abortBuildAllOnError);
m_ui.lowBuildPriorityCheckBox->setChecked(m_settings.lowBuildPriority);
m_buildBeforeDeployComboBox->setCurrentIndex(
m_buildBeforeDeployComboBox->findData(int(m_settings.buildBeforeDeploy)));
m_deployProjectBeforeRunCheckBox->setChecked(m_settings.deployBeforeRun);
m_saveAllFilesCheckBox->setChecked(m_settings.saveBeforeBuild);
m_jomCheckbox->setChecked(m_settings.useJom);
m_addLibraryPathsToRunEnvCheckBox->setChecked(m_settings.addLibraryPathsToRunEnv);
m_promptToStopRunControlCheckBox->setChecked(m_settings.prompToStopRunControl);
m_automaticallyCreateRunConfiguration->setChecked(m_settings.automaticallyCreateRunConfigurations);
m_stopBeforeBuildComboBox->setCurrentIndex(
m_stopBeforeBuildComboBox->findData(int(m_settings.stopBeforeBuild)));
m_terminalModeComboBox->setCurrentIndex(static_cast<int>(m_settings.terminalMode));
m_closeSourceFilesCheckBox->setChecked(m_settings.closeSourceFilesWithProject);
m_clearIssuesCheckBox->setChecked(m_settings.clearIssuesOnRebuild);
m_abortBuildAllOnErrorCheckBox->setChecked(m_settings.abortBuildAllOnError);
m_lowBuildPriorityCheckBox->setChecked(m_settings.lowBuildPriority);
}
FilePath ProjectExplorerSettingsWidget::projectsDirectory() const
{
return m_ui.projectsDirectoryPathChooser->filePath();
return m_projectsDirectoryPathChooser->filePath();
}
void ProjectExplorerSettingsWidget::setProjectsDirectory(const FilePath &pd)
{
m_ui.projectsDirectoryPathChooser->setFilePath(pd);
m_projectsDirectoryPathChooser->setFilePath(pd);
}
bool ProjectExplorerSettingsWidget::useProjectsDirectory()
{
return m_ui.directoryButtonGroup->checkedId() == UseProjectDirectory;
return m_directoryButtonGroup->checkedId() == UseProjectDirectory;
}
void ProjectExplorerSettingsWidget::setUseProjectsDirectory(bool b)
{
if (useProjectsDirectory() != b) {
(b ? m_ui.directoryRadioButton : m_ui.currentDirectoryRadioButton)->setChecked(true);
(b ? m_directoryRadioButton : m_currentDirectoryRadioButton)->setChecked(true);
slotDirectoryButtonGroupChanged();
}
}
@@ -142,7 +229,7 @@ void ProjectExplorerSettingsWidget::setUseProjectsDirectory(bool b)
void ProjectExplorerSettingsWidget::slotDirectoryButtonGroupChanged()
{
bool enable = useProjectsDirectory();
m_ui.projectsDirectoryPathChooser->setEnabled(enable);
m_projectsDirectoryPathChooser->setEnabled(enable);
}
// ------------------ ProjectExplorerSettingsPage

View File

@@ -3,8 +3,6 @@
#pragma once
#include "ui_projectexplorersettingspage.h"
#include <coreplugin/dialogs/ioptionspage.h>
#include <QPointer>

View File

@@ -1,319 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ProjectExplorer::Internal::ProjectExplorerSettingsPageUi</class>
<widget class="QWidget" name="ProjectExplorer::Internal::ProjectExplorerSettingsPageUi">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>994</width>
<height>808</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QGroupBox" name="directoryGroupBox">
<property name="title">
<string>Projects Directory</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<widget class="QRadioButton" name="currentDirectoryRadioButton">
<property name="text">
<string>Current directory</string>
</property>
<attribute name="buttonGroup">
<string notr="true">directoryButtonGroup</string>
</attribute>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="directoryRadioButton">
<property name="text">
<string>Directory</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">directoryButtonGroup</string>
</attribute>
</widget>
</item>
<item row="1" column="1">
<widget class="Utils::PathChooser" name="projectsDirectoryPathChooser"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="closeProjectGroupBox">
<property name="title">
<string>Closing Projects</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="closeSourceFilesCheckBox">
<property name="text">
<string>Close source files along with project</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="buildAndRunGroupBox">
<property name="title">
<string>Build and Run</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="7" column="0">
<widget class="QCheckBox" name="abortBuildAllOnErrorCheckBox">
<property name="text">
<string>Abort on error when building all projects</string>
</property>
</widget>
</item>
<item row="10" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QCheckBox" name="jomCheckbox">
<property name="whatsThis">
<string/>
</property>
<property name="text">
<string>Use jom instead of nmake</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="jomLabel">
<property name="text">
<string>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;http://download.qt.io/official_releases/jom/&quot;&gt;http://download.qt.io/official_releases/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="indent">
<number>20</number>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QWidget" name="widget_1" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="lowBuildPriorityCheckBox">
<property name="toolTip">
<string>Enable this if your system becomes unresponsive while building.</string>
</property>
<property name="text">
<string>Start build processes with low priority</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="deployProjectBeforeRunCheckBox">
<property name="text">
<string>Always deploy project before running it</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="addLibraryPathsToRunEnvCheckBox">
<property name="text">
<string>Add linker library search paths to run environment</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="saveAllFilesCheckBox">
<property name="text">
<string>Save all files before build</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="automaticallyCreateRunConfiguration">
<property name="toolTip">
<string>Creates suitable run configurations automatically when setting up a new kit.</string>
</property>
<property name="text">
<string>Create suitable run configurations automatically</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="promptToStopRunControlCheckBox">
<property name="toolTip">
<string>Asks before terminating the running application in response to clicking the stop button in Application Output.</string>
</property>
<property name="text">
<string>Always ask before stopping applications</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="clearIssuesCheckBox">
<property name="text">
<string>Clear issues list on new build</string>
</property>
</widget>
</item>
<item row="9" column="0">
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="buildBeforeDeployLabel">
<property name="text">
<string>Build before deploying:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QComboBox" name="buildBeforeDeployComboBox"/>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelStopBeforeBuild">
<property name="text">
<string>Stop applications before building:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="stopBeforeBuildComboBox"/>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="terminalModeLabel">
<property name="text">
<string>Default for &quot;Run in terminal&quot;:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QComboBox" name="terminalModeComboBox">
<item>
<property name="text">
<string>Enabled</string>
</property>
</item>
<item>
<property name="text">
<string>Disabled</string>
</property>
</item>
<item>
<property name="text">
<string>Deduced from Project</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QLineEdit</extends>
<header>utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
<buttongroups>
<buttongroup name="directoryButtonGroup"/>
</buttongroups>
</ui>