[DEV] many small correction
This commit is contained in:
parent
069c457407
commit
e15cb8e4b6
@ -20,6 +20,10 @@ const char* const appl::Buffer::eventChangeName = "edn-buffer-name-change";
|
||||
|
||||
appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ (void) {
|
||||
m_value = etk::UChar::Null;
|
||||
if (m_current<0) {
|
||||
m_current = 0;
|
||||
return *this;
|
||||
}
|
||||
if ( m_data != NULL
|
||||
&& m_current < m_data->m_data.size() ) {
|
||||
int8_t nbChar = etk::UChar::theoricUTF8Len(m_data->m_data[m_current]);
|
||||
@ -47,6 +51,8 @@ appl::Buffer::Iterator& appl::Buffer::Iterator::operator-- (void) {
|
||||
m_current = -1;
|
||||
}
|
||||
return *this;
|
||||
} else {
|
||||
m_current = -1;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@ -91,6 +97,9 @@ appl::Buffer::Iterator appl::Buffer::end(void) {
|
||||
}
|
||||
|
||||
appl::Buffer::Iterator appl::Buffer::cursor(void) {
|
||||
if (m_cursorPos<= 0) {
|
||||
return begin();
|
||||
}
|
||||
return position( m_cursorPos );
|
||||
}
|
||||
|
||||
@ -107,7 +116,7 @@ appl::Buffer::Buffer(void) :
|
||||
m_hasFileName(false),
|
||||
m_fileName(""),
|
||||
m_isModify(false),
|
||||
m_cursorPos(0),
|
||||
m_cursorPos(-1),
|
||||
m_cursorSelectPos(-1),
|
||||
m_cursorPreferredCol(-1),
|
||||
m_nbLines(1),
|
||||
@ -133,6 +142,7 @@ bool appl::Buffer::loadFile(const std::string& _name) {
|
||||
m_fileName = _name;
|
||||
m_hasFileName = true;
|
||||
m_isModify = true;
|
||||
m_cursorPos = 0;
|
||||
setHighlightType("");
|
||||
etk::FSNode file(m_fileName);
|
||||
if (file.exist() == false) {
|
||||
@ -181,12 +191,8 @@ void appl::Buffer::setModification(bool _status) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO : Naming error
|
||||
void appl::Buffer::countNumberofLine(void) {
|
||||
if (m_data.size() == 0) {
|
||||
m_nbLines = 1;
|
||||
return;
|
||||
}
|
||||
m_nbLines = 0;
|
||||
for (Iterator it = begin();
|
||||
(bool)it == true;
|
||||
@ -195,6 +201,9 @@ void appl::Buffer::countNumberofLine(void) {
|
||||
++m_nbLines;
|
||||
}
|
||||
}
|
||||
if (m_nbLines == 0) {
|
||||
m_nbLines = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -203,7 +212,8 @@ appl::Buffer::Iterator appl::Buffer::getStartLine(const appl::Buffer::Iterator&
|
||||
if (false == searchBack(_pos, etk::UChar::Return, startPos)) {
|
||||
return begin();
|
||||
}
|
||||
return startPos;
|
||||
// note search will return the position of \n ==> the lione start just after ...
|
||||
return startPos+1;
|
||||
}
|
||||
|
||||
appl::Buffer::Iterator appl::Buffer::getEndLine(const appl::Buffer::Iterator& _pos) {
|
||||
@ -211,6 +221,7 @@ appl::Buffer::Iterator appl::Buffer::getEndLine(const appl::Buffer::Iterator& _p
|
||||
if (false == search(_pos, etk::UChar::Return, endPos)) {
|
||||
endPos = end();
|
||||
}
|
||||
// Note the line end at the \n
|
||||
return endPos;
|
||||
}
|
||||
|
||||
@ -412,7 +423,7 @@ appl::Buffer::Iterator appl::Buffer::countForwardNLines(const appl::Buffer::Iter
|
||||
char32_t value;
|
||||
int32_t lineCount = 0;
|
||||
//APPL_INFO("startPos=" << startPos << " nLines=" << nLines);
|
||||
for (Iterator it = ++position(_startPos);
|
||||
for (Iterator it = position(_startPos);
|
||||
(bool)it == true;
|
||||
++it) {
|
||||
value = *it;
|
||||
@ -433,7 +444,7 @@ appl::Buffer::Iterator appl::Buffer::countBackwardNLines(const appl::Buffer::Ite
|
||||
char32_t value;
|
||||
int32_t lineCount = 0;
|
||||
for (Iterator it = --position(_startPos);
|
||||
it != begin();
|
||||
(bool)it == true;
|
||||
--it) {
|
||||
value = *it;
|
||||
if (value == etk::UChar::Return) {
|
||||
|
@ -323,7 +323,7 @@ namespace appl {
|
||||
return m_data;
|
||||
};
|
||||
protected:
|
||||
esize_t m_cursorPos; //!< cursor position.
|
||||
int64_t m_cursorPos; //!< cursor position.
|
||||
public:
|
||||
void moveCursor(esize_t _pos);
|
||||
protected:
|
||||
@ -353,14 +353,14 @@ namespace appl {
|
||||
* @brief Get the Start position of the selection.
|
||||
* @return position of the start selection.
|
||||
*/
|
||||
esize_t getStartSelectionPos(void) {
|
||||
int64_t getStartSelectionPos(void) {
|
||||
return etk_min(m_cursorPos, m_cursorSelectPos);
|
||||
}
|
||||
/**
|
||||
* @brief Get the Stop position of the selection.
|
||||
* @return position of the stop selection.
|
||||
*/
|
||||
esize_t getStopSelectionPos(void) {
|
||||
int64_t getStopSelectionPos(void) {
|
||||
return etk_max(m_cursorPos, m_cursorSelectPos);
|
||||
}
|
||||
protected:
|
||||
|
@ -238,9 +238,9 @@ MainWindows::MainWindows(void) {
|
||||
(void)myMenu->addSpacer();
|
||||
(void)myMenu->add(idMenugDisplay, "Reload openGl Shader", "", ednMsgGuiReloadShader);
|
||||
|
||||
m_widgetLabelFileName = new widget::Label("<left>FileName</left>");
|
||||
m_widgetLabelFileName = new widget::Label("FileName");
|
||||
m_widgetLabelFileName->setExpand(bvec2(true,false));
|
||||
m_widgetLabelFileName->setFill(bvec2(false,true));;
|
||||
m_widgetLabelFileName->setFill(bvec2(true,false));;
|
||||
mySizerHori->subWidgetAdd(m_widgetLabelFileName);
|
||||
|
||||
|
||||
@ -279,6 +279,7 @@ MainWindows::MainWindows(void) {
|
||||
registerMultiCast(ednMsgBufferId);
|
||||
registerMultiCast(ednMsgGuiReloadShader);
|
||||
registerMultiCast(appl::MsgNameGuiChangeColor);
|
||||
registerMultiCast(appl::MsgSelectNewFile);
|
||||
}
|
||||
|
||||
|
||||
@ -350,11 +351,23 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg) {
|
||||
APPL_ERROR("can not call unexistant buffer manager ... ");
|
||||
return;
|
||||
}
|
||||
if (_msg.getMessage() == ednMsgGuiNew) {
|
||||
if (m_bufferManager == NULL) {
|
||||
APPL_ERROR("can not call unexistant buffer manager ... ");
|
||||
return;
|
||||
if (_msg.getMessage() == appl::MsgSelectNewFile) {
|
||||
// select a new Buffer ==> change title:
|
||||
appl::Buffer* tmpp = m_bufferManager->getBufferSelected();
|
||||
if (tmpp == NULL) {
|
||||
setTitle("Edn");
|
||||
if (m_widgetLabelFileName != NULL) {
|
||||
m_widgetLabelFileName->setLabel("");
|
||||
}
|
||||
} else {
|
||||
setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + tmpp->getFileName());
|
||||
if (m_widgetLabelFileName != NULL) {
|
||||
m_widgetLabelFileName->setLabel(tmpp->getFileName() + (tmpp->isModify()==true?" *":""));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else if (_msg.getMessage() == ednMsgGuiNew) {
|
||||
(void)m_bufferManager->createNewBuffer();
|
||||
} else if (_msg.getMessage() == ednEventPopUpFileSelected) {
|
||||
APPL_DEBUG("Request opening the file : " << _msg.getData());
|
||||
|
@ -696,7 +696,7 @@ void appl::TextViewer::updateScrolling(void) {
|
||||
m_originScrooled.setY(realCursorPosition.y()-m_size.y()+lineSize*2.0f);
|
||||
}
|
||||
m_originScrooled.setMax(vec2(0,0));
|
||||
|
||||
// TODO : Limit min position too ...
|
||||
}
|
||||
|
||||
bool appl::TextViewer::moveCursor(const appl::Buffer::Iterator& _pos) {
|
||||
@ -790,6 +790,7 @@ void appl::TextViewer::moveCursorRight(appl::TextViewer::moveMode _mode) {
|
||||
case moveLetter:
|
||||
it = m_buffer->cursor();
|
||||
++it;
|
||||
APPL_ERROR("Cursor position : " << (esize_t)it);
|
||||
moveCursor(it);
|
||||
break;
|
||||
case moveWord:
|
||||
@ -813,6 +814,7 @@ void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
|
||||
case moveLetter:
|
||||
it = m_buffer->cursor();;
|
||||
--it;
|
||||
APPL_ERROR("Cursor position : " << (esize_t)it);
|
||||
moveCursor(it);
|
||||
break;
|
||||
case moveWord:
|
||||
@ -820,7 +822,7 @@ void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
|
||||
break;
|
||||
case moveEnd:
|
||||
it = m_buffer->getStartLine(m_buffer->cursor());
|
||||
moveCursor(++it);
|
||||
moveCursor(it);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -838,12 +840,11 @@ void appl::TextViewer::moveCursorUp(esize_t _nbLine) {
|
||||
}
|
||||
// Decide what column to move to, if there's a preferred column use that
|
||||
if (m_buffer->getFavoriteUpDownPos() < 0) {
|
||||
// TODO : Remove this +1 !!!
|
||||
m_buffer->setFavoriteUpDownPos(getScreenSize(lineStartPos+1, m_buffer->cursor()));
|
||||
m_buffer->setFavoriteUpDownPos(getScreenSize(lineStartPos, m_buffer->cursor()));
|
||||
}
|
||||
EWOL_DEBUG("move_up : " << m_buffer->getFavoriteUpDownPos());
|
||||
// get the previous line
|
||||
appl::Buffer::Iterator prevLineStartPos = m_buffer->countBackwardNLines(lineStartPos, _nbLine);
|
||||
appl::Buffer::Iterator prevLineStartPos = m_buffer->countBackwardNLines(lineStartPos-1, _nbLine);
|
||||
//APPL_INFO("Move line UP result : prevLineStartPos=" << prevLineStartPos);
|
||||
// get the display char position
|
||||
appl::Buffer::Iterator newPos = getPosSize(prevLineStartPos, m_buffer->getFavoriteUpDownPos());
|
||||
@ -866,8 +867,7 @@ void appl::TextViewer::moveCursorDown(esize_t _nbLine) {
|
||||
appl::Buffer::Iterator lineStartPos = m_buffer->getStartLine(m_buffer->cursor());
|
||||
|
||||
if (m_buffer->getFavoriteUpDownPos() < 0) {
|
||||
// TODO : Remove this +1 !!!
|
||||
m_buffer->setFavoriteUpDownPos(getScreenSize(lineStartPos+1, m_buffer->cursor()));
|
||||
m_buffer->setFavoriteUpDownPos(getScreenSize(lineStartPos, m_buffer->cursor()));
|
||||
}
|
||||
EWOL_DEBUG("move down : " << m_buffer->getFavoriteUpDownPos());
|
||||
// get the next line :
|
||||
|
@ -48,7 +48,7 @@ bool appl::TextPluginCopy::onReceiveMessage(appl::TextViewer& _textDrawer,
|
||||
}
|
||||
}
|
||||
if (_msg.getMessage() == ednMsgGuiCut) {
|
||||
_textDrawer.m_buffer->removeSelection();
|
||||
_textDrawer.remove();
|
||||
}
|
||||
return true;
|
||||
} else if (_msg.getMessage() == ednMsgGuiPaste) {
|
||||
|
@ -40,7 +40,7 @@ bool appl::TextPluginMultiLineTab::onEventEntry(appl::TextViewer& _textDrawer,
|
||||
appl::Buffer::Iterator itStart = _textDrawer.m_buffer->selectStart();
|
||||
appl::Buffer::Iterator itStop = _textDrawer.m_buffer->selectStop();
|
||||
// get the compleate section of the buffer :
|
||||
itStart = _textDrawer.m_buffer->getStartLine(itStart+1);
|
||||
itStart = _textDrawer.m_buffer->getStartLine(itStart);
|
||||
itStop = _textDrawer.m_buffer->getEndLine(itStop);
|
||||
// copy the curent data in a classicle string:
|
||||
std::string data;
|
||||
@ -91,6 +91,6 @@ bool appl::TextPluginMultiLineTab::onEventEntry(appl::TextViewer& _textDrawer,
|
||||
}
|
||||
// Real replace of DATA :
|
||||
_textDrawer.replace(data, itStart, itStop);
|
||||
_textDrawer.m_buffer->setSelectionPos(itStart+1);
|
||||
_textDrawer.m_buffer->setSelectionPos(itStart);
|
||||
return true;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user