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
|
#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
{
// 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;
}
|