Browse Source

[NEW_FEATURE] Column selection is remembered now while switching among the files. As well this settings will be stored in the next session.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@83 f5eea248-9336-0410-98b8-ebc06183d4e3
pull/343/head^2
donho 17 years ago
parent
commit
6ab3326870
  1. 5
      PowerEditor/src/Parameters.cpp
  2. 1
      PowerEditor/src/Parameters.h
  3. 5
      PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp

5
PowerEditor/src/Parameters.cpp

@ -665,6 +665,8 @@ bool NppParameters::getSessionFromXmlTree(TiXmlDocument *pSessionDoc, Session *p
(childNode->ToElement())->Attribute("xOffset", &position._xOffset); (childNode->ToElement())->Attribute("xOffset", &position._xOffset);
(childNode->ToElement())->Attribute("startPos", &position._startPos); (childNode->ToElement())->Attribute("startPos", &position._startPos);
(childNode->ToElement())->Attribute("endPos", &position._endPos); (childNode->ToElement())->Attribute("endPos", &position._endPos);
(childNode->ToElement())->Attribute("selMode", &position._selMode);
const char *langName; const char *langName;
langName = (childNode->ToElement())->Attribute( "lang" ); langName = (childNode->ToElement())->Attribute( "lang" );
sessionFileInfo sfi( fileName, langName, position ); sessionFileInfo sfi( fileName, langName, position );
@ -711,6 +713,7 @@ bool NppParameters::getSessionFromXmlTree(TiXmlDocument *pSessionDoc, Session *p
(childNode->ToElement())->Attribute("xOffset", &position._xOffset); (childNode->ToElement())->Attribute("xOffset", &position._xOffset);
(childNode->ToElement())->Attribute("startPos", &position._startPos); (childNode->ToElement())->Attribute("startPos", &position._startPos);
(childNode->ToElement())->Attribute("endPos", &position._endPos); (childNode->ToElement())->Attribute("endPos", &position._endPos);
(childNode->ToElement())->Attribute("selMode", &position._selMode);
const char *langName; const char *langName;
langName = (childNode->ToElement())->Attribute( "lang" ); langName = (childNode->ToElement())->Attribute( "lang" );
sessionFileInfo sfi( fileName, langName, position ); sessionFileInfo sfi( fileName, langName, position );
@ -1122,6 +1125,7 @@ void NppParameters::writeSession(const Session & session, const char *fileName)
(fileNameNode->ToElement())->SetAttribute("xOffset", session._mainViewFiles[i]._xOffset); (fileNameNode->ToElement())->SetAttribute("xOffset", session._mainViewFiles[i]._xOffset);
(fileNameNode->ToElement())->SetAttribute("startPos", session._mainViewFiles[i]._startPos); (fileNameNode->ToElement())->SetAttribute("startPos", session._mainViewFiles[i]._startPos);
(fileNameNode->ToElement())->SetAttribute("endPos", session._mainViewFiles[i]._endPos); (fileNameNode->ToElement())->SetAttribute("endPos", session._mainViewFiles[i]._endPos);
(fileNameNode->ToElement())->SetAttribute("selMode", session._mainViewFiles[i]._selMode);
(fileNameNode->ToElement())->SetAttribute("lang", session._mainViewFiles[i]._langName.c_str()); (fileNameNode->ToElement())->SetAttribute("lang", session._mainViewFiles[i]._langName.c_str());
TiXmlText fileNameFullPath(session._mainViewFiles[i]._fileName.c_str()); TiXmlText fileNameFullPath(session._mainViewFiles[i]._fileName.c_str());
@ -1144,6 +1148,7 @@ void NppParameters::writeSession(const Session & session, const char *fileName)
(fileNameNode->ToElement())->SetAttribute("xOffset", session._subViewFiles[i]._xOffset); (fileNameNode->ToElement())->SetAttribute("xOffset", session._subViewFiles[i]._xOffset);
(fileNameNode->ToElement())->SetAttribute("startPos", session._subViewFiles[i]._startPos); (fileNameNode->ToElement())->SetAttribute("startPos", session._subViewFiles[i]._startPos);
(fileNameNode->ToElement())->SetAttribute("endPos", session._subViewFiles[i]._endPos); (fileNameNode->ToElement())->SetAttribute("endPos", session._subViewFiles[i]._endPos);
(fileNameNode->ToElement())->SetAttribute("selMode", session._subViewFiles[i]._selMode);
(fileNameNode->ToElement())->SetAttribute("lang", session._subViewFiles[i]._langName.c_str()); (fileNameNode->ToElement())->SetAttribute("lang", session._subViewFiles[i]._langName.c_str());
TiXmlText fileNameFullPath(session._subViewFiles[i]._fileName.c_str()); TiXmlText fileNameFullPath(session._subViewFiles[i]._fileName.c_str());

1
PowerEditor/src/Parameters.h

@ -92,6 +92,7 @@ struct Position
int _startPos; int _startPos;
int _endPos; int _endPos;
int _xOffset; int _xOffset;
int _selMode;
}; };
struct sessionFileInfo : public Position { struct sessionFileInfo : public Position {

5
PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp

@ -838,6 +838,7 @@ void ScintillaEditView::saveCurrentPos()
buf._pos._startPos = static_cast<int>(execute(SCI_GETSELECTIONSTART)); buf._pos._startPos = static_cast<int>(execute(SCI_GETSELECTIONSTART));
buf._pos._endPos = static_cast<int>(execute(SCI_GETSELECTIONEND)); buf._pos._endPos = static_cast<int>(execute(SCI_GETSELECTIONEND));
buf._pos._xOffset = static_cast<int>(execute(SCI_GETXOFFSET)); buf._pos._xOffset = static_cast<int>(execute(SCI_GETXOFFSET));
buf._pos._selMode = execute(SCI_GETSELECTIONMODE);
} }
void ScintillaEditView::restoreCurrentPos(const Position & prevPos) void ScintillaEditView::restoreCurrentPos(const Position & prevPos)
@ -847,6 +848,10 @@ void ScintillaEditView::restoreCurrentPos(const Position & prevPos)
Buffer & buf = _buffers[_currentIndex]; Buffer & buf = _buffers[_currentIndex];
scroll(0, buf._pos._firstVisibleLine); scroll(0, buf._pos._firstVisibleLine);
if (buf._pos._selMode == SC_SEL_RECTANGLE)
{
execute(SCI_SETSELECTIONMODE, buf._pos._selMode);
}
execute(SCI_SETSELECTIONSTART, buf._pos._startPos); execute(SCI_SETSELECTIONSTART, buf._pos._startPos);
execute(SCI_SETSELECTIONEND, buf._pos._endPos); execute(SCI_SETSELECTIONEND, buf._pos._endPos);
execute(SCI_SETXOFFSET, buf._pos._xOffset); execute(SCI_SETXOFFSET, buf._pos._xOffset);

Loading…
Cancel
Save