Skip to content

Commit bb80ca3

Browse files
committed
v0.3.0 add Sync verion munber segment to all projects
1 parent adf78ff commit bb80ca3

File tree

3 files changed

+76
-17
lines changed

3 files changed

+76
-17
lines changed

src/Senparc.ProjectFileManager/MainWindow.xaml

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -89,36 +89,46 @@
8989
<RowDefinition Height="60"></RowDefinition>
9090
<RowDefinition Height="20"></RowDefinition>
9191
<RowDefinition Height="60"></RowDefinition>
92+
<RowDefinition Height="40"></RowDefinition>
93+
<RowDefinition Height="8"></RowDefinition>
9294
<RowDefinition Height="30"></RowDefinition>
9395
<RowDefinition Height="*"></RowDefinition>
9496
</Grid.RowDefinitions>
9597

9698
<!--Row 1-->
97-
<Label Content="Current Version:" Grid.Column="0" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
99+
<Label Grid.Row="0" Content="Current Version:" Grid.Column="0" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
98100
<TextBox Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="4" x:Name="txtVersion" Text="{Binding Version, Mode=TwoWay}" MaxLines="1" Width="200" HorizontalAlignment="Left"/>
99101

100102

101103
<!--Row 2-->
102-
<Label Content="Current Project:" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
103-
<Button Content="Major Version +1" Grid.Column="1" Grid.Row="1" x:Name="btnCurrentMajorVersionPlus" Margin="5,5,5,5" Click="btnCurrentMajorVersionPlus_Click" />
104-
<Button Content="Minor Version +1" Grid.Column="2" Grid.Row="1" x:Name="btnCurrentMinorVersionPlus" Margin="5,5,5,5" Click="btnCurrentMinorVersionPlus_Click"/>
105-
<Button Content="Revision Version +1" Grid.Column="3" Grid.Row="1" Margin="5,5,5,5" x:Name="btnCurrentIncrementalVersionPlus" Click="btnCurrentIncrementalVersionPlus_Click" />
106-
<Button Content="Build Number +1" Grid.Column="4" Grid.Row="1" x:Name="btnCurrenBuildVersionPlus" Margin="5,5,5,5" Click="btnCurrenBuildVersionPlus_Click" />
104+
<Label Grid.Column="0" Grid.Row="1" Content="Current Project:" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
105+
<Button Grid.Column="1" Grid.Row="1" Content="Major Version +1" x:Name="btnCurrentMajorVersionPlus" Margin="5,5,5,5" Click="btnCurrentMajorVersionPlus_Click" />
106+
<Button Grid.Column="2" Grid.Row="1" Content="Minor Version +1" x:Name="btnCurrentMinorVersionPlus" Margin="5,5,5,5" Click="btnCurrentMinorVersionPlus_Click"/>
107+
<Button Grid.Column="3" Grid.Row="1" Content="Revision Version +1" Margin="5,5,5,5" x:Name="btnCurrentIncrementalVersionPlus" Click="btnCurrentIncrementalVersionPlus_Click" />
108+
<Button Grid.Column="4" Grid.Row="1" Content="Build Number +1" x:Name="btnCurrenBuildVersionPlus" Margin="5,5,5,5" Click="btnCurrenBuildVersionPlus_Click" />
107109

108110
<!--Row 3 Blank-->
109111

