Implemented line and col calculations in scriptsubview

openmw-37
artemutin@yandex.ru 9 years ago
parent 029a86267b
commit e7a3f059aa

@ -198,16 +198,30 @@ void CSVWorld::ScriptSubView::useHint (const std::string& hint)
if (hint.empty())
return;
if (hint[0]=='l')
size_t line = 0, column = 0;
std::istringstream stream (hint.c_str()+2);
switch(hint[0]){
case 'R':
case 'r':
{
std::istringstream stream (hint.c_str()+1);
QModelIndex index = mModel->getModelIndex (getUniversalId().getId(), mColumn);
QString source = mModel->data (index).toString();
size_t pos;
stream >> pos >> pos;
char ignore;
int line;
int column;
for (size_t i = 0; i <= pos; ++i){
if (source[(unsigned) i] == '\n'){
++line;
column = i;
}
}
column = pos - column - (line > 0 ? 1 : 0);
break;
}
case 'l':
stream >> line >> column;
}
if (stream >> ignore >> line >> column)
{
QTextCursor cursor = mEditor->textCursor();
cursor.movePosition (QTextCursor::Start);
@ -217,8 +231,6 @@ void CSVWorld::ScriptSubView::useHint (const std::string& hint)
mEditor->setFocus();
mEditor->setTextCursor (cursor);
}
}
}
void CSVWorld::ScriptSubView::textChanged()
{

Loading…
Cancel
Save