logic: Improved code view performance
* Don't set stylesheet for every token activation * Streamlined code area creation steps * Delay most syntax highlighting until lines become visible
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "qt/view/QtCodeView.h"
|
||||
|
||||
#include "utility/ResourcePaths.h"
|
||||
#include "utility/tracing.h"
|
||||
|
||||
#include "qt/element/QtCodeArea.h"
|
||||
#include "qt/element/QtCodeNavigator.h"
|
||||
@@ -33,6 +34,8 @@ void QtCodeView::refreshView()
|
||||
{
|
||||
m_onQtThread([=]()
|
||||
{
|
||||
TRACE("refresh");
|
||||
|
||||
setStyleSheet();
|
||||
|
||||
m_widget->refreshStyle();
|
||||
@@ -61,6 +64,8 @@ void QtCodeView::showCodeSnippets(const std::vector<CodeSnippetParams>& snippets
|
||||
{
|
||||
m_onQtThread([=]()
|
||||
{
|
||||
TRACE("show code snippets");
|
||||
|
||||
if (params.clearSnippets)
|
||||
{
|
||||
m_widget->clearCodeSnippets();
|
||||
@@ -92,11 +97,6 @@ void QtCodeView::showCodeSnippets(const std::vector<CodeSnippetParams>& snippets
|
||||
|
||||
m_widget->updateFiles();
|
||||
|
||||
if (m_widget->isInListMode())
|
||||
{
|
||||
setStyleSheet(); // so property "isLast" of QtCodeSnippet is computed correctly
|
||||
}
|
||||
|
||||
if (params.showContents)
|
||||
{
|
||||
m_widget->showContents();
|
||||
@@ -134,6 +134,7 @@ void QtCodeView::showActiveSnippet(
|
||||
{
|
||||
m_onQtThread([=]()
|
||||
{
|
||||
TRACE("show active snippet");
|
||||
m_widget->showActiveSnippet(activeTokenIds, collection, scrollTo);
|
||||
});
|
||||
}
|
||||
@@ -178,6 +179,7 @@ void QtCodeView::showContents()
|
||||
{
|
||||
m_onQtThread([=]()
|
||||
{
|
||||
TRACE("show contents");
|
||||
m_widget->showContents();
|
||||
performScroll();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user