113 lines
2.2 KiB
C++
113 lines
2.2 KiB
C++
/*******************************************
|
|
* Zira Editor
|
|
* A lightweight PHP Editor
|
|
* (C)2019 https://github.com/ziracms/editor
|
|
*******************************************/
|
|
|
|
#include "linemark.h"
|
|
|
|
LineMark::LineMark(Editor * codeEditor) : QWidget(codeEditor)
|
|
{
|
|
editor = codeEditor;
|
|
setCursor(Qt::ArrowCursor);
|
|
setMouseTracking(true);
|
|
}
|
|
|
|
QSize LineMark::sizeHint() const {
|
|
return QSize(editor->lineMarkAreaWidth(), 0);
|
|
}
|
|
|
|
void LineMark::paintEvent(QPaintEvent *event)
|
|
{
|
|
editor->lineMarkAreaPaintEvent(event);
|
|
}
|
|
|
|
void LineMark::addMark(int line, QString text)
|
|
{
|
|
marks[line] = text.toStdString();
|
|
}
|
|
|
|
int LineMark::getMark(int line, QString & text)
|
|
{
|
|
marksIterator = marks.find(line);
|
|
if (marksIterator != marks.end()) {
|
|
text = QString::fromStdString(marksIterator->second);
|
|
return marksIterator->first;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void LineMark::clearMarks()
|
|
{
|
|
marks.clear();
|
|
}
|
|
|
|
void LineMark::addError(int line, QString text)
|
|
{
|
|
errors[line] = text.toStdString();
|
|
}
|
|
|
|
int LineMark::getError(int line, QString & text)
|
|
{
|
|
errorsIterator = errors.find(line);
|
|
if (errorsIterator != errors.end()) {
|
|
text = QString::fromStdString(errorsIterator->second);
|
|
return errorsIterator->first;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void LineMark::clearErrors()
|
|
{
|
|
errors.clear();
|
|
}
|
|
|
|
void LineMark::addWarning(int line, QString text)
|
|
{
|
|
warnings[line] = text.toStdString();
|
|
}
|
|
|
|
int LineMark::getWarning(int line, QString & text)
|
|
{
|
|
warningsIterator = warnings.find(line);
|
|
if (warningsIterator != warnings.end()) {
|
|
text = QString::fromStdString(warningsIterator->second);
|
|
return warningsIterator->first;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void LineMark::clearWarnings()
|
|
{
|
|
warnings.clear();
|
|
}
|
|
|
|
void LineMark::clear()
|
|
{
|
|
clearMarks();
|
|
clearErrors();
|
|
clearWarnings();
|
|
}
|
|
|
|
void LineMark::mouseMoveEvent(QMouseEvent *event)
|
|
{
|
|
editor->showLineMark(event->y());
|
|
}
|
|
|
|
void LineMark::mousePressEvent(QMouseEvent *event)
|
|
{
|
|
editor->addLineMark(event->y());
|
|
}
|
|
|
|
int LineMark::getErrorsCount() {
|
|
return static_cast<int>(errors.size());
|
|
}
|
|
|
|
int LineMark::getWarningsCount() {
|
|
return static_cast<int>(warnings.size());
|
|
}
|
|
|
|
int LineMark::getMarksCount() {
|
|
return static_cast<int>(marks.size());
|
|
}
|