From bc6626e207ceb4ed0abc325bf6831bd60915d0b5 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 18 Mar 2019 15:16:54 +1100 Subject: [PATCH] fixed some icons --- dialogs/texteditdialog.cpp | 15 +++++------ panels/grapheditor.cpp | 3 ++- ui/icons.cpp | 53 +++++++++++++++++++++----------------- ui/icons.h | 6 ++++- 4 files changed, 43 insertions(+), 34 deletions(-) diff --git a/dialogs/texteditdialog.cpp b/dialogs/texteditdialog.cpp index 31c841906..185b7c357 100644 --- a/dialogs/texteditdialog.cpp +++ b/dialogs/texteditdialog.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -48,7 +47,7 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Bold Button /* bold_button = new QPushButton(); - bold_button->setIcon(QIcon(":/icons/bold.svg")); + bold_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/bold.svg", false)); bold_button->setCheckable(true); connect(bold_button, SIGNAL(clicked(bool)), this, SLOT(SetBold(bool))); toolbar->addWidget(bold_button); @@ -56,14 +55,14 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Italic Button italic_button = new QPushButton(); - italic_button->setIcon(QIcon(":/icons/italic.svg")); + italic_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/italic.svg", false)); italic_button->setCheckable(true); connect(italic_button, SIGNAL(clicked(bool)), textEdit, SLOT(setFontItalic(bool))); toolbar->addWidget(italic_button); // Underline Button underline_button = new QPushButton(); - underline_button->setIcon(QIcon(":/icons/underline.svg")); + underline_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/underline.svg", false)); underline_button->setCheckable(true); connect(underline_button, SIGNAL(clicked(bool)), textEdit, SLOT(setFontUnderline(bool))); toolbar->addWidget(underline_button); @@ -101,7 +100,7 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Left Align left_align_button = new QPushButton(); - left_align_button->setIcon(QIcon(":/icons/align-left.svg")); + left_align_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/align-left.svg", false)); left_align_button->setCheckable(true); left_align_button->setProperty("a", Qt::AlignLeft); connect(left_align_button, SIGNAL(clicked(bool)), this, SLOT(SetAlignmentFromProperty())); @@ -109,7 +108,7 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Center Align center_align_button = new QPushButton(); - center_align_button->setIcon(QIcon(":/icons/align-center.svg")); + center_align_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/align-center.svg", false)); center_align_button->setCheckable(true); center_align_button->setProperty("a", Qt::AlignCenter); connect(center_align_button, SIGNAL(clicked(bool)), this, SLOT(SetAlignmentFromProperty())); @@ -117,7 +116,7 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Right Align right_align_button = new QPushButton(); - right_align_button->setIcon(QIcon(":/icons/align-right.svg")); + right_align_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/align-right.svg", false)); right_align_button->setCheckable(true); right_align_button->setProperty("a", Qt::AlignRight); connect(right_align_button, SIGNAL(clicked(bool)), this, SLOT(SetAlignmentFromProperty())); @@ -125,7 +124,7 @@ TextEditDialog::TextEditDialog(QWidget *parent, const QString &s, bool rich_text // Justify Align justify_align_button = new QPushButton(); - justify_align_button->setIcon(QIcon(":/icons/justify-center.svg")); + justify_align_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/justify-center.svg", false)); justify_align_button->setCheckable(true); justify_align_button->setProperty("a", Qt::AlignJustify); connect(justify_align_button, SIGNAL(clicked(bool)), this, SLOT(SetAlignmentFromProperty())); diff --git a/panels/grapheditor.cpp b/panels/grapheditor.cpp index 17897a9ab..bf07f4a31 100644 --- a/panels/grapheditor.cpp +++ b/panels/grapheditor.cpp @@ -36,6 +36,7 @@ #include "timeline/clip.h" #include "rendering/renderfunctions.h" #include "panels.h" +#include "ui/icons.h" #include "global/debug.h" GraphEditor::GraphEditor(QWidget* parent) : Panel(parent), row(nullptr) { @@ -184,7 +185,7 @@ void GraphEditor::set_row(EffectRow *r) { QPushButton* slider_button = new QPushButton(); slider_button->setCheckable(true); slider_button->setChecked(field->IsEnabled()); - slider_button->setIcon(QIcon(":/icons/record.svg")); + slider_button->setIcon(olive::icon::CreateIconFromSVG(":/icons/record.svg", false)); slider_button->setProperty("field", i); slider_button->setIconSize(slider_button->iconSize()*0.5); connect(slider_button, SIGNAL(toggled(bool)), this, SLOT(set_field_visibility(bool))); diff --git a/ui/icons.cpp b/ui/icons.cpp index eae5ba1f3..5cf63f81e 100644 --- a/ui/icons.cpp +++ b/ui/icons.cpp @@ -26,7 +26,7 @@ QIcon olive::icon::ViewerPause; QIcon olive::icon::ViewerNextFrame; QIcon olive::icon::ViewerGoToEnd; -QIcon olive::icon::CreateIconFromSVG(const QString &path) +QIcon olive::icon::CreateIconFromSVG(const QString &path, bool create_disabled) { QIcon icon; @@ -35,6 +35,7 @@ QIcon olive::icon::CreateIconFromSVG(const QString &path) // Draw the icon as a solid color QPixmap normal(path); + // Color the icon dark if the user is using a dark theme if (olive::styling::UseDarkIcons()) { p.begin(&normal); p.setCompositionMode(QPainter::CompositionMode_SourceIn); @@ -44,18 +45,22 @@ QIcon olive::icon::CreateIconFromSVG(const QString &path) icon.addPixmap(normal, QIcon::Normal, QIcon::On); - // Create semi-transparent disabled icon - QPixmap disabled(normal.size()); - disabled.fill(Qt::transparent); + if (create_disabled) { - // draw semi-transparent version of icon for the disabled variant - p.begin(&disabled); - p.setCompositionMode(QPainter::CompositionMode_SourceOver); - p.setOpacity(0.5); - p.drawPixmap(0, 0, normal); - p.end(); + // Create semi-transparent disabled icon + QPixmap disabled(normal.size()); + disabled.fill(Qt::transparent); - icon.addPixmap(disabled, QIcon::Disabled, QIcon::On); + // draw semi-transparent version of icon for the disabled variant + p.begin(&disabled); + p.setCompositionMode(QPainter::CompositionMode_SourceOver); + p.setOpacity(0.5); + p.drawPixmap(0, 0, normal); + p.end(); + + icon.addPixmap(disabled, QIcon::Disabled, QIcon::On); + + } return icon; } @@ -64,24 +69,24 @@ void olive::icon::Initialize() { qInfo() << "Initializing icons"; - LeftArrow = QIcon(":/icons/tri-left.svg"); - RightArrow = QIcon(":/icons/tri-right.svg"); - UpArrow = QIcon(":/icons/tri-up.svg"); - DownArrow = QIcon(":/icons/tri-down.svg"); - Diamond = QIcon(":/icons/diamond.svg"); - Clock = QIcon(":/icons/clock.svg"); + LeftArrow = CreateIconFromSVG(":/icons/tri-left.svg", false); + RightArrow = CreateIconFromSVG(":/icons/tri-right.svg", false); + UpArrow = CreateIconFromSVG(":/icons/tri-up.svg", false); + DownArrow = CreateIconFromSVG(":/icons/tri-down.svg", false); + Diamond = CreateIconFromSVG(":/icons/diamond.svg", false); + Clock = CreateIconFromSVG(":/icons/clock.svg", false); - MediaVideo = QIcon(":/icons/videosource.svg"); - MediaAudio = QIcon(":/icons/audiosource.svg"); - MediaImage = QIcon(":/icons/imagesource.svg"); - MediaError = QIcon(":/icons/error.svg"); - MediaSequence = QIcon(":/icons/sequence.svg"); - MediaFolder = QIcon(":/icons/folder.svg"); + MediaVideo = CreateIconFromSVG(":/icons/videosource.svg", false); + MediaAudio = CreateIconFromSVG(":/icons/audiosource.svg", false); + MediaImage = CreateIconFromSVG(":/icons/imagesource.svg", false); + MediaError = CreateIconFromSVG(":/icons/error.svg", false); + MediaSequence = CreateIconFromSVG(":/icons/sequence.svg", false); + MediaFolder = CreateIconFromSVG(":/icons/folder.svg", false); ViewerGoToStart = CreateIconFromSVG(QStringLiteral(":/icons/prev.svg")); ViewerPrevFrame = CreateIconFromSVG(QStringLiteral(":/icons/rew.svg")); ViewerPlay = CreateIconFromSVG(QStringLiteral(":/icons/play.svg")); - ViewerPause = QPixmap(":/icons/pause.svg"); + ViewerPause = CreateIconFromSVG(":/icons/pause.svg", false); ViewerNextFrame = CreateIconFromSVG(QStringLiteral(":/icons/ff.svg")); ViewerGoToEnd = CreateIconFromSVG(QStringLiteral(":/icons/next.svg")); diff --git a/ui/icons.h b/ui/icons.h index 71c2f76bf..3153434dd 100644 --- a/ui/icons.h +++ b/ui/icons.h @@ -34,8 +34,12 @@ namespace olive { * @param path * * Path to SVG file + * + * @param create_disabled + * + * Create a semi-transparent disabled option. */ - QIcon CreateIconFromSVG(const QString &path); + QIcon CreateIconFromSVG(const QString &path, bool create_disabled = true); } }