Skip to content

Commit 90b2f8e

Browse files
committed
Implement actionLoadChangeFile
1 parent b6a01bd commit 90b2f8e

2 files changed

Lines changed: 49 additions & 3 deletions

File tree

Actions.cpp

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,9 +444,55 @@ void Extension::actionLoadChartSettings(void *objectname, TCHAR const *group) //
444444
//
445445
}
446446

447-
void Extension::actionLoadChangeFile(TCHAR const *file, void *settings)
447+
void Extension::actionLoadChangeFile(TCHAR const *file, paramExt *settings) //TODO: bugproof
448448
{
449-
//CHRILLEY
449+
enum struct LoadType
450+
{
451+
Load,
452+
Nothing
453+
};
454+
enum struct FNameType
455+
{
456+
Change,
457+
Nothing,
458+
ChangeIfOk
459+
};
460+
enum struct DeleteType
461+
{
462+
Clear,
463+
Nothing,
464+
ClearIfOk
465+
};
466+
LoadType lt = LoadType (settings->pextData[0]);
467+
FNameType ft = FNameType (settings->pextData[1]);
468+
DeleteType dt = DeleteType(settings->pextData[2]);
469+
bool saveNow = (((settings->pextData[3]) & 1)? true : false);
470+
bool readOnly = (((settings->pextData[3]) & 2)? true : false);
471+
472+
bool exists = false;
473+
if(std::ifstream ifs {file})
474+
{
475+
exists = true;
476+
}
477+
478+
if(dt == DeleteType::Clear || (dt == DeleteType::ClearIfOk && exists))
479+
{
480+
data->ini.clear();
481+
}
482+
483+
if(lt == LoadType::Load)
484+
{
485+
loadIni(std::basic_ifstream<TCHAR>{file});
486+
data->ReadOnly = readOnly;
487+
}
488+
if(ft == FNameType::Change || (ft == FNameType::ChangeIfOk && exists))
489+
{
490+
data->autoSavePath = file;
491+
}
492+
if(saveNow)
493+
{
494+
saveIni(std::basic_ofstream<TCHAR>{file});
495+
}
450496
}
451497

452498
void Extension::actionUndo()

Extension.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ class Extension final
415415
void actionFromChart(void *objectname, TCHAR const *group); //TODO
416416
void actionSaveChartSettings(void *objectname, TCHAR const *group); //TODO
417417
void actionLoadChartSettings(void *objectname, TCHAR const *group); //TODO
418-
void actionLoadChangeFile(TCHAR const *file, void *settings);
418+
void actionLoadChangeFile(TCHAR const *file, paramExt *settings);
419419
void actionUndo();
420420
void actionRedo();
421421
void actionClearUndoStack(int mode);

0 commit comments

Comments
 (0)