File indexing completed on 2024-06-16 04:16:05
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "KisAnimTimelineColors.h" 0008 0009 #include <QApplication> 0010 #include <QColor> 0011 #include <QBrush> 0012 #include <QPalette> 0013 #include <QFont> 0014 #include <QFontMetrics> 0015 0016 #include "kis_debug.h" 0017 #include "krita_utils.h" 0018 0019 #include <QGlobalStatic> 0020 Q_GLOBAL_STATIC(KisAnimTimelineColors, s_instance) 0021 0022 0023 KisAnimTimelineColors::KisAnimTimelineColors() 0024 { 0025 } 0026 0027 KisAnimTimelineColors::~KisAnimTimelineColors() 0028 { 0029 } 0030 0031 KisAnimTimelineColors* KisAnimTimelineColors::instance() 0032 { 0033 return s_instance; 0034 } 0035 0036 QColor KisAnimTimelineColors::selectorColor() const 0037 { 0038 return QColor(223, 148, 51); 0039 } 0040 0041 QColor KisAnimTimelineColors::selectionColor() const 0042 { 0043 //return qApp->palette().color(QPalette::Highlight); 0044 return selectorColor(); 0045 } 0046 0047 QColor KisAnimTimelineColors::activeLayerBackground() const 0048 { 0049 QColor color = qApp->palette().color(QPalette::Highlight); 0050 return color; 0051 } 0052 0053 QBrush KisAnimTimelineColors::headerEmpty() const 0054 { 0055 return qApp->palette().brush(QPalette::Button); 0056 } 0057 0058 QBrush KisAnimTimelineColors::headerCachedFrame() const 0059 { 0060 QColor bgColor = qApp->palette().color(QPalette::Base); 0061 int darkenCoeff = bgColor.value() > 128 ? 150 : 50; 0062 return headerEmpty().color().darker(darkenCoeff); 0063 } 0064 0065 QBrush KisAnimTimelineColors::headerActive() const 0066 { 0067 return selectorColor(); 0068 } 0069 0070 QColor KisAnimTimelineColors::onionSkinsSliderEnabledColor() const 0071 { 0072 return qApp->palette().color(QPalette::Highlight); 0073 } 0074 0075 QColor KisAnimTimelineColors::onionSkinsSliderDisabledColor() const 0076 { 0077 return qApp->palette().color(QPalette::Disabled, QPalette::HighlightedText); 0078 } 0079 0080 QColor KisAnimTimelineColors::onionSkinsButtonColor() const 0081 { 0082 QColor bgColor = qApp->palette().color(QPalette::Base); 0083 const int lighterCoeff = bgColor.value() > 128 ? 120 : 80; 0084 return qApp->palette().color(QPalette::Highlight).lighter(lighterCoeff); 0085 } 0086 0087 QFont KisAnimTimelineColors::getOnionSkinsFont(const QString &maxString, const QSize &availableSize) const 0088 { 0089 QFont font = qApp->font(); 0090 0091 while(font.pointSize() > 8) { 0092 QFontMetrics fm(font); 0093 0094 QRect rc = fm.boundingRect(maxString); 0095 0096 if (rc.width() > availableSize.width() || 0097 rc.height() > availableSize.height()) { 0098 0099 font.setPointSize(font.pointSize() - 1); 0100 } else { 0101 break; 0102 } 0103 } 0104 0105 return font; 0106 }