logic: extended CodeView to show locations of edges to the active Token and merge overlapping snippets
This commit is contained in:
@@ -36,10 +36,13 @@ const std::string& QtCodeFile::getFileName() const
|
||||
}
|
||||
|
||||
void QtCodeFile::addCodeSnippet(
|
||||
const std::string& str, const TokenLocationFile& locationFile, int startLineNumber, Id activeTokenId
|
||||
int startLineNumber,
|
||||
const std::string& code,
|
||||
const TokenLocationFile& locationFile,
|
||||
const std::vector<Id>& activeTokenIds
|
||||
){
|
||||
std::shared_ptr<QtCodeSnippet> snippet(
|
||||
new QtCodeSnippet(m_parentView, str, locationFile, startLineNumber, activeTokenId, this)
|
||||
new QtCodeSnippet(m_parentView, startLineNumber, code, locationFile, activeTokenIds, this)
|
||||
);
|
||||
layout()->addWidget(snippet.get());
|
||||
m_snippets.push_back(snippet);
|
||||
|
||||
@@ -22,7 +22,10 @@ public:
|
||||
const std::string& getFileName() const;
|
||||
|
||||
void addCodeSnippet(
|
||||
const std::string& str, const TokenLocationFile& locationFile, int startLineNumber, Id activeTokenId
|
||||
int startLineNumber,
|
||||
const std::string& code,
|
||||
const TokenLocationFile& locationFile,
|
||||
const std::vector<Id>& activeTokenIds
|
||||
);
|
||||
|
||||
private:
|
||||
|
||||
@@ -34,16 +34,16 @@ void QtCodeSnippet::LineNumberArea::paintEvent(QPaintEvent *event)
|
||||
|
||||
QtCodeSnippet::QtCodeSnippet(
|
||||
QtCodeView* parentView,
|
||||
int startLineNumber,
|
||||
const std::string& code,
|
||||
const TokenLocationFile& locationFile,
|
||||
int startLineNumber,
|
||||
Id activeTokenId,
|
||||
const std::vector<Id>& activeTokenIds,
|
||||
QWidget *parent
|
||||
)
|
||||
: QPlainTextEdit(parent)
|
||||
, m_parentView(parentView)
|
||||
, m_startLineNumber(startLineNumber)
|
||||
, m_activeTokenId(activeTokenId)
|
||||
, m_activeTokenIds(activeTokenIds)
|
||||
, m_digits(0)
|
||||
{
|
||||
setObjectName("code_snippet");
|
||||
@@ -171,7 +171,9 @@ void QtCodeSnippet::annotateText(const TokenLocationFile& locationFile)
|
||||
m_annotations.push_back(annotation);
|
||||
|
||||
Colori color;
|
||||
if (location->getTokenId() == m_activeTokenId)
|
||||
const std::vector<Id>& ids = m_activeTokenIds;
|
||||
bool isActive = std::find(ids.begin(), ids.end(), location->getTokenId()) != ids.end();
|
||||
if (isActive)
|
||||
{
|
||||
color = ApplicationSettings::getInstance()->getCodeActiveLinkColor();
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ public:
|
||||
|
||||
QtCodeSnippet(
|
||||
QtCodeView* parentView,
|
||||
int startLineNumber,
|
||||
const std::string& code,
|
||||
const TokenLocationFile& locationFile,
|
||||
int startLineNumber,
|
||||
Id activeTokenId,
|
||||
const std::vector<Id>& activeTokenIds,
|
||||
QWidget *parent = 0
|
||||
);
|
||||
virtual ~QtCodeSnippet();
|
||||
@@ -81,7 +81,7 @@ private:
|
||||
|
||||
QWidget *m_lineNumberArea;
|
||||
const int m_startLineNumber;
|
||||
const Id m_activeTokenId;
|
||||
const std::vector<Id> m_activeTokenIds;
|
||||
int m_digits;
|
||||
|
||||
std::vector<Annotation> m_annotations;
|
||||
|
||||
@@ -99,7 +99,7 @@ void QtCodeView::doAddCodeSnippet(const CodeSnippetParams params)
|
||||
m_frame->layout()->addWidget(file);
|
||||
}
|
||||
|
||||
file->addCodeSnippet(params.code, params.locationFile, params.startLineNumber, params.activeTokenId);
|
||||
file->addCodeSnippet(params.startLineNumber, params.code, params.locationFile, params.activeTokenIds);
|
||||
}
|
||||
|
||||
void QtCodeView::doClearCodeSnippets()
|
||||
|
||||
Reference in New Issue
Block a user