The data path of the linux application has been changed to XDG_DATA_HOME.

Файлы которые создаёт приложение помещаются в $XDG_DATA_HOME/pgadmin3 или
~/.local/share/pgadmin3.
Уже существующие файлы копируются из ~/postgresql на новое место.
Каталог postgresql преименовывается в postgresql-no_use. Его можно будет удалить.
Иконки в формате SVG теперь можно размещать и в $XDG_DATA_HOME/pgadmin3 в каталоге svg.

Такая структуры каталога данных приложения:
~/.local/share/pgadmin3
├── icons                      # иконки для баз данных
├── recovery                   # сохранённые вкладки
├── svg                        # каталог svg иконок приложения
├── filter_load.txt            # фильтры csv лога для Log view
├── gitlab.json                # настройки подключения к git
├── pgadmin3opt.json           # дополнительные настройки приложения
└── pgadmin_autoreplace.xml    # списки автозамены
This commit is contained in:
lsv 2025-12-25 17:39:53 +05:00
parent 9f6da5c40a
commit cc5cc00060
8 changed files with 67 additions and 61 deletions

View file

@ -1054,6 +1054,33 @@ void pgAdmin3::InitAppPaths()
brandingPath = LocatePath(BRANDING_DIR, false);
pluginsDir = LocatePath(PLUGINS_DIR, false);
settingsIni = LocatePath(SETTINGS_INI, true);
#ifdef __LINUX__
wxString newdir;
wxString olddatadir=wxFileName::GetHomeDir()+sepPath+"postgresql";
if ( !wxGetEnv(wxS("XDG_DATA_HOME"), &newdir) || newdir.empty() )
newdir = wxFileName::GetHomeDir() + wxT("/.local/share/pgadmin3");
dataDir=newdir ;
if (!wxDir::Exists(newdir)) {
wxMkDir(newdir,wxS_IRUSR|wxS_IWUSR|wxS_IXUSR);
if (wxDir::Exists(olddatadir)) {
if (!wxShell(wxString::Format("cp -r %s/* %s",olddatadir,newdir))) {
wxLogError(wxString::Format("Error copy dirictory 'cp -r %s %s'",olddatadir,newdir));
dataDir=wxFileName::GetHomeDir() + sepPath + "postgresql";
} else {
wxShell(wxString::Format("mv %s %s",olddatadir,olddatadir+"-no_use"));
wxShell(wxString::Format("mv ~/.pgadmin3autoreplace %s",newdir+"/pgadmin_autoreplace.xml"));
}
}
}
#else
dataDir= wxStandardPaths::Get().GetUserConfigDir() + wxFileName::GetPathSeparator() + "postgresql";
#endif
}
// Setup the paths for the helper apps etc.