Merge branch 'solver' into upgrade-1.6.0

This commit is contained in:
Émilie Feral
2018-06-12 09:47:41 +02:00
230 changed files with 4554 additions and 1876 deletions

View File

@@ -153,8 +153,6 @@ bool ConsoleController::handleEvent(Ion::Events::Event event) {
app()->setFirstResponder(&m_editCell);
return m_editCell.insertText(text);
}
} else if (event == Ion::Events::Copy) {
return copyCurrentLineToClipboard();
} else if (event == Ion::Events::Clear) {
m_selectableTableView.deselectTable();
m_consoleStore.clear();
@@ -392,13 +390,4 @@ StackViewController * ConsoleController::stackViewController() {
return static_cast<StackViewController *>(parentResponder());
}
bool ConsoleController::copyCurrentLineToClipboard() {
int row = m_selectableTableView.selectedRow();
if (row < m_consoleStore.numberOfLines()) {
Clipboard::sharedClipboard()->store(m_consoleStore.lineAtIndex(row).text());
return true;
}
return false;
}
}

View File

@@ -88,7 +88,6 @@ private:
void emptyOutputAccumulationBuffer();
size_t firstNewLineCharIndex(const char * text, size_t length);
StackViewController * stackViewController();
bool copyCurrentLineToClipboard();
int m_rowHeight;
bool m_importScriptsWhenViewAppears;
ConsoleStore m_consoleStore;

View File

@@ -28,7 +28,7 @@ public:
// Edit cell
void setEditing(bool isEditing, bool reinitDraftBuffer = false);
const char * text() const { return m_textField.text(); }
const char * text() const override { return m_textField.text(); }
void setText(const char * text);
bool insertText(const char * text);
void setPrompt(const char * prompt);

View File

@@ -24,7 +24,9 @@ public:
Responder * responder() override {
return this;
}
const char * text() const override {
return m_line.text();
}
/* View */
int numberOfSubviews() const override;
View * subviewAtIndex(int index) override;

View File

@@ -12,7 +12,7 @@ MenuController::MenuController(Responder * parentResponder, ScriptStore * script
ViewController(parentResponder),
ButtonRowDelegate(nullptr, footer),
m_scriptStore(scriptStore),
m_addNewScriptCell(I18n::Message::AddScript),
m_addNewScriptCell(),
m_consoleButton(this, I18n::Message::Console, Invocation([](void * context, void * sender) {
MenuController * menu = (MenuController *)context;
if (menu->consoleController()->loadPythonEnvironment()) {
@@ -29,6 +29,7 @@ MenuController::MenuController(Responder * parentResponder, ScriptStore * script
{
m_selectableTableView.setMargins(0);
m_selectableTableView.setShowsIndicators(false);
m_addNewScriptCell.setMessage(I18n::Message::AddScript);
for (int i = 0; i < k_maxNumberOfDisplayableScriptCells; i++) {
m_scriptCells[i].setParentResponder(&m_selectableTableView);
m_scriptCells[i].editableTextCell()->textField()->setDelegate(this);

View File

@@ -2,7 +2,6 @@
#define CODE_MENU_CONTROLLER_H
#include <escher.h>
#include <apps/shared/new_function_cell.h>
#include "console_controller.h"
#include "editor_controller.h"
#include "script_parameter_controller.h"
@@ -99,7 +98,7 @@ private:
* constructor of an EvenOddEditableTextCell. */
char m_draftTextBuffer[TextField::maxBufferSize()];
EvenOddCellWithEllipsis m_scriptParameterCells[k_maxNumberOfDisplayableScriptCells];
Shared::NewFunctionCell m_addNewScriptCell;
EvenOddMessageTextCell m_addNewScriptCell;
EvenOddCell m_emptyCell;
Button m_consoleButton;
SelectableTableView m_selectableTableView;

View File

@@ -21,6 +21,7 @@ public:
/* HighlightCell */
void setHighlighted(bool highlight) override;
void reloadCell() override;
const char * text() const override { return m_scriptNodeView.text(); }
constexpr static char k_parentheses[] = "()";
constexpr static char k_parenthesesWithEmpty[] = {'(', Ion::Charset::Empty, ')', 0};
@@ -32,6 +33,9 @@ protected:
void setScriptStore(ScriptStore * scriptStore);
void drawRect(KDContext * ctx, KDRect rect) const override;
virtual KDSize minimalSizeForOptimalDisplay() const override;
const char * text() const override {
return m_scriptStore->scriptAtIndex(m_scriptNode->scriptIndex()).name();
}
private:
constexpr static KDText::FontSize k_fontSize = KDText::FontSize::Small;
constexpr static KDCoordinate k_verticalMargin = 7;