fix(editor): lua theme on light mode
This commit is contained in:
parent
b9f68ee160
commit
a74b409459
2 changed files with 20 additions and 3 deletions
|
@ -23,6 +23,7 @@
|
||||||
bool worldSpaceTransforms = false;
|
bool worldSpaceTransforms = false;
|
||||||
|
|
||||||
inline bool isDarkMode() {
|
inline bool isDarkMode() {
|
||||||
|
// https://stackoverflow.com/a/78854851/16255372
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||||
const auto scheme = QGuiApplication::styleHints()->colorScheme();
|
const auto scheme = QGuiApplication::styleHints()->colorScheme();
|
||||||
return scheme == Qt::ColorScheme::Dark;
|
return scheme == Qt::ColorScheme::Dark;
|
||||||
|
@ -62,7 +63,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
|
|
||||||
// https://stackoverflow.com/a/78854851/16255372
|
|
||||||
QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() + QStringList { "./assets/icons" });
|
QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() + QStringList { "./assets/icons" });
|
||||||
if (isDarkMode())
|
if (isDarkMode())
|
||||||
QIcon::setFallbackThemeName("editor-dark");
|
QIcon::setFallbackThemeName("editor-dark");
|
||||||
|
|
|
@ -17,9 +17,24 @@
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "objects/script.h"
|
#include "objects/script.h"
|
||||||
#include "datatypes/meta.h"
|
#include "datatypes/meta.h"
|
||||||
|
#include <QPalette>
|
||||||
|
#include <QStyleHints>
|
||||||
|
|
||||||
QsciAPIs* makeApis(QsciLexer*);
|
QsciAPIs* makeApis(QsciLexer*);
|
||||||
|
|
||||||
|
inline bool isDarkMode() {
|
||||||
|
// https://stackoverflow.com/a/78854851/16255372
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||||
|
const auto scheme = QGuiApplication::styleHints()->colorScheme();
|
||||||
|
return scheme == Qt::ColorScheme::Dark;
|
||||||
|
#else
|
||||||
|
const QPalette defaultPalette;
|
||||||
|
const auto text = defaultPalette.color(QPalette::WindowText);
|
||||||
|
const auto window = defaultPalette.color(QPalette::Window);
|
||||||
|
return text.lightness() > window.lightness();
|
||||||
|
#endif // QT_VERSION
|
||||||
|
}
|
||||||
|
|
||||||
std::map<int, const QColor> DARK_MODE_COLOR_SCHEME = {{
|
std::map<int, const QColor> DARK_MODE_COLOR_SCHEME = {{
|
||||||
{QsciLexerLua::Comment, QColor("#808080")},
|
{QsciLexerLua::Comment, QColor("#808080")},
|
||||||
{QsciLexerLua::LineComment, QColor("#808080")},
|
{QsciLexerLua::LineComment, QColor("#808080")},
|
||||||
|
@ -156,8 +171,10 @@ ScriptDocument::ScriptDocument(std::shared_ptr<Script> script, QWidget* parent):
|
||||||
|
|
||||||
// Set color scheme
|
// Set color scheme
|
||||||
// https://stackoverflow.com/a/26318796/16255372
|
// https://stackoverflow.com/a/26318796/16255372
|
||||||
for (auto& [style, color] : DARK_MODE_COLOR_SCHEME) {
|
if (isDarkMode()) {
|
||||||
lexer->setColor(color, style);
|
for (auto& [style, color] : DARK_MODE_COLOR_SCHEME) {
|
||||||
|
lexer->setColor(color, style);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// lexer->setAutoIndentStyle(QsciScintilla::AiOpening | QsciScintilla::AiMaintain | QsciScintilla::AiClosing);
|
// lexer->setAutoIndentStyle(QsciScintilla::AiOpening | QsciScintilla::AiMaintain | QsciScintilla::AiClosing);
|
||||||
|
|
Loading…
Add table
Reference in a new issue