mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-24 00:00:44 +01:00
[shared] Factorize 'storageDidChangeForRecord' in StorageFunctionApp
This commit is contained in:
@@ -31,16 +31,6 @@ App * App::Snapshot::unpack(Container * container) {
|
||||
return new (container->currentAppBuffer()) App(container, this);
|
||||
}
|
||||
|
||||
void App::Snapshot::reset() {
|
||||
StorageFunctionApp::Snapshot::reset();
|
||||
*(modelVersion()) = 0;
|
||||
*(rangeVersion()) = 0;
|
||||
}
|
||||
|
||||
void App::Snapshot::storageDidChangeForRecord(const Ion::Storage::Record record) {
|
||||
m_functionStore.storageDidChangeForRecord(record);
|
||||
}
|
||||
|
||||
App::Descriptor * App::Snapshot::descriptor() {
|
||||
static Descriptor descriptor;
|
||||
return &descriptor;
|
||||
|
||||
@@ -22,10 +22,8 @@ public:
|
||||
public:
|
||||
Snapshot();
|
||||
App * unpack(Container * container) override;
|
||||
void reset() override;
|
||||
void storageDidChangeForRecord(const Ion::Storage::Record record) override;
|
||||
Descriptor * descriptor() override;
|
||||
StorageCartesianFunctionStore * functionStore();
|
||||
StorageCartesianFunctionStore * functionStore() override;
|
||||
Shared::InteractiveCurveViewRange * graphRange();
|
||||
private:
|
||||
void tidy() override;
|
||||
@@ -35,7 +33,7 @@ public:
|
||||
InputViewController * inputViewController() override;
|
||||
char XNT() override;
|
||||
NestedMenuController * variableBoxForInputEventHandler(InputEventHandler * textInput) override;
|
||||
StorageCartesianFunctionStore * functionStore() override { return static_cast<Snapshot *>(snapshot())->functionStore(); }
|
||||
StorageCartesianFunctionStore * functionStore() override { return static_cast<StorageCartesianFunctionStore *>(Shared::StorageFunctionApp::functionStore()); }
|
||||
private:
|
||||
App(Container * container, Snapshot * snapshot);
|
||||
StorageListController m_listController;
|
||||
|
||||
@@ -28,6 +28,10 @@ void StorageFunctionApp::Snapshot::reset() {
|
||||
setActiveTab(0);
|
||||
}
|
||||
|
||||
void StorageFunctionApp::Snapshot::storageDidChangeForRecord(const Ion::Storage::Record record) {
|
||||
functionStore()->storageDidChangeForRecord(record);
|
||||
}
|
||||
|
||||
void StorageFunctionApp::willBecomeInactive() {
|
||||
if (m_modalViewController.isDisplayingModal()) {
|
||||
m_modalViewController.dismissModalViewController();
|
||||
|
||||
@@ -19,9 +19,11 @@ public:
|
||||
uint32_t * modelVersion() { return &m_modelVersion; }
|
||||
uint32_t * rangeVersion() { return &m_rangeVersion; }
|
||||
Poincare::Preferences::AngleUnit * angleUnitVersion() { return &m_angleUnitVersion; }
|
||||
virtual StorageFunctionStore * functionStore() = 0;
|
||||
Interval * interval() { return &m_interval; }
|
||||
int * indexFunctionSelectedByCursor() { return &m_indexFunctionSelectedByCursor; }
|
||||
void reset() override;
|
||||
void storageDidChangeForRecord(const Ion::Storage::Record record) override;
|
||||
protected:
|
||||
CurveViewCursor m_cursor;
|
||||
Interval m_interval;
|
||||
@@ -32,7 +34,7 @@ public:
|
||||
Poincare::Preferences::AngleUnit m_angleUnitVersion;
|
||||
};
|
||||
virtual ~StorageFunctionApp() = default;
|
||||
virtual StorageFunctionStore * functionStore() = 0;
|
||||
virtual StorageFunctionStore * functionStore() { return static_cast<StorageFunctionApp::Snapshot *>(snapshot())->functionStore(); }
|
||||
virtual InputViewController * inputViewController() = 0;
|
||||
void willBecomeInactive() override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user