Skip to content

Commit

Permalink
fixed not showing folders bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ArkadySK committed Sep 2, 2021
1 parent d572624 commit 9d60d3a
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 31 deletions.
3 changes: 2 additions & 1 deletion GbxMapBrowser/FolderInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Diagnostics;

namespace GbxMapBrowser
{
Expand Down Expand Up @@ -31,8 +32,8 @@ public FolderInfo(string fullnamepath)
FolderName = fullnamepath.Split('\\').LastOrDefault();
FolderFullPath = fullnamepath;
DirectoryInfo directoryInfo = new DirectoryInfo(fullnamepath);
Debug.WriteLine("hello world");
DateModified = directoryInfo.LastWriteTime;
}

}
}
2 changes: 1 addition & 1 deletion GbxMapBrowser/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</Grid.RowDefinitions>
<Button Style="{StaticResource AddressButtonStyle}" x:Name="parentFolderButton" Content="" Click="parentFolderButton_Click"/>
<TextBox x:Name="currentFolderTextBox" FontSize="16" BorderThickness="0" Margin="5 0" Grid.Column="1" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center" KeyUp="currentFolderTextBox_KeyUp"/>
<Button Style="{StaticResource AddressButtonStyle}" x:Name="refreshMapsButton" Grid.Column="3" HorizontalAlignment="Center" Margin="0 0 5 0" Content="" Click="refreshMapsButton_Click"/>
<Button Style="{StaticResource AddressButtonStyle}" x:Name="refreshMapsButton" Grid.Column="3" HorizontalAlignment="Center" Content="" Click="refreshMapsButton_Click"/>
<Button Style="{StaticResource AddressButtonStyle}" x:Name="OpenInExplorerButton" Grid.Column="4" HorizontalAlignment="Center" Content="📁" Click="OpenInExplorerButton_Click"/>
<Rectangle Fill="{DynamicResource MahApps.Brushes.Badged.Background.Disabled}" Grid.Row="1" Height="1" Grid.ColumnSpan="5"/>
</Grid>
Expand Down
8 changes: 7 additions & 1 deletion GbxMapBrowser/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ async Task UpdateMapList(string mapsFolder)
sw.Start();
Application.Current.Dispatcher.Invoke(() =>
{
mapListBox.ItemsSource = null;
//mapListBox.ItemsSource = null;
currentFolderTextBox.Text = mapsFolder;
}
);
Expand All @@ -139,19 +139,25 @@ async Task UpdateMapList(string mapsFolder)
foreach (var folderPath in folders)
{
Task folderTask = Task.Run(() => MapInfoController.AddFolder(folderPath));
mapTasks.Add(folderTask);
}
foreach (string mapPath in mapFiles)
{
Task mapTask = Task.Run(() => MapInfoController.AddMap(mapPath));
mapTasks.Add(mapTask);
}
await Task.WhenAll(mapTasks.ToArray());
await Task.Delay(1);
await MapInfoController.SortMapList(sortKind);

mapListBox.ItemsSource = MapInfoController.MapList;

sw.Stop();
decimal s = sw.ElapsedMilliseconds / 1000m;
Debug.WriteLine($"loaded in {s}s");
Debug.WriteLine($"Items: {MapInfoController.MapList.Count}, Tasks count: {mapTasks.Count}");
mapListBox.Items.Refresh();

}
#endregion

Expand Down
61 changes: 33 additions & 28 deletions GbxMapBrowser/MapInfoController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,81 +50,86 @@ orderby map.MapName ascending

public async Task SortMapList(SortKind.Kind sortkind)
{
IOrderedEnumerable<MapInfo> orderedMapInfos = null; //has value everytime
IOrderedEnumerable<FolderInfo> orderedFolderInfos = orderedFolderInfos = from folder in folderInfosList //value is changed only sometimes
orderby folder.FolderName ascending
select folder;
IOrderedEnumerable<MapInfo> orderedMapInfos = null;
IOrderedEnumerable<FolderInfo> orderedFolderInfos = null;
switch (sortkind)
{
case SortKind.Kind.ByNameAscending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.MapName ascending
select map;
orderedFolderInfos = from folder in folderInfosList
select map);
orderedFolderInfos = await Task.Run(() => from folder in folderInfosList
orderby folder.FolderName ascending
select folder;
select folder);
break;
}
case SortKind.Kind.ByNameDescending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.MapName descending
select map;
orderedFolderInfos = from folder in folderInfosList
select map);
orderedFolderInfos = await Task.Run(() => from folder in folderInfosList
orderby folder.FolderName descending
select folder;
select folder);
break;
}
case SortKind.Kind.ByDateModifiedAscending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.DateModified ascending
select map;
orderedFolderInfos = from folder in folderInfosList
select map);
orderedFolderInfos = await Task.Run(() => from folder in folderInfosList
orderby folder.DateModified ascending
select folder;
select folder);
break;
}
case SortKind.Kind.ByDateModifiedDescending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.DateModified descending
select map;
orderedFolderInfos = from folder in folderInfosList
select map);
orderedFolderInfos = await Task.Run(() => from folder in folderInfosList
orderby folder.DateModified descending
select folder;
select folder);
break;
}
case SortKind.Kind.BySizeAscending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.FileSize ascending
select map;
select map);
break;
}
case SortKind.Kind.BySizeDescending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.FileSize descending
select map;
select map);
break;
}
case SortKind.Kind.ByLendthAscending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.ObjectiveGold ascending
select map;
select map);
break;
}
case SortKind.Kind.ByLendthDescending:
{
orderedMapInfos = from map in mapInfosList
orderedMapInfos = await Task.Run(() => from map in mapInfosList
orderby map.ObjectiveGold descending
select map;
select map);
break;
}
}

if(orderedFolderInfos == null) //fix when null
{
orderedFolderInfos = await Task.Run(() => from folder in folderInfosList
orderby folder.FolderName ascending
select folder);
}

mapList.Clear();
await Task.Run(() => mapList.AddRange(orderedFolderInfos));
Expand Down

0 comments on commit 9d60d3a

Please sign in to comment.