Skip to content

Commit

Permalink
🔧 💾 Fix, Feat: 修复插件管理逻辑多重导入与删不掉的问题, 插件详情页UI调整
Browse files Browse the repository at this point in the history
  • Loading branch information
Dynesshely committed Dec 3, 2022
1 parent eba1835 commit 96df406
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 33 deletions.
78 changes: 52 additions & 26 deletions Services/PluginsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,20 +174,24 @@ internal static void ImportPlugin(string[] kxpfiles, bool inGraphic = false)
Console.WriteLine($"No config file found!");
if (!inGraphic) Environment.Exit(ErrorCodes.ConfigFileDidntExists);
}
string pluginsavedir = config?.App.LocalPluginsFileDirectory;
string pluginsavedir = config?.App?.LocalPluginsFileDirectory;
if (pluginsavedir != null)
pluginsavedir = Path.GetFullPath(pluginsavedir);
string thisplugindir = $"{pluginsavedir}/" +
$"{pluginStruct.PublisherName}_{pluginStruct.AuthorName}/" +
$"{pluginStruct.Name}/" +
$"{pluginStruct.Version}/";
thisplugindir = Path.GetFullPath(thisplugindir);
if (Directory.Exists(thisplugindir))
Directory.Delete(thisplugindir, true);
_ = Directory.CreateDirectory(thisplugindir);
_ = decoder.Decode(thisplugindir);

Program.PluginsList.Plugins.Add(new Plugin()
{
InstallPath = thisplugindir
});
if (!Program.PluginsList.Plugins.Exists(x => x.InstallPath.Equals(thisplugindir)))
Program.PluginsList.Plugins.Add(new()
{
InstallPath = thisplugindir
});
}
catch (Exception e)
{
Expand Down Expand Up @@ -222,34 +226,56 @@ internal static void KeepCheckAndRemoveOrDelete()
};
timer.Elapsed += (_, _) =>
{
bool isPluginsListUpdated = false;
if (pluginsToRemoveFromDB.Count > 0)
try
{
isPluginsListUpdated = true;
while (pluginsToRemoveFromDB.Count > 0)
bool isPluginsListUpdated = false;
if (pluginsToRemoveFromDB.Count > 0)
{
Program.PluginsList.Plugins.Remove(pluginsToRemoveFromDB.Dequeue());
isPluginsListUpdated = true;
while (pluginsToRemoveFromDB.Count > 0)
{
Plugin pg = pluginsToRemoveFromDB.Dequeue();
Program.PluginsList.Plugins.RemoveAt(
Program.PluginsList.Plugins.FindIndex(
x =>
{
if (x.InstallPath != null)
return x.InstallPath.Equals(pg.InstallPath);
else return false;
}));
}
}
}
if (pluginsToDelete.Count > 0)
{
isPluginsListUpdated = true;
while (pluginsToDelete.Count > 0)
if (pluginsToDelete.Count > 0)
{
Plugin pg = pluginsToDelete.Dequeue();
Program.PluginsList.Plugins.Remove(pg);
string pgfiledir = Path.GetFullPath(
$"{Program.Config.App.LocalPluginsFileDirectory}/" +
$"{pg.PluginDetails.PublisherName}_{pg.PluginDetails.AuthorName}/" +
$"{pg.PluginDetails.Name}/{pg.PluginDetails.Version}/"
);
Directory.Delete(pgfiledir, true);
isPluginsListUpdated = true;
while (pluginsToDelete.Count > 0)
{
Plugin pg = pluginsToDelete.Dequeue();
Program.PluginsList.Plugins.RemoveAt(
Program.PluginsList.Plugins.FindIndex(
x =>
{
if (x.InstallPath != null)
return x.InstallPath.Equals(pg.InstallPath);
else return false;
}));
string pgfiledir = Path.GetFullPath(
$"{Program.Config.App.LocalPluginsFileDirectory}/" +
$"{pg.PluginDetails.PublisherName}_{pg.PluginDetails.AuthorName}/" +
$"{pg.PluginDetails.Name}/{pg.PluginDetails.Version}/"
);
Directory.Delete(pgfiledir, true);
}
}
}
if (isPluginsListUpdated) EventHandlers.Invoke(nameof(EventHandlers.PluginsListChanged));
if (isPluginsListUpdated) EventHandlers.Invoke(nameof(EventHandlers.PluginsListChanged));
}
catch (Exception ex)
{
Log.Error("In PluginsManager.KeepCheckAndRemoveOrDelete()", ex);
}
};
timer.Start();
}
Expand Down
13 changes: 6 additions & 7 deletions Views/PluginDetailWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
d:DesignWidth="800"
Background="Transparent"
ExtendClientAreaToDecorationsHint="True"
Icon="avares://KitX.Assets/KitX-Icon-32x32.png"
TransparencyLevelHint="AcrylicBlur"
mc:Ignorable="d">

Expand All @@ -29,11 +30,11 @@
</ExperimentalAcrylicBorder.Material>
</ExperimentalAcrylicBorder>

<ScrollViewer Margin="0,40,0,0">
<ScrollViewer Margin="20,20,20,60">

<Panel>

<StackPanel Margin="25,0,25,25">
<StackPanel Margin="5,5,15,35">

<DockPanel>

Expand Down Expand Up @@ -185,14 +186,12 @@
<ListBox Margin="0,10,0,0" Items="{Binding Functions}"/>
</TabItem>
<TabItem FontSize="16" Header="{DynamicResource Text_Plugin_Tags}">
<ListBox Margin="0,10,0,0">
<ListBoxItem Content="Tag1: aaa"/>
<ListBoxItem Content="Tag2: bbb"/>
<ListBoxItem Content="Tag3: ccc"/>
</ListBox>
<ListBox Margin="0,10,0,0" Items="{Binding Tags}"/>
</TabItem>
</TabControl>

<Border Height="100"/>

</StackPanel>

</Panel>
Expand Down

0 comments on commit 96df406

Please sign in to comment.