added dark window to dark theme

This commit is contained in:
fourtf 2018-04-05 23:44:46 +02:00
parent 5433daa1ea
commit 723f8f4989
8 changed files with 88 additions and 71 deletions

View file

@ -54,9 +54,10 @@ void ThemeManager::update()
void ThemeManager::actuallyUpdate(double hue, double multiplier)
{
isLight = multiplier > 0;
bool isLightTabs;
bool lightWin = isLight;
QColor themeColor = QColor::fromHslF(hue, 0.5, 0.5);
QColor none(0, 0, 0, 0);
QColor themeColor = QColor::fromHslF(hue, 0.43, 0.5);
QColor themeColorNoSat = QColor::fromHslF(hue, 0, 0.5);
qreal sat = 0;
@ -66,48 +67,40 @@ void ThemeManager::actuallyUpdate(double hue, double multiplier)
return QColor::fromHslF(h, s, ((l - 0.5) * multiplier) + 0.5, a);
};
//#ifdef USEWINSDK
// isLightTabs = isLight;
// QColor tabFg = isLight ? "#000" : "#fff";
// this->windowBg = isLight ? "#fff" : getColor(0, sat, 0.9);
//#else
isLightTabs = true;
QColor tabFg = isLightTabs ? "#000" : "#fff";
this->windowBg = "#fff";
//#endif
/// WINDOW
{
QColor bg = this->window.background = lightWin ? "#fff" : "#444";
QColor fg = this->window.text = lightWin ? "#000" : "#eee";
this->window.borderFocused = lightWin ? "#ccc" : themeColor;
this->window.borderUnfocused = lightWin ? "#ccc" : themeColorNoSat;
// Ubuntu style
// TODO: add setting for this
// TabText = QColor(210, 210, 210);
// TabBackground = QColor(61, 60, 56);
// TabHoverText = QColor(210, 210, 210);
// TabHoverBackground = QColor(73, 72, 68);
// Ubuntu style
// TODO: add setting for this
// TabText = QColor(210, 210, 210);
// TabBackground = QColor(61, 60, 56);
// TabHoverText = QColor(210, 210, 210);
// TabHoverBackground = QColor(73, 72, 68);
// message (referenced later)
this->messages.textColors.caret = //
this->messages.textColors.regular = isLight ? "#000" : "#fff";
// message (referenced later)
this->messages.textColors.caret = //
this->messages.textColors.regular = isLight ? "#000" : "#fff";
// tabs
// text, {regular, hover, unfocused}
// this->windowBg = "#ccc";
/// TABS
// text, {regular, hover, unfocused}
this->tabs.border = "#999";
this->tabs.regular = {tabFg, {windowBg, blendColors(windowBg, "#999", 0.5), windowBg}};
this->tabs.selected = {"#fff", {themeColor, themeColor, QColor::fromHslF(hue, 0, 0.5)}};
this->tabs.newMessage = {
tabFg,
{QBrush(blendColors(themeColor, windowBg, 0.7), Qt::FDiagPattern),
QBrush(blendColors(themeColor, windowBg, 0.5), Qt::FDiagPattern),
QBrush(blendColors(themeColorNoSat, windowBg, 0.7), Qt::FDiagPattern)}};
this->tabs.highlighted = {
tabFg,
{blendColors(themeColor, windowBg, 0.7), blendColors(themeColor, windowBg, 0.5),
blendColors(themeColorNoSat, windowBg, 0.7)}};
// this->windowBg = "#fff";
if (lightWin) {
this->tabs.regular = {fg, {bg, "#ccc", bg}};
this->tabs.newMessage = {fg, {bg, "#ccc", bg}};
this->tabs.highlighted = {fg, {bg, "#ccc", bg}};
this->tabs.selected = {"#fff", {"#333", "#333", "#666"}};
} else {
this->tabs.regular = {fg, {bg, "#555", bg}};
this->tabs.newMessage = {fg, {bg, "#555", bg}};
this->tabs.highlighted = {fg, {bg, "#555", bg}};
// this->tabs.selected = {"#000", {themeColor, themeColor, themeColorNoSat}};
this->tabs.selected = {"#000", {"#999", "#999", "#888"}};
}
}
// Split
bool flat = isLight;

View file

