43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
KeePass looks for some resources (XSL files) in the executable directory,
|
|
however under UNIX system this not a good idea, so we look into the
|
|
CommonApplicationData SpecialFolder, which usually maps to "/usr/share/".
|
|
So the final search path should be "/usr/share/KeePass/XSL/".
|
|
|
|
--- a/KeePass/forms/AboutForm.cs
|
|
+++ b/KeePass/Forms/AboutForm.cs
|
|
@@ -31,9 +31,11 @@
|
|
using KeePass.Resources;
|
|
using KeePass.UI;
|
|
using KeePass.Util;
|
|
+using KeePass.Native;
|
|
|
|
using KeePassLib;
|
|
using KeePassLib.Utility;
|
|
+using KeePassLib.Native;
|
|
|
|
namespace KeePass.Forms
|
|
{
|
|
@@ -98,8 +100,21 @@
|
|
m_lvComponents.Items.Add(lvi);
|
|
|
|
lvi = new ListViewItem(KPRes.XslStylesheetsKdbx);
|
|
- string strPath = WinUtil.GetExecutable();
|
|
- strPath = UrlUtil.GetFileDirectory(strPath, true, false);
|
|
+
|
|
+ string strPath;
|
|
+ if (NativeLib.IsUnix())
|
|
+ {
|
|
+ strPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
|
|
+ strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
|
|
+ strPath += PwDefs.ShortProductName.ToLower();
|
|
+ strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ strPath = WinUtil.GetExecutable();
|
|
+ strPath = UrlUtil.GetFileDirectory(strPath, true, false);
|
|
+ }
|
|
+
|
|
strPath += AppDefs.XslFilesDir;
|
|
strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
|
|
bool bInstalled = File.Exists(strPath + AppDefs.XslFileHtmlFull);
|