Remove External app for unsupported devices (web/n0100) and adds a basic examination checking system

This commit is contained in:
citorva
2020-01-19 23:45:35 +01:00
parent a9e0c5f6b6
commit c94affa7cd
25 changed files with 72 additions and 5 deletions

View File

@@ -1,5 +1,11 @@
include build/config.mak
ifeq (${DEVICE}, n0110)
apps_list = ${EPSILON_APPS}
else
apps_list = $(foreach i, ${EPSILON_APPS}, $(if $(filter external, $(i)),,$(i)))
endif
# Disable default Make rules
.SUFFIXES:

View File

@@ -3,12 +3,12 @@ include apps/home/Makefile
include apps/on_boarding/Makefile
include apps/hardware_test/Makefile
include apps/usb/Makefile
apps =
apps =
# All selected apps are included. Each Makefile below is responsible for setting
# the $apps variable (name of the app class) and the $app_headers
# (path to the apps header).
$(foreach i,${EPSILON_APPS},$(eval include apps/$(i)/Makefile))
$(foreach i,${apps_list},${eval include apps/$(i)/Makefile})
app_src += $(addprefix apps/,\
apps_container.cpp \
@@ -43,7 +43,7 @@ snapshots_construction = $(foreach i,$(apps),,m_snapshot$(subst :,,$(i))Snapshot
snapshots_list = $(foreach i,$(apps),,&m_snapshot$(subst :,,$(i))Snapshot)
snapshots_count = $(words $(apps))
snapshot_includes = $(foreach i,$(app_headers),-include $(i) )
epsilon_app_names = '$(foreach i,${EPSILON_APPS},"$(i)", )'
epsilon_app_names = '$(foreach i,${apps_list},"$(i)", )'
$(call object_for,apps/apps_container_storage.cpp apps/apps_container.cpp apps/main.cpp): CXXFLAGS += $(snapshot_includes) -DAPPS_CONTAINER_APPS_DECLARATION="$(apps_declaration)" -DAPPS_CONTAINER_SNAPSHOT_DECLARATIONS="$(snapshots_declaration)" -DAPPS_CONTAINER_SNAPSHOT_CONSTRUCTORS="$(snapshots_construction)" -DAPPS_CONTAINER_SNAPSHOT_LIST="$(snapshots_list)" -DAPPS_CONTAINER_SNAPSHOT_COUNT=$(snapshots_count) -DEPSILON_APPS_NAMES=$(epsilon_app_names) -DUSERNAME="$(USERNAME)"

View File

@@ -17,6 +17,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::CalculAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::CalculationIcon;
}

View File

@@ -15,6 +15,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -14,6 +14,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::CodeAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::BasicExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::CodeIcon;
}

View File

@@ -18,6 +18,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -12,6 +12,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::ExternalAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::BasicExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::ExternalIcon;
}

1
apps/external/app.h vendored
View File

@@ -12,6 +12,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -16,6 +16,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::FunctionAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::GraphIcon;
}

View File

@@ -17,6 +17,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public Shared::FunctionApp::Snapshot {

View File

@@ -59,8 +59,10 @@ bool Controller::handleEvent(Ion::Events::Event event) {
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
AppsContainer * container = AppsContainer::sharedAppsContainer();
::App::Snapshot * selectedSnapshot = container->appSnapshotAtIndex(selectionDataSource()->selectedRow()*k_numberOfColumns+selectionDataSource()->selectedColumn()+1);
if ((GlobalPreferences::sharedGlobalPreferences()->examMode() == GlobalPreferences::ExamMode::Dutch || GlobalPreferences::sharedGlobalPreferences()->examMode() == GlobalPreferences::ExamMode::NoSym) &&
(selectedSnapshot->descriptor()->name() == I18n::Message::CodeApp || selectedSnapshot->descriptor()->name() == I18n::Message::ExternalApp)) {
if (((GlobalPreferences::sharedGlobalPreferences()->examMode() == GlobalPreferences::ExamMode::Dutch || GlobalPreferences::sharedGlobalPreferences()->examMode() == GlobalPreferences::ExamMode::NoSym) &&
(selectedSnapshot->descriptor()->examinationLevel() < 2)) ||
((GlobalPreferences::sharedGlobalPreferences()->examMode() == GlobalPreferences::ExamMode::Standard) && (selectedSnapshot->descriptor()->examinationLevel() < 1))) {
//(selectedSnapshot->descriptor()->name() == I18n::Message::CodeApp || selectedSnapshot->descriptor()->name() == I18n::Message::ExternalApp)) {
App::app()->displayWarning(I18n::Message::ForbidenAppInExamMode1, I18n::Message::ForbidenAppInExamMode2);
} else {
bool switched = container->switchTo(selectedSnapshot);

View File

@@ -15,6 +15,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::ProbaAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::ProbabilityIcon;
}

View File

@@ -27,6 +27,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -14,6 +14,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::RegressionAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::RegressionIcon;
}

View File

@@ -17,6 +17,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot, public TabViewDataSource {

View File

@@ -14,6 +14,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::SequenceAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::SequenceIcon;
}

View File

@@ -19,6 +19,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public Shared::FunctionApp::Snapshot {

View File

@@ -12,6 +12,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::SettingsAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::SettingsIcon;
}

View File

@@ -12,6 +12,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -14,6 +14,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::SolverAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::SolverIcon;
}

View File

@@ -16,6 +16,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot {

View File

@@ -14,6 +14,10 @@ I18n::Message App::Descriptor::upperName() {
return I18n::Message::StatsAppCapital;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::StrictExaminationLevel;
}
const Image * App::Descriptor::icon() {
return ImageStore::StatIcon;
}

View File

@@ -17,6 +17,7 @@ public:
public:
I18n::Message name() override;
I18n::Message upperName() override;
int examinationLevel() override;
const Image * icon() override;
};
class Snapshot : public ::App::Snapshot, public TabViewDataSource {

View File

@@ -27,7 +27,12 @@ public:
public:
virtual I18n::Message name();
virtual I18n::Message upperName();
virtual int examinationLevel();
virtual const Image * icon();
const int NoExaminationLevel = 0;
const int BasicExaminationLevel = 1;
const int StrictExaminationLevel = 2;
};
class Snapshot {
public:

View File

@@ -13,6 +13,10 @@ I18n::Message App::Descriptor::upperName() {
return (I18n::Message)0;
}
int App::Descriptor::examinationLevel() {
return App::Descriptor::NoExaminationLevel;
}
const Image * App::Descriptor::icon() {
return nullptr;
}