@ -32,6 +32,15 @@ public:
} backgrounds;
};
/// WINDOW
struct {
QColor background;
QColor text;
QColor borderUnfocused;
QColor borderFocused;
} window;
/// TABS
struct {
TabColors regular;
TabColors selected;
@ -40,6 +49,7 @@ public:
QColor border;
} tabs;
/// SPLITS
struct {
QColor messageSeperator;
QColor background;
@ -64,6 +74,7 @@ public:
} input;
} splits;
/// MESSAGES
struct {
struct {
QColor regular;
@ -85,6 +96,7 @@ public:
QColor selection;
} messages;
/// SCROLLBAR
struct {
QColor background;
QColor thumb;
@ -93,14 +105,12 @@ public:
// QColor highlights[3];
} scrollbars;
/// TOOLTIP
struct {
QColor text;
QColor background;
} tooltip;
QColor windowBg;
QColor windowText;
void normalizeColor(QColor &color);
void update();

View file

@ -160,12 +160,12 @@ void BaseWindow::themeRefreshEvent()
{
if (this->enableCustomFrame) {
QPalette palette;
palette.setColor(QPalette::Background, this->themeManager.windowBg);
palette.setColor(QPalette::Foreground, this->themeManager.windowText);
palette.setColor(QPalette::Background, this->themeManager.window.background);
palette.setColor(QPalette::Foreground, this->themeManager.window.text);
this->setPalette(palette);
for (RippleEffectButton *button : this->buttons) {
button->setMouseEffectColor(this->themeManager.windowText);
button->setMouseEffectColor(this->themeManager.window.text);
}
}
}
@ -408,15 +408,22 @@ void BaseWindow::paintEvent(QPaintEvent *event)
bool windowFocused = this->window() == QApplication::activeWindow();
QLinearGradient gradient(0, 0, 10, 250);
gradient.setColorAt(1, this->themeManager.tabs.selected.backgrounds.unfocused.color());
// QLinearGradient gradient(0, 0, 10, 250);
// gradient.setColorAt(1,
// this->themeManager.tabs.selected.backgrounds.unfocused.color());
if (windowFocused) {
gradient.setColorAt(.4, this->themeManager.tabs.selected.backgrounds.regular.color());
} else {
gradient.setColorAt(.4, this->themeManager.tabs.selected.backgrounds.unfocused.color());
}
painter.setPen(QPen(QBrush(gradient), 1));
// if (windowFocused) {
// gradient.setColorAt(.4,
// this->themeManager.tabs.selected.backgrounds.regular.color());
// } else {
// gradient.setColorAt(.4,
// this->themeManager.tabs.selected.backgrounds.unfocused.color());
// }
// painter.setPen(QPen(QBrush(gradient), 1));
QColor &border = windowFocused ? this->themeManager.window.borderFocused
: this->themeManager.window.borderUnfocused;
painter.setPen(QPen(QBrush(border), 1));
painter.drawRect(0, 0, this->width() - 1, this->height() - 1);
}

View file

@ -17,11 +17,14 @@ namespace widgets {
NotebookButton::NotebookButton(BaseWidget *parent)
: RippleEffectButton(parent)
{
setMouseEffectColor(QColor(0, 0, 0));
this->setAcceptDrops(true);
}
void NotebookButton::themeRefreshEvent()
{
this->setMouseEffectColor(this->themeManager.tabs.regular.text);
}
void NotebookButton::paintEvent(QPaintEvent *)
{
QPainter painter(this);
@ -30,15 +33,14 @@ void NotebookButton::paintEvent(QPaintEvent *)
QColor foreground;
if (mouseDown || mouseOver) {
background = this->themeManager.tabs.regular.backgrounds.regular.color();
background = this->themeManager.tabs.regular.backgrounds.hover.color();
foreground = this->themeManager.tabs.regular.text;
} else {
background = this->themeManager.tabs.regular.backgrounds.regular.color();
foreground = QColor(70, 80, 80);
foreground = this->themeManager.tabs.regular.text;
}
painter.setPen(Qt::NoPen);
// painter.fillRect(this->rect(), background);
float h = height(), w = width();

View file

@ -21,6 +21,7 @@ public:
NotebookButton(BaseWidget *parent);
protected:
virtual void themeRefreshEvent() override;
virtual void paintEvent(QPaintEvent *) override;
virtual void mouseReleaseEvent(QMouseEvent *) override;
virtual void dragEnterEvent(QDragEnterEvent *) override;

View file

@ -209,13 +209,13 @@ void NotebookTab::paintEvent(QPaintEvent *)
painter.fillRect(rect(), tabBackground);
// draw border
painter.setPen(QPen("#ccc"));
QPainterPath path(QPointF(0, height));
path.lineTo(0, 0);
path.lineTo(this->width() - 1, 0);
path.lineTo(this->width() - 1, this->height() - 1);
path.lineTo(0, this->height() - 1);
painter.drawPath(path);
// painter.setPen(QPen("#ccc"));
// QPainterPath path(QPointF(0, height));
// path.lineTo(0, 0);
// path.lineTo(this->width() - 1, 0);
// path.lineTo(this->width() - 1, this->height() - 1);
// path.lineTo(0, this->height() - 1);
// painter.drawPath(path);
} else {
// QPainterPath path(QPointF(0, height));
// path.lineTo(8 * scale, 0);

View file

@ -1,5 +1,7 @@
#include "titlebarbutton.hpp"
#include "singletons/thememanager.hpp"
namespace chatterino {
namespace widgets {
@ -23,8 +25,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QColor color = "#000";
QColor background = "#fff";
QColor color = this->themeManager.window.text;
QColor background = this->themeManager.window.background;
int xD = this->height() / 3;
int centerX = this->width() / 2;
@ -59,7 +61,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
break;
}
case User: {
color = QColor("#333");
// color = QColor("#333");
color = "#999";
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::HighQualityAntialiasing);
@ -85,7 +88,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
break;
}
case Settings: {
color = QColor("#333");
// color = QColor("#333");
color = "#999";
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::HighQualityAntialiasing);

View file

@ -414,7 +414,7 @@ void SplitContainer::paintEvent(QPaintEvent *)
? this->themeManager.tabs.selected.backgrounds.regular
: this->themeManager.tabs.selected.backgrounds.unfocused);
painter.fillRect(0, 0, width(), 2, accentColor);
painter.fillRect(0, 0, width(), 1, accentColor);
}
void SplitContainer::showEvent(QShowEvent *event)