mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[apps/home] Quick select for apps using numbers (#306)
* [apps/home] Quick select for apps using numbers * [apps/home] Fix build error
This commit is contained in:
@@ -86,6 +86,13 @@ Controller::Controller(Responder * parentResponder, SelectableTableViewDataSourc
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static constexpr Ion::Events::Event home_fast_navigation_events[] = {
|
||||||
|
Ion::Events::Seven, Ion::Events::Eight, Ion::Events::Nine,
|
||||||
|
Ion::Events::Four, Ion::Events::Five, Ion::Events::Six,
|
||||||
|
Ion::Events::One, Ion::Events::Two, Ion::Events::Three,
|
||||||
|
Ion::Events::Zero, Ion::Events::Dot, Ion::Events::EE
|
||||||
|
};
|
||||||
|
|
||||||
bool Controller::handleEvent(Ion::Events::Event event) {
|
bool Controller::handleEvent(Ion::Events::Event event) {
|
||||||
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
||||||
AppsContainer * container = AppsContainer::sharedAppsContainer();
|
AppsContainer * container = AppsContainer::sharedAppsContainer();
|
||||||
@@ -143,6 +150,21 @@ bool Controller::handleEvent(Ion::Events::Event event) {
|
|||||||
return m_view.selectableTableView()->selectCellAtLocation(numberOfColumns() - 1, selectionDataSource()->selectedRow() - 1);
|
return m_view.selectableTableView()->selectCellAtLocation(numberOfColumns() - 1, selectionDataSource()->selectedRow() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle fast home navigation
|
||||||
|
for(int i = 0; i < std::min((int) (sizeof(home_fast_navigation_events) / sizeof(Ion::Events::Event)), this->numberOfIcons()); i++) {
|
||||||
|
if (event == home_fast_navigation_events[i]) {
|
||||||
|
int row = i / k_numberOfColumns;
|
||||||
|
int column = i % k_numberOfColumns;
|
||||||
|
// Get if app is already selected
|
||||||
|
if (selectionDataSource()->selectedRow() == row && selectionDataSource()->selectedColumn() == column) {
|
||||||
|
// If app is already selected, launch it
|
||||||
|
return handleEvent(Ion::Events::OK);
|
||||||
|
}
|
||||||
|
// Else, select the app
|
||||||
|
return m_view.selectableTableView()->selectCellAtLocation(column, row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user