|
|
|
|
@ -1193,15 +1193,17 @@ void LLFloaterPreference::onOpen(const LLSD& key)
|
|
|
|
|
// <FS:Ansariel> Fix resetting graphics preset on cancel
|
|
|
|
|
saveGraphicsPreset(gSavedSettings.getString("PresetGraphicActive"));
|
|
|
|
|
|
|
|
|
|
bool started = (LLStartUp::getStartupState() == STATE_STARTED);
|
|
|
|
|
// <FS:Ansariel> FIRE-19810: Make presets global since PresetGraphicActive setting is global as well
|
|
|
|
|
//bool started = (LLStartUp::getStartupState() == STATE_STARTED);
|
|
|
|
|
|
|
|
|
|
LLButton* load_btn = findChild<LLButton>("PrefLoadButton");
|
|
|
|
|
LLButton* save_btn = findChild<LLButton>("PrefSaveButton");
|
|
|
|
|
LLButton* delete_btn = findChild<LLButton>("PrefDeleteButton");
|
|
|
|
|
//LLButton* load_btn = findChild<LLButton>("PrefLoadButton");
|
|
|
|
|
//LLButton* save_btn = findChild<LLButton>("PrefSaveButton");
|
|
|
|
|
//LLButton* delete_btn = findChild<LLButton>("PrefDeleteButton");
|
|
|
|
|
|
|
|
|
|
load_btn->setEnabled(started);
|
|
|
|
|
save_btn->setEnabled(started);
|
|
|
|
|
delete_btn->setEnabled(started);
|
|
|
|
|
//load_btn->setEnabled(started);
|
|
|
|
|
//save_btn->setEnabled(started);
|
|
|
|
|
//delete_btn->setEnabled(started);
|
|
|
|
|
// </FS:Ansariel>
|
|
|
|
|
|
|
|
|
|
// <FS:ND> Hook up and init for filtering
|
|
|
|
|
collectSearchableItems();
|
|
|
|
|
@ -4913,55 +4915,10 @@ void FSPanelPreferenceBackup::onClickBackupSettings()
|
|
|
|
|
// and only restore selectively
|
|
|
|
|
|
|
|
|
|
std::string file = item->getColumn(2)->getValue().asString();
|
|
|
|
|
if (item->getValue().asString() != "presets")
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "copying per account file " << file << LL_ENDL;
|
|
|
|
|
copy_prefs_file(
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file),
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, file));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR));
|
|
|
|
|
|
|
|
|
|
std::string presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string graphics_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_GRAPHIC) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string camera_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_CAMERA) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(graphics_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR, PRESETS_GRAPHIC));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(graphics_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, graphics_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->add(gDirUtilp->add(backup_per_account_folder, PRESETS_DIR), PRESETS_GRAPHIC), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(camera_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR, PRESETS_CAMERA));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(camera_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, camera_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->add(gDirUtilp->add(backup_per_account_folder, PRESETS_DIR), PRESETS_CAMERA), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
LL_INFOS("SettingsBackup") << "copying per account file " << file << LL_ENDL;
|
|
|
|
|
copy_prefs_file(
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file),
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, file));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
@ -4981,28 +4938,73 @@ void FSPanelPreferenceBackup::onClickBackupSettings()
|
|
|
|
|
LLScrollListItem* item = globalFoldersList[index];
|
|
|
|
|
// Don't bother with the checkbox and get the path, since we back up all folders
|
|
|
|
|
// and only restore selectively
|
|
|
|
|
std::string folder = item->getColumn(2)->getValue().asString();
|
|
|
|
|
|
|
|
|
|
std::string folder_name = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string backup_folder_name = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
LL_INFOS("SettingsBackup") << "backing up global folder: " << folder_name << LL_ENDL;
|
|
|
|
|
|
|
|
|
|
// create folder if it's not there already
|
|
|
|
|
LLFile::mkdir(backup_folder_name.c_str());
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(folder_name, "*", file_name))
|
|
|
|
|
if (item->getValue().asString() != "presets")
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "found entry: " << folder_name + file_name << LL_ENDL;
|
|
|
|
|
// only copy files, not subfolders
|
|
|
|
|
if (LLFile::isfile(folder_name + file_name.c_str()))
|
|
|
|
|
std::string folder = item->getColumn(2)->getValue().asString();
|
|
|
|
|
|
|
|
|
|
std::string folder_name = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string backup_folder_name = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
LL_INFOS("SettingsBackup") << "backing up global folder: " << folder_name << LL_ENDL;
|
|
|
|
|
|
|
|
|
|
// create folder if it's not there already
|
|
|
|
|
LLFile::mkdir(backup_folder_name.c_str());
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(folder_name, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
copy_prefs_file(folder_name + file_name, backup_folder_name + file_name);
|
|
|
|
|
LL_INFOS("SettingsBackup") << "found entry: " << folder_name + file_name << LL_ENDL;
|
|
|
|
|
// only copy files, not subfolders
|
|
|
|
|
if (LLFile::isfile(folder_name + file_name.c_str()))
|
|
|
|
|
{
|
|
|
|
|
copy_prefs_file(folder_name + file_name, backup_folder_name + file_name);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "skipping subfolder " << folder_name + file_name << LL_ENDL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR));
|
|
|
|
|
|
|
|
|
|
std::string presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string graphics_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_GRAPHIC) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string camera_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_CAMERA) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(graphics_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "skipping subfolder " << folder_name + file_name << LL_ENDL;
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR, PRESETS_GRAPHIC));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(graphics_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, graphics_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->add(gDirUtilp->add(dir_name, PRESETS_DIR), PRESETS_GRAPHIC), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(camera_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR, PRESETS_CAMERA));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(camera_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, camera_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->add(gDirUtilp->add(dir_name, PRESETS_DIR), PRESETS_CAMERA), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -5144,57 +5146,12 @@ void FSPanelPreferenceBackup:: doRestoreSettings(const LLSD& notification, const
|
|
|
|
|
// Only restore if this item is checked on
|
|
|
|
|
if (checkbox->getCheckBox()->getValue().asBoolean())
|
|
|
|
|
{
|
|
|
|
|
if (item->getValue().asString() != "presets")
|
|
|
|
|
{
|
|
|
|
|
// Get the path to restore for this item
|
|
|
|
|
std::string file = item->getColumn(2)->getValue().asString();
|
|
|
|
|
LL_INFOS("SettingsBackup") << "copying per account file " << file << LL_ENDL;
|
|
|
|
|
copy_prefs_file(
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, file),
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR));
|
|
|
|
|
|
|
|
|
|
std::string presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string graphics_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR, PRESETS_GRAPHIC) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string camera_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, PRESETS_DIR, PRESETS_CAMERA) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(graphics_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_GRAPHIC));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(graphics_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, graphics_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_GRAPHIC), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(camera_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_CAMERA));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(camera_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, camera_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, PRESETS_CAMERA), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// Get the path to restore for this item
|
|
|
|
|
std::string file = item->getColumn(2)->getValue().asString();
|
|
|
|
|
LL_INFOS("SettingsBackup") << "copying per account file " << file << LL_ENDL;
|
|
|
|
|
copy_prefs_file(
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_NONE, backup_per_account_folder, file),
|
|
|
|
|
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -5232,29 +5189,74 @@ void FSPanelPreferenceBackup:: doRestoreSettings(const LLSD& notification, const
|
|
|
|
|
// Only restore if this item is checked on
|
|
|
|
|
if (checkbox->getCheckBox()->getValue().asBoolean())
|
|
|
|
|
{
|
|
|
|
|
// Get the path to restore for this item
|
|
|
|
|
std::string folder = item->getColumn(2)->getValue().asString();
|
|
|
|
|
|
|
|
|
|
std::string folder_name = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string backup_folder_name = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
LL_INFOS("SettingsBackup") << "restoring global folder: " << folder_name << LL_ENDL;
|
|
|
|
|
|
|
|
|
|
// create folder if it's not there already
|
|
|
|
|
LLFile::mkdir(folder_name.c_str());
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(backup_folder_name, "*", file_name))
|
|
|
|
|
if (item->getValue().asString() != "presets")
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "found entry: " << backup_folder_name + file_name << LL_ENDL;
|
|
|
|
|
// only restore files, not subfolders
|
|
|
|
|
if (LLFile::isfile(backup_folder_name + file_name.c_str()))
|
|
|
|
|
// Get the path to restore for this item
|
|
|
|
|
std::string folder = item->getColumn(2)->getValue().asString();
|
|
|
|
|
|
|
|
|
|
std::string folder_name = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string backup_folder_name = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, folder) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
LL_INFOS("SettingsBackup") << "restoring global folder: " << folder_name << LL_ENDL;
|
|
|
|
|
|
|
|
|
|
// create folder if it's not there already
|
|
|
|
|
LLFile::mkdir(folder_name.c_str());
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(backup_folder_name, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
copy_prefs_file(backup_folder_name + file_name, folder_name + file_name);
|
|
|
|
|
LL_INFOS("SettingsBackup") << "found entry: " << backup_folder_name + file_name << LL_ENDL;
|
|
|
|
|
// only restore files, not subfolders
|
|
|
|
|
if (LLFile::isfile(backup_folder_name + file_name.c_str()))
|
|
|
|
|
{
|
|
|
|
|
copy_prefs_file(backup_folder_name + file_name, folder_name + file_name);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "skipping subfolder " << backup_folder_name + file_name << LL_ENDL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR));
|
|
|
|
|
|
|
|
|
|
std::string presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string graphics_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR, PRESETS_GRAPHIC) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
std::string camera_presets_folder = gDirUtilp->getExpandedFilename(LL_PATH_NONE, dir_name, PRESETS_DIR, PRESETS_CAMERA) + gDirUtilp->getDirDelimiter();
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(graphics_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LL_INFOS("SettingsBackup") << "skipping subfolder " << backup_folder_name + file_name << LL_ENDL;
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_GRAPHIC));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(graphics_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, graphics_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_GRAPHIC), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LLFile::isdir(camera_presets_folder))
|
|
|
|
|
{
|
|
|
|
|
LLFile::mkdir(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_CAMERA));
|
|
|
|
|
|
|
|
|
|
std::string file_name;
|
|
|
|
|
while (gDirUtilp->getNextFileInDir(camera_presets_folder, "*", file_name))
|
|
|
|
|
{
|
|
|
|
|
std::string source = gDirUtilp->getExpandedFilename(LL_PATH_NONE, camera_presets_folder, file_name);
|
|
|
|
|
|
|
|
|
|
if (LLFile::isfile(source.c_str()))
|
|
|
|
|
{
|
|
|
|
|
std::string target = gDirUtilp->add(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, PRESETS_DIR, PRESETS_CAMERA), file_name);
|
|
|
|
|
copy_prefs_file(source, target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|