* shader editor: highlight current line
This commit is contained in:
parent
5e0d1b789d
commit
66f80987a8
|
|
@ -502,6 +502,7 @@ display line numbers, exremely useful for error messages handling
|
||||||
#include <QStringListModel>
|
#include <QStringListModel>
|
||||||
#include <QAbstractItemView>
|
#include <QAbstractItemView>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
|
#include <QPainter>
|
||||||
#include "stringio.h"
|
#include "stringio.h"
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "ifilesystem.h"
|
#include "ifilesystem.h"
|
||||||
|
|
@ -595,6 +596,9 @@ static const char c_pageSurf[] = "q3map-surface-parameter-directives.html$";
|
||||||
static const char c_pageQER[] = "quake-editor-radiant-directives.html#";
|
static const char c_pageQER[] = "quake-editor-radiant-directives.html#";
|
||||||
static const char c_pageStage[] = "stage-directives.html#";
|
static const char c_pageStage[] = "stage-directives.html#";
|
||||||
|
|
||||||
|
static const QColor c_colorForeground( Qt::white );
|
||||||
|
static const QColor c_colorBackground( 46, 52, 54 );
|
||||||
|
|
||||||
static const QColor c_colorComment( Qt::darkGray );
|
static const QColor c_colorComment( Qt::darkGray );
|
||||||
static const QColor c_colorShaderName( 249, 174, 88 );
|
static const QColor c_colorShaderName( 249, 174, 88 );
|
||||||
static const QColor c_colorBrace( 248, 228, 0 );
|
static const QColor c_colorBrace( 248, 228, 0 );
|
||||||
|
|
@ -1561,8 +1565,8 @@ public:
|
||||||
|
|
||||||
// force back/foreground colors to not be ruined by global theme
|
// force back/foreground colors to not be ruined by global theme
|
||||||
QPalette pal = palette();
|
QPalette pal = palette();
|
||||||
pal.setColor( QPalette::Base, QColor( 46, 52, 54 ) );
|
pal.setColor( QPalette::Base, c_colorBackground );
|
||||||
pal.setColor( QPalette::Text, Qt::white );
|
pal.setColor( QPalette::Text, c_colorForeground );
|
||||||
setPalette( pal );
|
setPalette( pal );
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -1733,6 +1737,32 @@ protected:
|
||||||
}
|
}
|
||||||
QPlainTextEdit::wheelEvent(e);
|
QPlainTextEdit::wheelEvent(e);
|
||||||
}
|
}
|
||||||
|
void paintEvent( QPaintEvent* pEvent ) override {
|
||||||
|
static QRect rect;
|
||||||
|
static int block;
|
||||||
|
int newblock = textCursor().blockNumber();
|
||||||
|
QRect newrect = cursorRect();
|
||||||
|
newrect.setLeft( -1 );
|
||||||
|
newrect.setRight( width() - 1 );
|
||||||
|
if( rect != newrect || block != newblock ){
|
||||||
|
QRegion region( newrect + QMargins( 0, 0, 0, 1 ) ); // expand invalidated area, bottom line appears drawn 1px lower
|
||||||
|
// this may differ from static rect, if e.g. scrolled, thus reevaluate
|
||||||
|
QRect oldr = cursorRect( QTextCursor( document()->findBlockByNumber( block ) ) );
|
||||||
|
oldr.setLeft( -1 );
|
||||||
|
oldr.setRight( width() - 1 );
|
||||||
|
region += oldr + QMargins( 0, 0, 0, 1 );
|
||||||
|
|
||||||
|
rect = newrect;
|
||||||
|
block = newblock;
|
||||||
|
viewport()->update( region );
|
||||||
|
}
|
||||||
|
else{ // highlight current line
|
||||||
|
QPainter painter( viewport() );
|
||||||
|
painter.setPen( c_colorBackground.lighter( 150 ) );
|
||||||
|
painter.drawRect( rect );
|
||||||
|
}
|
||||||
|
QPlainTextEdit::paintEvent( pEvent );
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
void texTree_construct(){
|
void texTree_construct(){
|
||||||
class LoadTexturesByTypeVisitor : public ImageModules::Visitor
|
class LoadTexturesByTypeVisitor : public ImageModules::Visitor
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user