<!--
|
*****************************************************************************
|
**
|
** Copyright (C) 2022 The Qt Company Ltd.
|
** Contact: https://www.qt.io/licensing/
|
**
|
** This file is part of the Qt VS Tools.
|
**
|
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
** Commercial License Usage
|
** Licensees holding valid commercial Qt licenses may use this file in
|
** accordance with the commercial license agreement provided with the
|
** Software or, alternatively, in accordance with the terms contained in
|
** a written agreement between you and The Qt Company. For licensing terms
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
** information use the contact form at https://www.qt.io/contact-us.
|
**
|
** GNU General Public License Usage
|
** Alternatively, this file may be used under the terms of the GNU
|
** General Public License version 3 as published by the Free Software
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
** included in the packaging of this file. Please review the following
|
** information to ensure the GNU General Public License requirements will
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
**
|
** $QT_END_LICENSE$
|
**
|
*****************************************************************************
|
-->
|
|
<common:WizardPage x:Class="QtVsTools.Wizards.ItemWizard.QtClassPage"
|
xmlns:common="clr-namespace:QtVsTools.Wizards.Common"
|
xmlns:util="clr-namespace:QtVsTools.Wizards.Util"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
KeepAlive="True"
|
mc:Ignorable="d"
|
d:DesignHeight="445"
|
d:DesignWidth="585">
|
<Grid>
|
<Grid.ColumnDefinitions>
|
<ColumnDefinition Width="100" />
|
<ColumnDefinition Width="*" />
|
</Grid.ColumnDefinitions>
|
<Image Grid.Column="0"
|
HorizontalAlignment="Center"
|
Source="/QtVsTools.Wizards;component/Resources/Qt-logo-small.png"
|
VerticalAlignment="Top"
|
Margin="0,25,0,0"
|
RenderTransformOrigin="1,0">
|
<Image.RenderTransform>
|
<TransformGroup>
|
<ScaleTransform ScaleY="0.86"
|
ScaleX="0.86" />
|
</TransformGroup>
|
</Image.RenderTransform>
|
</Image>
|
<Grid Grid.Column="1"
|
Margin="25,25,10,0">
|
<Grid.RowDefinitions>
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
</Grid.RowDefinitions>
|
<TextBlock TextWrapping="Wrap"
|
Grid.Row="0">
|
<Run FontWeight="Bold"
|
Text="{Binding Path=Header}" />
|
<LineBreak />
|
<LineBreak />
|
<Run Text="{Binding Path=Message}" />
|
<LineBreak />
|
</TextBlock>
|
<Grid Grid.Row="1">
|
<Grid.RowDefinitions>
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
</Grid.RowDefinitions>
|
<Grid.ColumnDefinitions>
|
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
</Grid.ColumnDefinitions>
|
<Grid.Resources>
|
<Style TargetType="TextBox">
|
<Style.Triggers>
|
<Trigger Property="Validation.HasError"
|
Value="true">
|
<Setter Property="ToolTip"
|
Value="{Binding RelativeSource={RelativeSource Self},
|
Path=(Validation.Errors)[0].ErrorContent}" />
|
</Trigger>
|
</Style.Triggers>
|
</Style>
|
</Grid.Resources>
|
<TextBlock Grid.Row="0"
|
Text="Class Name:"
|
Margin="0,0,10,0" />
|
<TextBox Grid.Row="1"
|
Margin="0,0,10,10"
|
Name="ClassName"
|
TextChanged="OnClassNameChanged"
|
TabIndex="0">
|
<TextBox.Text>
|
<Binding Path="Data.ClassName"
|
NotifyOnValidationError="True"
|
UpdateSourceTrigger="PropertyChanged">
|
<Binding.ValidationRules>
|
<util:ClassNameValidationRule SupportNamespaces="True" />
|
</Binding.ValidationRules>
|
</Binding>
|
</TextBox.Text>
|
</TextBox>
|
<TextBlock TextWrapping="Wrap"
|
Text="Constructor signature:"
|
Grid.Row="2"
|
Margin="0,0,10,5" />
|
<ComboBox Grid.Row="3"
|
VerticalAlignment="Top"
|
TabIndex="2"
|
IsSynchronizedWithCurrentItem="True"
|
Margin="0,0,10,30"
|
SelectedIndex="0"
|
Text="{Binding Path=Data.ConstructorSignature}">
|
<ComboBoxItem Content="QObject *parent"
|
IsSelected="True" />
|
<ComboBoxItem Content="QWidget *parent" />
|
<ComboBoxItem Content="" />
|
<ComboBox.Style>
|
<Style TargetType="ComboBox">
|
<Style.Triggers>
|
<DataTrigger Binding="{Binding ElementName=BaseClass, Path=Text}"
|
Value="">
|
<Setter Property="IsEnabled"
|
Value="false" />
|
</DataTrigger>
|
</Style.Triggers>
|
</Style>
|
</ComboBox.Style>
|
</ComboBox>
|
<TextBlock TextWrapping="Wrap"
|
Text="Base class:"
|
Margin="0,0,10,0"
|
Grid.Column="1" />
|
<TextBox Margin="0,0,0,10"
|
TabIndex="1"
|
Grid.Column="1"
|
Grid.Row="1"
|
Name="BaseClass">
|
<TextBox.Text>
|
<Binding Path="Data.BaseClass"
|
NotifyOnValidationError="True"
|
UpdateSourceTrigger="PropertyChanged">
|
<Binding.ValidationRules>
|
<util:ClassNameValidationRule AllowEmptyIdentifier="True"/>
|
</Binding.ValidationRules>
|
</Binding>
|
</TextBox.Text>
|
</TextBox>
|
<Grid Grid.Row="4"
|
Grid.ColumnSpan="2">
|
<Grid.RowDefinitions>
|
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
</Grid.RowDefinitions>
|
<Grid.ColumnDefinitions>
|
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
</Grid.ColumnDefinitions>
|
<TextBlock Grid.Row="0"
|
Margin="0,0,10,5"
|
Text="Header (.h) file:" />
|
<TextBox Grid.Row="1"
|
Margin="0,0,10,0"
|
Name="ClassHeaderFile"
|
TabIndex="4">
|
<TextBox.Text>
|
<Binding Path="Data.ClassHeaderFile"
|
NotifyOnValidationError="True"
|
UpdateSourceTrigger="PropertyChanged">
|
<Binding.ValidationRules>
|
<util:FileNameValidationRule FileExt=".h" />
|
<util:FileExistsinFilterValidationRule Filter="FL_HFiles" />
|
</Binding.ValidationRules>
|
</Binding>
|
</TextBox.Text>
|
</TextBox>
|
<TextBlock Grid.Row="0"
|
Grid.Column="1"
|
Margin="0,0,0,5"
|
Text="Source (.cpp) file:" />
|
<TextBox Grid.Row="1"
|
Grid.Column="1"
|
Margin="0,0,0,00"
|
Name="ClassSourceFile"
|
TabIndex="5">
|
<TextBox.Text>
|
<Binding Path="Data.ClassSourceFile"
|
NotifyOnValidationError="True"
|
UpdateSourceTrigger="PropertyChanged">
|
<Binding.ValidationRules>
|
<util:FileNameValidationRule FileExt=".cpp" />
|
<util:FileExistsinFilterValidationRule Filter="FL_CppFiles" />
|
</Binding.ValidationRules>
|
</Binding>
|
</TextBox.Text>
|
</TextBox>
|
</Grid>
|
<CheckBox Grid.Row="5"
|
Content="Lower case file names"
|
Name="LowerCaseFileNames"
|
Click="OnLowerCaseFileNamesClick"
|
Margin="0,20,10,5"
|
TabIndex="6" />
|
<CheckBox Content="Insert Q_OBJECT macro"
|
Grid.Column="1"
|
Grid.Row="3"
|
VerticalAlignment="Center"
|
Margin="0,0,0,30"
|
TabIndex="3"
|
IsChecked="{Binding Path=Data.InsertQObjectMacro}">
|
<CheckBox.Style>
|
<Style TargetType="CheckBox">
|
<Style.Triggers>
|
<DataTrigger Binding="{Binding ElementName=BaseClass, Path=Text}"
|
Value="">
|
<Setter Property="IsEnabled"
|
Value="false" />
|
</DataTrigger>
|
</Style.Triggers>
|
</Style>
|
</CheckBox.Style>
|
</CheckBox>
|
</Grid>
|
<StackPanel HorizontalAlignment="Right"
|
Orientation="Horizontal"
|
Grid.Row="2"
|
Margin="0,0,0,10">
|
<Button Click="OnPreviousButtonClick"
|
Name="PreviousButton"
|
IsEnabled="{Binding Path=PreviousButtonEnabled}"
|
MinWidth="75">< _Previous</Button>
|
<Button MinWidth="75"
|
Name="NextButton"
|
Click="OnNextButtonClick"
|
IsEnabled="{Binding Path=NextButtonEnabled}"
|
Margin="10,0,0,0">_Next ></Button>
|
<Button MinWidth="75"
|
Click="OnFinishButtonClick"
|
Margin="10,0,0,0"
|
IsDefault="True"
|
Name="FinishButton"
|
Content="_Finish"
|
VerticalAlignment="Bottom">
|
<Button.Style>
|
<Style TargetType="Button">
|
<Setter Property="IsEnabled"
|
Value="false" />
|
<Style.Triggers>
|
<MultiDataTrigger>
|
<MultiDataTrigger.Conditions>
|
<Condition Binding="{Binding Path=FinishButtonEnabled}"
|
Value="true" />
|
<Condition Binding="{Binding ElementName=ClassName,
|
Path=(Validation.HasError)}"
|
Value="false" />
|
<Condition Binding="{Binding ElementName=BaseClass,
|
Path=(Validation.HasError)}"
|
Value="false" />
|
<Condition Binding="{Binding ElementName=ClassHeaderFile,
|
Path=(Validation.HasError)}"
|
Value="false" />
|
<Condition Binding="{Binding ElementName=ClassSourceFile,
|
Path=(Validation.HasError)}"
|
Value="false" />
|
</MultiDataTrigger.Conditions>
|
<Setter Property="IsEnabled"
|
Value="true" />
|
</MultiDataTrigger>
|
</Style.Triggers>
|
</Style>
|
</Button.Style>
|
</Button>
|
<Button Click="OnCancelButtonClick"
|
MinWidth="75"
|
Margin="10,0,0,0"
|
Name="CancelButton"
|
IsEnabled="{Binding Path=CancelButtonEnabled}"
|
IsCancel="True">_Cancel</Button>
|
</StackPanel>
|
</Grid>
|
</Grid>
|
</common:WizardPage>
|