6
#include "Precompiled.h"
7
#include "SettingsResourcesControl.h"
8
#include "SettingsManager.h"
13
SettingsResourcesControl::SettingsResourcesControl(MyGUI::Widget* _parent) :
14
wraps::BaseLayout("SettingsResourcesControl.layout", _parent),
15
mResourceAdd(nullptr),
16
mResourceDelete(nullptr),
18
mTextFieldControl(nullptr)
20
assignWidget(mResourceAdd, "ResourceAdd");
21
assignWidget(mResourceDelete, "ResourceDelete");
22
assignWidget(mResources, "Resources");
24
mTextFieldControl = new TextFieldControl();
25
mTextFieldControl->eventEndDialog = MyGUI::newDelegate(this, &SettingsResourcesControl::notifyEndDialog);
27
mResourceAdd->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickResourcePathAdd);
28
mResourceDelete->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickResourcePathDelete);
31
SettingsResourcesControl::~SettingsResourcesControl()
33
mResourceAdd->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickResourcePathAdd);
34
mResourceDelete->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickResourcePathDelete);
36
delete mTextFieldControl;
37
mTextFieldControl = nullptr;
40
void SettingsResourcesControl::loadSettings()
42
mResources->removeAllItems();
43
SettingsSector::VectorUString paths = SettingsManager::getInstance().getSector("Settings")->getPropertyValueList("AdditionalResources");
44
for (SettingsSector::VectorUString::const_iterator item = paths.begin(); item != paths.end(); ++ item)
45
mResources->addItem(*item);
48
void SettingsResourcesControl::saveSettings()
50
SettingsSector::VectorUString paths;
51
for (size_t index = 0; index < mResources->getItemCount(); ++ index)
52
paths.push_back(mResources->getItemNameAt(index));
53
SettingsManager::getInstance().getSector("Settings")->setPropertyValueList("AdditionalResources", paths);
56
void SettingsResourcesControl::notifyClickResourcePathAdd(MyGUI::Widget* _sender)
58
mTextFieldControl->setCaption(replaceTags("CaptionAddResource"));
59
mTextFieldControl->setTextField("");
60
mTextFieldControl->doModal();
63
void SettingsResourcesControl::notifyClickResourcePathDelete(MyGUI::Widget* _sender)
65
size_t index = mResources->getIndexSelected();
66
if (index != MyGUI::ITEM_NONE)
67
mResources->removeItemAt(index);
70
void SettingsResourcesControl::notifyEndDialog(Dialog* _sender, bool _result)
72
mTextFieldControl->endModal();
76
if (mTextFieldControl->getTextField() != "")
77
mResources->addItem(mTextFieldControl->getTextField());
7
#include "Precompiled.h"
8
#include "SettingsResourcesControl.h"
9
#include "SettingsManager.h"
11
#include "FactoryManager.h"
16
FACTORY_ITEM_ATTRIBUTE(SettingsResourcesControl)
18
SettingsResourcesControl::SettingsResourcesControl() :
19
mResourceAdd(nullptr),
20
mResourceDelete(nullptr),
22
mTextFieldControl(nullptr)
26
SettingsResourcesControl::~SettingsResourcesControl()
28
mResourceAdd->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickAdd);
29
mResourceDelete->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickDelete);
31
delete mTextFieldControl;
32
mTextFieldControl = nullptr;
35
void SettingsResourcesControl::OnInitialise(Control* _parent, MyGUI::Widget* _place, const std::string& _layoutName)
37
Control::OnInitialise(_parent, _place, _layoutName);
39
assignWidget(mResourceAdd, "ResourceAdd");
40
assignWidget(mResourceDelete, "ResourceDelete");
41
assignWidget(mResources, "Resources");
43
mTextFieldControl = new TextFieldControl();
44
mTextFieldControl->Initialise();
45
mTextFieldControl->eventEndDialog.connect(this, &SettingsResourcesControl::notifyEndDialog);
47
mResourceAdd->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickAdd);
48
mResourceDelete->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsResourcesControl::notifyClickDelete);
51
void SettingsResourcesControl::loadSettings()
53
mResources->removeAllItems();
54
SettingsManager::VectorString paths = SettingsManager::getInstance().getValueList("Resources/AdditionalResource.List");
55
for (SettingsManager::VectorString::const_iterator item = paths.begin(); item != paths.end(); ++ item)
56
mResources->addItem(*item);
59
void SettingsResourcesControl::saveSettings()
61
SettingsManager::VectorString paths;
62
for (size_t index = 0; index < mResources->getItemCount(); ++ index)
63
paths.push_back(mResources->getItemNameAt(index));
64
SettingsManager::getInstance().setValueList("Resources/AdditionalResource.List", paths);
67
void SettingsResourcesControl::notifyClickAdd(MyGUI::Widget* _sender)
69
mResources->addItem("");
70
mResources->beginToItemAt(mResources->getItemCount() - 1);
72
mTextFieldControl->setCaption(replaceTags("CaptionAddResource"));
73
mTextFieldControl->setTextField("");
75
MyGUI::Widget* widget = mResources->getWidgetByIndex(mResources->getItemCount() - 1);
76
if (widget != nullptr)
77
mTextFieldControl->setCoord(MyGUI::IntCoord(widget->getAbsoluteLeft(), widget->getAbsoluteTop(), widget->getWidth(), widget->getHeight()));
79
mTextFieldControl->doModal();
82
void SettingsResourcesControl::notifyClickDelete(MyGUI::Widget* _sender)
84
size_t index = mResources->getIndexSelected();
85
if (index != MyGUI::ITEM_NONE)
86
mResources->removeItemAt(index);
89
void SettingsResourcesControl::notifyEndDialog(Dialog* _sender, bool _result)
91
mTextFieldControl->endModal();
95
if (mTextFieldControl->getTextField() != "")
97
mResources->setItemNameAt(mResources->getItemCount() - 1, mTextFieldControl->getTextField());
102
mResources->removeItemAt(mResources->getItemCount() - 1);
105
void SettingsResourcesControl::OnCommand(const std::string& _command)
107
Control::OnCommand(_command);
109
if (_command == "Command_LoadSettings")
111
else if (_command == "Command_SaveSettings")