//TODO: if the line added is not visible scroll down one void CodeEditor::addLine(const String &line) { Font *font = Preferences::instance()->getFont(); Text newLine(line, *font, mFontSize); newLine.setDoMultiColor(false); newLine.setPosition(mPos.x + mLineNumberAreaWidth, mText[mCurrentLine].getPosition().y + mFontSize + 2); newLine.setColor(mTextColor); if (mUpperBound < getLineLength(mCurrentLine)) { newLine.append(getLine(mCurrentLine).substring(mUpperBound, getLineLength(mCurrentLine) - mUpperBound)); mText[mCurrentLine].erase(mUpperBound, getLineLength(mCurrentLine) - mUpperBound); } mUpperBound = 0; mLineIndex = 0; if (++mCurrentLine > (getLineCount() - 1)) { mText.push_back(newLine); } else { mText.insert(mText.begin() + mCurrentLine, newLine); //Shift the lines down. for (int i = mCurrentLine + 1; i < mText.size(); ++i) { mText[i].setPosition(mPos.x + mLineNumberAreaWidth, mText[i].getPosition().y + mFontSize + 2); } } addLineNumber(); --mCurrentLine; moveCursorDownOne(); }
void CodeEditor::clear() { mText.clear(); mLineNumbers.clear(); mCurrentLine = 0; mLineIndex = 0; mUpperBound = 0; Text text("", *Preferences::instance()->getFont(), mFontSize); text.setDoMultiColor(false); text.setColor(mTextColor); text.setPosition(mPos.x + mLineNumberAreaWidth, mPos.y); mText.push_back(text); addLineNumber(); }
CodeEditor::CodeEditor() { //TODO: No hard coded values. mPos = Vector2u(4, 42); mSize = Vector2u(10, 10); getPreferences(); mCurrentLine = 0; mMarkLine = 0; mMode = Edit; Text text("", *Preferences::instance()->getFont(), mFontSize); text.setDoMultiColor(false); text.setColor(mTextColor); text.setPosition(mPos.x + mLineNumberAreaWidth, mPos.y); mText.push_back(text); mClock = Clock(); addLineNumber(); mLineIndex = 0; mUpperBound = 0; mMarkIndex = 0; mCode = "Hello"; mFilename = ""; mWorkingDirectory = ""; frames = 0; timeNow = mClock.getCurrentTimeInMilliseconds() - 1000; mFirstMarkSet = false; }
///@bug merge with appenedNumcode using .arg() void GCode::appendCode ( QString code, QString value){ addLineNumber(); *this << code+ " "<< value<< " "; }