110112
<!--Row 4-->
111-
<Label Content="All Projects:" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
112-
<Button Content="Major Version +1" Grid.Column="1" Grid.Row="3" x:Name="btnAllMajorVersionPlus" Margin="5,5,5,5" Click="btnAllMajorVersionPlus_Click" />
113-
<Button Content="Minor Version +1" Grid.Column="2" Grid.Row="3" x:Name="btnAllMinorVersionPlus" Margin="5,5,5,5" Click="btnAllMinorVersionPlus_Click"/>
114-
<Button Content="Revision Version +1" Grid.Column="3" Grid.Row="3" Margin="5,5,5,5" x:Name="btnAllIncrementalVersionPlus" Click="btnAllIncrementalVersionPlus_Click" />
115-
<Button Content="Build Number +1" Grid.Column="4" Grid.Row="3" Margin="5,5,5,5" x:Name="btnAllBuildVersionPlus" Click="btnAllBuildVersionPlus_Click" />
113+
<Label Grid.Column="0" Grid.Row="3" Content="All Projects:" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
114+
<Button Grid.Column="1" Grid.Row="3" Content="Major Version +1" x:Name="btnAllMajorVersionPlus" Margin="5,5,5,5" Click="btnAllMajorVersionPlus_Click" />
115+
<Button Grid.Column="2" Grid.Row="3" Content="Minor Version +1" x:Name="btnAllMinorVersionPlus" Margin="5,5,5,5" Click="btnAllMinorVersionPlus_Click"/>
116+
<Button Grid.Column="3" Grid.Row="3" Content="Revision Version +1" Margin="5,5,5,5" x:Name="btnAllIncrementalVersionPlus" Click="btnAllIncrementalVersionPlus_Click" />
117+
<Button Grid.Column="4" Grid.Row="3" Content="Build Number +1" Margin="5,5,5,5" x:Name="btnAllBuildVersionPlus" Click="btnAllBuildVersionPlus_Click" />
116118

117119
<!--Row 5-->
118-
<Label Content="Add Qualifier:" Grid.Column="0" Grid.Row="4" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
119-
<TextBox x:Name="txtQualifier" Text="{Binding QualifierVersion, Mode=OneWay}" MaxLines="1" Margin="5,0,0,0" Grid.Column="1" Grid.Row="4" TextWrapping="Wrap" Height="30"/>
120-
<Button x:Name="btnAllQualifierVersion" Content="Add to All Projects" Grid.Column="2" Grid.Row="4" Height="30" Click="btnAllQualifierVersion_Click" Margin="3,0,3,0" />
121-
<Label Content="e.g. -preview1" Grid.Column="3" Grid.Row="4" VerticalAlignment="Center" />
120+
<Button Grid.Column="1" Grid.Row="4" Content="Sync to All Projects" x:Name="btnSyncMajorVersion" Margin="5,5,5,5" Click="btnSyncMajorVersion_Click" />
121+
<Button Grid.Column="2" Grid.Row="4" Content="Sync to All Projects" x:Name="btnSyncMinorVersion" Margin="5,5,5,5" Click="btnSyncMinorVersion_Click" />
122+
<Button Grid.Column="3" Grid.Row="4" Content="Sync to All Projects" Margin="5,5,5,5" x:Name="btnSyncIncrementalVersion" Click="btnSyncIncrementalVersion_Click" />
123+
<Button Grid.Column="4" Grid.Row="4" Content="Sync to All Projects" x:Name="btnSyncBuildVersion" Margin="5,5,5,5" Click="btnSyncBuildVersion_Click" />
124+
125+
<!--Row 6 Blank-->
126+
127+
<!--Row 7-->
128+
<Label Grid.Column="0" Grid.Row="6" Content="Add Qualifier:" VerticalAlignment="Center" HorizontalContentAlignment="Right"/>
129+
<TextBox Grid.Column="1" Grid.Row="6" x:Name="txtQualifier" Text="{Binding QualifierVersion, Mode=OneWay}" MaxLines="1" Margin="5,0,0,0" TextWrapping="Wrap" Height="30"/>
130+
<Button Grid.Column="2" Grid.Row="6" x:Name="btnAllQualifierVersion" Content="Add to All Projects" Height="30" Click="btnAllQualifierVersion_Click" Margin="3,0,3,0" />
131+
<Label Grid.Column="3" Grid.Row="6" Content="e.g. -preview1" VerticalAlignment="Center" />
122132

123133
</Grid>
124134
</TabItem>

src/Senparc.ProjectFileManager/MainWindow.xaml.cs

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,26 @@ private void ChangeFileVersion(PropertyGroup propertyGroup, Action<VersionObject
230230
}
231231
}
232232

