mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-29 19:49:58 +02:00
[apps/settings] Enable to modify settings
Change-Id: Idd5e28a64d08d607f5bb2065a45ab4ecf5a26dca
This commit is contained in:
@@ -3,11 +3,14 @@
|
||||
|
||||
namespace Settings {
|
||||
|
||||
SubController::SubController(Responder * parentResponder) :
|
||||
SubController::SubController(Responder * parentResponder, Preference * preference) :
|
||||
ViewController(parentResponder),
|
||||
m_cells{MenuListCell(nullptr, KDText::FontSize::Large), MenuListCell(nullptr, KDText::FontSize::Large)},
|
||||
m_selectableTableView(SelectableTableView(this, this, Metric::TopMargin, Metric::RightMargin,
|
||||
Metric::BottomMargin, Metric::LeftMargin)),
|
||||
m_nodeModel(nullptr)
|
||||
m_nodeModel(nullptr),
|
||||
m_preferenceIndex(0),
|
||||
m_preference(preference)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -23,11 +26,16 @@ View * SubController::view() {
|
||||
}
|
||||
|
||||
void SubController::didBecomeFirstResponder() {
|
||||
m_selectableTableView.selectCellAtLocation(0, 0);
|
||||
m_selectableTableView.selectCellAtLocation(0, valueIndexAtPreferenceIndex(m_preferenceIndex));
|
||||
app()->setFirstResponder(&m_selectableTableView);
|
||||
}
|
||||
|
||||
bool SubController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK) {
|
||||
setPreferenceAtIndexWithValueIndex(m_preferenceIndex, m_selectableTableView.selectedRow());
|
||||
StackViewController * stack = stackController();
|
||||
stack->pop();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -57,8 +65,52 @@ void SubController::willDisplayCellForIndex(TableViewCell * cell, int index) {
|
||||
myCell->setText(m_nodeModel->children(index)->label());
|
||||
}
|
||||
|
||||
void SubController::setNodeModel(const Node * nodeModel) {
|
||||
void SubController::setNodeModel(const Node * nodeModel, int preferenceIndex) {
|
||||
m_nodeModel = (Node *)nodeModel;
|
||||
m_preferenceIndex = preferenceIndex;
|
||||
}
|
||||
|
||||
StackViewController * SubController::stackController() const {
|
||||
return (StackViewController *)parentResponder();
|
||||
}
|
||||
|
||||
void SubController::setPreferenceAtIndexWithValueIndex(int preferenceIndex, int valueIndex) {
|
||||
switch (preferenceIndex) {
|
||||
case 0:
|
||||
m_preference->setAngleUnit((Preference::AngleUnit)valueIndex);
|
||||
break;
|
||||
case 1:
|
||||
m_preference->setDisplayMode((Preference::DisplayMode)valueIndex);
|
||||
break;
|
||||
case 2:
|
||||
m_preference->setNumberType((Preference::NumberType)valueIndex);
|
||||
break;
|
||||
case 3:
|
||||
m_preference->setComplexFormat((Preference::ComplexFormat)valueIndex);
|
||||
break;
|
||||
case 4:
|
||||
m_preference->setLanguage((Preference::Language)valueIndex);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int SubController::valueIndexAtPreferenceIndex(int preferenceIndex) {
|
||||
switch (preferenceIndex) {
|
||||
case 0:
|
||||
return (int)m_preference->angleUnit();
|
||||
case 1:
|
||||
return (int)m_preference->displayMode();
|
||||
case 2:
|
||||
return (int)m_preference->numberType();
|
||||
case 3:
|
||||
return (int)m_preference->complexFormat();
|
||||
case 4:
|
||||
return (int)m_preference->language();
|
||||
default:
|
||||
assert(false);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user