/
UndoSystemFactory.cpp
51 lines (41 loc) · 1.18 KB
/
UndoSystemFactory.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "iundo.h"
#include "i18n.h"
#include "ipreferencesystem.h"
#include "UndoSystem.h"
#include "module/StaticModule.h"
namespace undo
{
class UndoSystemFactory final :
public IUndoSystemFactory
{
public:
const std::string& getName() const override
{
static std::string _name(MODULE_UNDOSYSTEM_FACTORY);
return _name;
}
const StringSet& getDependencies() const override
{
static StringSet _dependencies{ MODULE_PREFERENCESYSTEM };
return _dependencies;
}
void initialiseModule(const IApplicationContext& ctx) override
{
rMessage() << getName() << "::initialiseModule called" << std::endl;
// add the preference settings
constructPreferences();
}
IUndoSystem::Ptr createUndoSystem() override
{
return std::make_shared<UndoSystem>();
}
private:
void constructPreferences()
{
IPreferencePage& page = GlobalPreferenceSystem().getPage(_("Settings/Undo System"));
page.appendSpinner(_("Undo Queue Size"), RKEY_UNDO_QUEUE_SIZE, 0, 1024, 1);
}
};
// Static module instance
module::StaticModuleRegistration<UndoSystemFactory> _undoSystemFactoryModule;
}