233+
private void SyncAllFileVersion(PropertyGroup propertyGroup,string versionName, Func<VersionObject,int> newVersionNumberFunc,Action<VersionObject,int> versionOperate)
234+
{
235+
if (SelectedFile.Version.IsNullOrEmpty())
236+
{
237+
MessageBox.Show("Current project doesn't have a valid version number!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
238+
return;
239+
}
240+
241+
if (MessageBoxResult.Yes != MessageBox.Show($"Are you sure you want to synchronize the {versionName} of the current project to all projects?","Confirm", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
242+
{
243+
return;
244+
}
245+
246+
var currentVersion = VersionHelper.GetVersionObject(SelectedFile.Version);
247+
var newVersionNumber = newVersionNumberFunc(currentVersion);
248+
ProjectFiles.ToList().ForEach(pgFile => ChangeFileVersion(pgFile, pg => versionOperate(pg, newVersionNumber)));
249+
250+
MessageBox.Show($"All project verion numbers({versionName}) have been changed to {currentVersion}!", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
251+
}
252+
233253
#region Current Project
234254

235255

@@ -257,6 +277,30 @@ private void btnCurrenBuildVersionPlus_Click(object sender, RoutedEventArgs e)
257277

258278
#region All Projects
259279

280+
#region Sync
281+
private void btnSyncMajorVersion_Click(object sender, RoutedEventArgs e)
282+
{
283+
SyncAllFileVersion(SelectedFile, "Major Version",currentVersion=>currentVersion.MajorVersion, (pg, versionNumber) => pg.MajorVersion = versionNumber);
284+
}
285+
286+
private void btnSyncMinorVersion_Click(object sender, RoutedEventArgs e)
287+
{
288+
SyncAllFileVersion(SelectedFile, "Minor Version", currentVersion => currentVersion.MinorVersion, (pg, versionNumber) => pg.MinorVersion = versionNumber);
289+
}
290+
291+
private void btnSyncIncrementalVersion_Click(object sender, RoutedEventArgs e)
292+
{
293+
SyncAllFileVersion(SelectedFile, "Revision Version", currentVersion => currentVersion.RevisionVersion, (pg, versionNumber) => pg.RevisionVersion = versionNumber);
294+
}
295+
296+
private void btnSyncBuildVersion_Click(object sender, RoutedEventArgs e)
297+
{
298+
SyncAllFileVersion(SelectedFile, "BuildNumber Version", currentVersion => currentVersion.BuildNumberVersion, (pg, versionNumber) => pg.BuildNumberVersion = versionNumber);
299+
}
300+
#endregion
301+
302+
#region Plus
303+
260304
private void btnAllMajorVersionPlus_Click(object sender, RoutedEventArgs e)
261305
{
262306
ProjectFiles.ToList().ForEach(pgFile => ChangeFileVersion(pgFile, pg => pg.MajorVersion++));
@@ -290,6 +334,9 @@ private void btnAllQualifierVersion_Click(object sender, RoutedEventArgs e)
290334
ProjectFiles.ToList().ForEach(pgFile => ChangeFileVersion(pgFile, pg => pg.QualifierVersion = qualifierVersion));
291335
}
292336

337+
#endregion
338+
339+
293340
#endregion
294341

295342
#endregion
@@ -374,7 +421,7 @@ private void menuSaveAll_Click(object sender, RoutedEventArgs e)
374421
";
375422
foreach (var file in notSaved)
376423
{
377-
msg += file + Environment.NewLine+ Environment.NewLine;
424+
msg += file + Environment.NewLine + Environment.NewLine;
378425
}
379426
}
380427

@@ -408,5 +455,7 @@ private void btnRemoveFileItem_Click(object sender, RoutedEventArgs e)
408455
ProjectFiles.Remove(propertyGroup);
409456
e.Handled = true;
410457
}
458+
459+
411460
}
412461
}

src/Senparc.ProjectFileManager/Senparc.ProjectFileManager.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<OutputType>WinExe</OutputType>
55
<TargetFramework>netcoreapp3.1</TargetFramework>
66
<UseWPF>true</UseWPF>
7-
<Version>0.2.0</Version>
7+
<Version>0.3.0</Version>
88
</PropertyGroup>
99

1010
<ItemGroup>

0 commit comments

Comments
 (0)