mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[apps/settings] Between two 'didEnterResponderChain', the exam mode page
might change the number of rows/the displayed messages. We then have to re-layout the SelectableViewWithMessages to set the right frame to the SelectableTableView.
This commit is contained in:
@@ -35,7 +35,7 @@ void ExamModeController::didEnterResponderChain(Responder * previousFirstRespond
|
||||
* reload the selection as the number of rows might have also changed. We
|
||||
* force to reload the entire data because they might have changed. */
|
||||
selectCellAtLocation(0, initialSelectedRow());
|
||||
m_selectableTableView.reloadData();
|
||||
m_contentView.reload();
|
||||
// We add a message when the mode exam is on
|
||||
if (GlobalPreferences::sharedGlobalPreferences()->isInExamMode()) {
|
||||
I18n::Message deactivateMessages[] = {I18n::Message::ToDeactivateExamMode1, I18n::Message::ToDeactivateExamMode2, I18n::Message::ToDeactivateExamMode3};
|
||||
|
||||
@@ -32,6 +32,11 @@ void SelectableViewWithMessages::setMessages(I18n::Message * m, int numberOfMess
|
||||
layoutSubviews();
|
||||
}
|
||||
|
||||
void SelectableViewWithMessages::reload() {
|
||||
m_selectableTableView->reloadData();
|
||||
layoutSubviews();
|
||||
}
|
||||
|
||||
View * SelectableViewWithMessages::subviewAtIndex(int index) {
|
||||
assert(index >= 0 && index < numberOfSubviews());
|
||||
if (index == 0) {
|
||||
|
||||
@@ -11,6 +11,7 @@ public:
|
||||
SelectableViewWithMessages(SelectableTableView * selectableTableView);
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
void setMessages(I18n::Message * messages, int numberOfMessages);
|
||||
void reload();
|
||||
private:
|
||||
int numberOfSubviews() const override { return 1 + m_numberOfMessages; }
|
||||
View * subviewAtIndex(int index) override;
|
||||
|
||||
Reference in New Issue
Block a user