diff --git a/icons/add-button-disabled.png b/icons/add-button-disabled.png deleted file mode 100644 index c7b22ddb4..000000000 Binary files a/icons/add-button-disabled.png and /dev/null differ diff --git a/icons/add-button.png b/icons/add-button.png deleted file mode 100644 index a2f82c462..000000000 Binary files a/icons/add-button.png and /dev/null differ diff --git a/icons/add-effect.png b/icons/add-effect.png deleted file mode 100644 index 7b16cb66f..000000000 Binary files a/icons/add-effect.png and /dev/null differ diff --git a/icons/add-transition.png b/icons/add-transition.png deleted file mode 100644 index 0f2b1ba3d..000000000 Binary files a/icons/add-transition.png and /dev/null differ diff --git a/icons/arrow-disabled.png b/icons/arrow-disabled.png deleted file mode 100644 index d9a767f21..000000000 Binary files a/icons/arrow-disabled.png and /dev/null differ diff --git a/icons/arrow.png b/icons/arrow.png deleted file mode 100644 index 3d352903c..000000000 Binary files a/icons/arrow.png and /dev/null differ diff --git a/icons/audiosource.png b/icons/audiosource.png deleted file mode 100644 index 3ec977438..000000000 Binary files a/icons/audiosource.png and /dev/null differ diff --git a/icons/beam-disabled.png b/icons/beam-disabled.png deleted file mode 100644 index 3344af772..000000000 Binary files a/icons/beam-disabled.png and /dev/null differ diff --git a/icons/beam.png b/icons/beam.png deleted file mode 100644 index a1563674f..000000000 Binary files a/icons/beam.png and /dev/null differ diff --git a/icons/clock.png b/icons/clock.png deleted file mode 100644 index 2bc896a29..000000000 Binary files a/icons/clock.png and /dev/null differ diff --git a/icons/diamond.png b/icons/diamond.png deleted file mode 100644 index ea6c47136..000000000 Binary files a/icons/diamond.png and /dev/null differ diff --git a/icons/dirup-disabled.png b/icons/dirup-disabled.png deleted file mode 100644 index 7dd3e7bf1..000000000 Binary files a/icons/dirup-disabled.png and /dev/null differ diff --git a/icons/dirup.png b/icons/dirup.png deleted file mode 100644 index e15f49fb0..000000000 Binary files a/icons/dirup.png and /dev/null differ diff --git a/icons/error.png b/icons/error.png deleted file mode 100644 index 31d167335..000000000 Binary files a/icons/error.png and /dev/null differ diff --git a/icons/ff-disabled.png b/icons/ff-disabled.png deleted file mode 100644 index aa530c75f..000000000 Binary files a/icons/ff-disabled.png and /dev/null differ diff --git a/icons/ff.png b/icons/ff.png deleted file mode 100644 index 965d06b4e..000000000 Binary files a/icons/ff.png and /dev/null differ diff --git a/icons/folder.png b/icons/folder.png deleted file mode 100644 index a6dcda3a0..000000000 Binary files a/icons/folder.png and /dev/null differ diff --git a/icons/hand-disabled.png b/icons/hand-disabled.png deleted file mode 100644 index 0e115c99c..000000000 Binary files a/icons/hand-disabled.png and /dev/null differ diff --git a/icons/hand.png b/icons/hand.png deleted file mode 100644 index 42134e130..000000000 Binary files a/icons/hand.png and /dev/null differ diff --git a/icons/icons.qrc b/icons/icons.qrc index 157879efd..b4ccfa3b2 100644 --- a/icons/icons.qrc +++ b/icons/icons.qrc @@ -1,75 +1,49 @@ - play.png - ff.png - next.png - pause.png - prev.png - rew.png - arrow.png - beam.png - razor.png - audiosource.png - videosource.png - imagesource.png - ripple.png - rolling.png - slip.png - ff-disabled.png - next-disabled.png - pause-disabled.png - play-disabled.png - prev-disabled.png - rew-disabled.png - arrow-disabled.png - beam-disabled.png - razor-disabled.png - ripple-disabled.png - rolling-disabled.png - slip-disabled.png - slide.png - slide-disabled.png throbber.png - magnet.png - magnet-disabled.png - zoomin.png - zoomin-disabled.png - zoomout.png - zoomout-disabled.png - add-transition.png - add-effect.png olive-splash.png - add-button.png - add-button-disabled.png - clock.png - sequence.png - folder.png - record.png - record-disabled.png - transition-tool.png - transition-tool-disabled.png - error.png - dirup.png - dirup-disabled.png - diamond.png - tri-down.png - tri-left.png - tri-right.png - tri-up.png - hand.png - hand-disabled.png - treeview.png - treeview-disabled.png - iconview.png - iconview-disabled.png - open.png - open-disabled.png - save.png - save-disabled.png - undo.png - undo-disabled.png - redo.png - redo-disabled.png olive64.png + add-button.svg + add-effect.svg + add-transition.svg + arrow.svg + audiosource.svg + beam.svg + clock.svg + diamond.svg + dirup.svg + error.svg + ff.svg + folder.svg + hand.svg + iconview.svg + imagesource.svg + magnet.svg + new.svg + next.svg + open.svg + pause.svg + play.svg + prev.svg + razor.svg + record.svg + redo.svg + rew.svg + ripple.svg + rolling.svg + save.svg + sequence.svg + slide.svg + slip.svg + transition-tool.svg + treeview.svg + tri-down.svg + tri-left.svg + tri-right.svg + tri-up.svg + undo.svg + videosource.svg + zoomin.svg + zoomout.svg diff --git a/icons/iconview-disabled.png b/icons/iconview-disabled.png deleted file mode 100644 index 8752a2f72..000000000 Binary files a/icons/iconview-disabled.png and /dev/null differ diff --git a/icons/iconview.png b/icons/iconview.png deleted file mode 100644 index 9a81cf3eb..000000000 Binary files a/icons/iconview.png and /dev/null differ diff --git a/icons/imagesource.png b/icons/imagesource.png deleted file mode 100644 index 794e91b69..000000000 Binary files a/icons/imagesource.png and /dev/null differ diff --git a/icons/magnet-disabled.png b/icons/magnet-disabled.png deleted file mode 100644 index 0a2b0522e..000000000 Binary files a/icons/magnet-disabled.png and /dev/null differ diff --git a/icons/magnet.png b/icons/magnet.png deleted file mode 100644 index d4760acea..000000000 Binary files a/icons/magnet.png and /dev/null differ diff --git a/icons/new-disabled.png b/icons/new-disabled.png deleted file mode 100644 index 1f2a976a3..000000000 Binary files a/icons/new-disabled.png and /dev/null differ diff --git a/icons/new.png b/icons/new.png deleted file mode 100644 index ddb69f86f..000000000 Binary files a/icons/new.png and /dev/null differ diff --git a/icons/next-disabled.png b/icons/next-disabled.png deleted file mode 100644 index 1e4ad364d..000000000 Binary files a/icons/next-disabled.png and /dev/null differ diff --git a/icons/next.png b/icons/next.png deleted file mode 100644 index 160542719..000000000 Binary files a/icons/next.png and /dev/null differ diff --git a/icons/open-disabled.png b/icons/open-disabled.png deleted file mode 100644 index 0319c825e..000000000 Binary files a/icons/open-disabled.png and /dev/null differ diff --git a/icons/open.png b/icons/open.png deleted file mode 100644 index e68a7ad8b..000000000 Binary files a/icons/open.png and /dev/null differ diff --git a/icons/pause-disabled.png b/icons/pause-disabled.png deleted file mode 100644 index 1f2b0e3c0..000000000 Binary files a/icons/pause-disabled.png and /dev/null differ diff --git a/icons/pause.png b/icons/pause.png deleted file mode 100644 index b055c92e9..000000000 Binary files a/icons/pause.png and /dev/null differ diff --git a/icons/play-disabled.png b/icons/play-disabled.png deleted file mode 100644 index 04204e3eb..000000000 Binary files a/icons/play-disabled.png and /dev/null differ diff --git a/icons/play.png b/icons/play.png deleted file mode 100644 index cd069a796..000000000 Binary files a/icons/play.png and /dev/null differ diff --git a/icons/prev-disabled.png b/icons/prev-disabled.png deleted file mode 100644 index 179e4e830..000000000 Binary files a/icons/prev-disabled.png and /dev/null differ diff --git a/icons/prev.png b/icons/prev.png deleted file mode 100644 index c56efc0cf..000000000 Binary files a/icons/prev.png and /dev/null differ diff --git a/icons/razor-disabled.png b/icons/razor-disabled.png deleted file mode 100644 index 9ac9298a3..000000000 Binary files a/icons/razor-disabled.png and /dev/null differ diff --git a/icons/razor.png b/icons/razor.png deleted file mode 100644 index 7234af9e1..000000000 Binary files a/icons/razor.png and /dev/null differ diff --git a/icons/record-disabled.png b/icons/record-disabled.png deleted file mode 100644 index fb76cd5cb..000000000 Binary files a/icons/record-disabled.png and /dev/null differ diff --git a/icons/record.png b/icons/record.png deleted file mode 100644 index 4ea654c0d..000000000 Binary files a/icons/record.png and /dev/null differ diff --git a/icons/redo-disabled.png b/icons/redo-disabled.png deleted file mode 100644 index 4c33a0991..000000000 Binary files a/icons/redo-disabled.png and /dev/null differ diff --git a/icons/redo.png b/icons/redo.png deleted file mode 100644 index 5ca9146d2..000000000 Binary files a/icons/redo.png and /dev/null differ diff --git a/icons/rew-disabled.png b/icons/rew-disabled.png deleted file mode 100644 index 0b07237e1..000000000 Binary files a/icons/rew-disabled.png and /dev/null differ diff --git a/icons/rew.png b/icons/rew.png deleted file mode 100644 index e8c065175..000000000 Binary files a/icons/rew.png and /dev/null differ diff --git a/icons/ripple-disabled.png b/icons/ripple-disabled.png deleted file mode 100644 index 61a74950a..000000000 Binary files a/icons/ripple-disabled.png and /dev/null differ diff --git a/icons/ripple.png b/icons/ripple.png deleted file mode 100644 index f41c08c58..000000000 Binary files a/icons/ripple.png and /dev/null differ diff --git a/icons/rolling-disabled.png b/icons/rolling-disabled.png deleted file mode 100644 index e720a2710..000000000 Binary files a/icons/rolling-disabled.png and /dev/null differ diff --git a/icons/rolling.png b/icons/rolling.png deleted file mode 100644 index ffc6f5109..000000000 Binary files a/icons/rolling.png and /dev/null differ diff --git a/icons/save-disabled.png b/icons/save-disabled.png deleted file mode 100644 index 03983fb54..000000000 Binary files a/icons/save-disabled.png and /dev/null differ diff --git a/icons/save.png b/icons/save.png deleted file mode 100644 index ab4b3f22a..000000000 Binary files a/icons/save.png and /dev/null differ diff --git a/icons/sequence.png b/icons/sequence.png deleted file mode 100644 index 6585a6762..000000000 Binary files a/icons/sequence.png and /dev/null differ diff --git a/icons/slide-disabled.png b/icons/slide-disabled.png deleted file mode 100644 index fd832fcb5..000000000 Binary files a/icons/slide-disabled.png and /dev/null differ diff --git a/icons/slide.png b/icons/slide.png deleted file mode 100644 index 2c5425ae7..000000000 Binary files a/icons/slide.png and /dev/null differ diff --git a/icons/slip-disabled.png b/icons/slip-disabled.png deleted file mode 100644 index d7d0169aa..000000000 Binary files a/icons/slip-disabled.png and /dev/null differ diff --git a/icons/slip.png b/icons/slip.png deleted file mode 100644 index 044de026a..000000000 Binary files a/icons/slip.png and /dev/null differ diff --git a/icons/transition-tool-disabled.png b/icons/transition-tool-disabled.png deleted file mode 100644 index a6e188b79..000000000 Binary files a/icons/transition-tool-disabled.png and /dev/null differ diff --git a/icons/transition-tool.png b/icons/transition-tool.png deleted file mode 100644 index 81b6efe82..000000000 Binary files a/icons/transition-tool.png and /dev/null differ diff --git a/icons/treeview-disabled.png b/icons/treeview-disabled.png deleted file mode 100644 index be95cb9f0..000000000 Binary files a/icons/treeview-disabled.png and /dev/null differ diff --git a/icons/treeview.png b/icons/treeview.png deleted file mode 100644 index 24e16bd2c..000000000 Binary files a/icons/treeview.png and /dev/null differ diff --git a/icons/tri-down.png b/icons/tri-down.png deleted file mode 100644 index d088299a6..000000000 Binary files a/icons/tri-down.png and /dev/null differ diff --git a/icons/tri-left.png b/icons/tri-left.png deleted file mode 100644 index 59a484229..000000000 Binary files a/icons/tri-left.png and /dev/null differ diff --git a/icons/tri-right.png b/icons/tri-right.png deleted file mode 100644 index 789a7cca3..000000000 Binary files a/icons/tri-right.png and /dev/null differ diff --git a/icons/tri-up.png b/icons/tri-up.png deleted file mode 100644 index 06de48079..000000000 Binary files a/icons/tri-up.png and /dev/null differ diff --git a/icons/undo-disabled.png b/icons/undo-disabled.png deleted file mode 100644 index 8667795e2..000000000 Binary files a/icons/undo-disabled.png and /dev/null differ diff --git a/icons/undo.png b/icons/undo.png deleted file mode 100644 index e043e73c7..000000000 Binary files a/icons/undo.png and /dev/null differ diff --git a/icons/videosource.png b/icons/videosource.png deleted file mode 100644 index d96e9eee2..000000000 Binary files a/icons/videosource.png and /dev/null differ diff --git a/icons/zoomin-disabled.png b/icons/zoomin-disabled.png deleted file mode 100644 index 203c82938..000000000 Binary files a/icons/zoomin-disabled.png and /dev/null differ diff --git a/icons/zoomin.png b/icons/zoomin.png deleted file mode 100644 index f0a5f979c..000000000 Binary files a/icons/zoomin.png and /dev/null differ diff --git a/icons/zoomout-disabled.png b/icons/zoomout-disabled.png deleted file mode 100644 index fc2aebb70..000000000 Binary files a/icons/zoomout-disabled.png and /dev/null differ diff --git a/icons/zoomout.png b/icons/zoomout.png deleted file mode 100644 index ba1f1b3e6..000000000 Binary files a/icons/zoomout.png and /dev/null differ diff --git a/oliveglobal.cpp b/oliveglobal.cpp index f9f8d49c7..fb4f0a8e3 100644 --- a/oliveglobal.cpp +++ b/oliveglobal.cpp @@ -297,6 +297,27 @@ void OliveGlobal::open_project_worker(const QString& fn, bool autorecovery) { olive::UndoStack.clear(); } +QIcon OliveGlobal::CreateIconFromSVG(const QString &path) +{ + QIcon icon; + + QPixmap normal(path); + icon.addPixmap(normal, QIcon::Normal, QIcon::On); + + QPixmap disabled(normal.size()); + disabled.fill(Qt::transparent); + + // draw semi-transparent version of icon for the disabled variant + QPainter p(&disabled); + p.setOpacity(0.5); + p.drawPixmap(0, 0, normal); + p.end(); + + icon.addPixmap(disabled, QIcon::Disabled, QIcon::On); + + return icon; +} + void OliveGlobal::undo() { // workaround to prevent crash (and also users should never need to do this) if (!panel_timeline->importing) { diff --git a/oliveglobal.h b/oliveglobal.h index 1acc9e678..2d83fc08d 100644 --- a/oliveglobal.h +++ b/oliveglobal.h @@ -115,6 +115,15 @@ public: */ void load_translation_from_config(); + /** + * @brief Converts an SVG into a QIcon with a semi-transparent for the QIcon::Disabled property + * + * @param path + * + * Path to SVG file + */ + static QIcon CreateIconFromSVG(const QString& path); + public slots: /** * @brief Undo user's last action @@ -315,7 +324,6 @@ private: */ std::unique_ptr translator; - private slots: }; diff --git a/panels/effectcontrols.cpp b/panels/effectcontrols.cpp index 0928f1670..eb948afea 100644 --- a/panels/effectcontrols.cpp +++ b/panels/effectcontrols.cpp @@ -360,8 +360,11 @@ void EffectControls::setup_ui() { veHeaderLayout->setSpacing(0); veHeaderLayout->setMargin(0); + QIcon add_effect_icon(":/icons/add-effect.svg"); + QIcon add_transition_icon(":/icons/add-transition.svg"); + btnAddVideoEffect = new QPushButton(); - btnAddVideoEffect->setIcon(QIcon(":/icons/add-effect.png")); + btnAddVideoEffect->setIcon(add_effect_icon); veHeaderLayout->addWidget(btnAddVideoEffect); connect(btnAddVideoEffect, SIGNAL(clicked(bool)), this, SLOT(video_effect_click())); @@ -377,7 +380,7 @@ void EffectControls::setup_ui() { veHeaderLayout->addStretch(); btnAddVideoTransition = new QPushButton(); - btnAddVideoTransition->setIcon(QIcon(":/icons/add-transition.png")); + btnAddVideoTransition->setIcon(add_transition_icon); connect(btnAddVideoTransition, SIGNAL(clicked(bool)), this, SLOT(video_transition_click())); veHeaderLayout->addWidget(btnAddVideoTransition); @@ -405,7 +408,7 @@ void EffectControls::setup_ui() { aeHeaderLayout->setMargin(0); btnAddAudioEffect = new QPushButton(); - btnAddAudioEffect->setIcon(QIcon(":/icons/add-effect.png")); + btnAddAudioEffect->setIcon(add_effect_icon); connect(btnAddAudioEffect, SIGNAL(clicked(bool)), this, SLOT(audio_effect_click())); aeHeaderLayout->addWidget(btnAddAudioEffect); @@ -419,7 +422,7 @@ void EffectControls::setup_ui() { aeHeaderLayout->addStretch(); btnAddAudioTransition = new QPushButton(); - btnAddAudioTransition->setIcon(QIcon(":/icons/add-transition.png")); + btnAddAudioTransition->setIcon(add_transition_icon); connect(btnAddAudioTransition, SIGNAL(clicked(bool)), this, SLOT(audio_transition_click())); aeHeaderLayout->addWidget(btnAddAudioTransition); diff --git a/panels/grapheditor.cpp b/panels/grapheditor.cpp index 61ce66f5c..bd0494389 100644 --- a/panels/grapheditor.cpp +++ b/panels/grapheditor.cpp @@ -179,7 +179,7 @@ void GraphEditor::set_row(EffectRow *r) { QPushButton* slider_button = new QPushButton(); slider_button->setCheckable(true); slider_button->setChecked(field->is_enabled()); - slider_button->setIcon(QIcon(":/icons/record.png")); + slider_button->setIcon(QIcon(":/icons/record.svg")); 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/panels/project.cpp b/panels/project.cpp index dbfd76d6c..ebbe01e0a 100644 --- a/panels/project.cpp +++ b/panels/project.cpp @@ -102,46 +102,31 @@ Project::Project(QWidget *parent) : toolbar->setSpacing(0); QPushButton* toolbar_new = new QPushButton(); - QIcon icon1; - icon1.addFile(QStringLiteral(":/icons/add-button.png"), QSize(), QIcon::Normal, QIcon::On); - icon1.addFile(QStringLiteral(":/icons/add-button-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_new->setIcon(icon1); + toolbar_new->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/add-button.svg"))); toolbar_new->setToolTip("New"); connect(toolbar_new, SIGNAL(clicked(bool)), this, SLOT(make_new_menu())); toolbar->addWidget(toolbar_new); QPushButton* toolbar_open = new QPushButton(); - QIcon icon2; - icon2.addFile(QStringLiteral(":/icons/open.png"), QSize(), QIcon::Normal, QIcon::On); - icon2.addFile(QStringLiteral(":/icons/open-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_open->setIcon(icon2); + toolbar_open->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/open.svg"))); toolbar_open->setToolTip("Open Project"); connect(toolbar_open, SIGNAL(clicked(bool)), olive::Global.get(), SLOT(open_project())); toolbar->addWidget(toolbar_open); QPushButton* toolbar_save = new QPushButton(); - QIcon icon3; - icon3.addFile(QStringLiteral(":/icons/save.png"), QSize(), QIcon::Normal, QIcon::On); - icon3.addFile(QStringLiteral(":/icons/save-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_save->setIcon(icon3); + toolbar_save->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/save.svg"))); toolbar_save->setToolTip("Save Project"); connect(toolbar_save, SIGNAL(clicked(bool)), olive::Global.get(), SLOT(save_project())); toolbar->addWidget(toolbar_save); QPushButton* toolbar_undo = new QPushButton(); - QIcon icon4; - icon4.addFile(QStringLiteral(":/icons/undo.png"), QSize(), QIcon::Normal, QIcon::On); - icon4.addFile(QStringLiteral(":/icons/undo-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_undo->setIcon(icon4); + toolbar_undo->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/undo.svg"))); toolbar_undo->setToolTip("Undo"); connect(toolbar_undo, SIGNAL(clicked(bool)), olive::Global.get(), SLOT(undo())); toolbar->addWidget(toolbar_undo); QPushButton* toolbar_redo = new QPushButton(); - QIcon icon5; - icon5.addFile(QStringLiteral(":/icons/redo.png"), QSize(), QIcon::Normal, QIcon::On); - icon5.addFile(QStringLiteral(":/icons/redo-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_redo->setIcon(icon5); + toolbar_redo->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/redo.svg"))); toolbar_redo->setToolTip("Redo"); connect(toolbar_redo, SIGNAL(clicked(bool)), olive::Global.get(), SLOT(redo())); toolbar->addWidget(toolbar_redo); @@ -152,19 +137,13 @@ Project::Project(QWidget *parent) : toolbar->addWidget(toolbar_search); QPushButton* toolbar_tree_view = new QPushButton(); - QIcon icon6; - icon6.addFile(QStringLiteral(":/icons/treeview.png"), QSize(), QIcon::Normal, QIcon::On); - icon6.addFile(QStringLiteral(":/icons/treeview-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_tree_view->setIcon(icon6); + toolbar_tree_view->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/treeview.svg"))); toolbar_tree_view->setToolTip("Tree View"); connect(toolbar_tree_view, SIGNAL(clicked(bool)), this, SLOT(set_tree_view())); toolbar->addWidget(toolbar_tree_view); QPushButton* toolbar_icon_view = new QPushButton(); - QIcon icon7; - icon7.addFile(QStringLiteral(":/icons/iconview.png"), QSize(), QIcon::Normal, QIcon::On); - icon7.addFile(QStringLiteral(":/icons/iconview-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolbar_icon_view->setIcon(icon7); + toolbar_icon_view->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/iconview.svg"))); toolbar_icon_view->setToolTip("Icon View"); connect(toolbar_icon_view, SIGNAL(clicked(bool)), this, SLOT(set_icon_view())); toolbar->addWidget(toolbar_icon_view); @@ -194,12 +173,8 @@ Project::Project(QWidget *parent) : icon_view_controls->setMargin(0); icon_view_controls->setSpacing(0); - QIcon directory_up_button; - directory_up_button.addFile(":/icons/dirup.png", QSize(), QIcon::Normal); - directory_up_button.addFile(":/icons/dirup-disabled.png", QSize(), QIcon::Disabled); - directory_up = new QPushButton(); - directory_up->setIcon(directory_up_button); + directory_up->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/dirup.svg"))); directory_up->setEnabled(false); icon_view_controls->addWidget(directory_up); diff --git a/panels/timeline.cpp b/panels/timeline.cpp index 786029887..3ee07a16e 100644 --- a/panels/timeline.cpp +++ b/panels/timeline.cpp @@ -1871,123 +1871,84 @@ void Timeline::setup_ui() { tool_buttons_layout->setMargin(0); toolArrowButton = new QPushButton(); - QIcon arrow_icon; - arrow_icon.addFile(QStringLiteral(":/icons/arrow.png"), QSize(), QIcon::Normal, QIcon::Off); - arrow_icon.addFile(QStringLiteral(":/icons/arrow-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - toolArrowButton->setIcon(arrow_icon); + toolArrowButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/arrow.svg"))); toolArrowButton->setCheckable(true); toolArrowButton->setProperty("tool", TIMELINE_TOOL_POINTER); connect(toolArrowButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolArrowButton); toolEditButton = new QPushButton(); - QIcon icon1; - icon1.addFile(QStringLiteral(":/icons/beam.png"), QSize(), QIcon::Normal, QIcon::Off); - icon1.addFile(QStringLiteral(":/icons/beam-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - toolEditButton->setIcon(icon1); + toolEditButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/beam.svg"))); toolEditButton->setCheckable(true); toolEditButton->setProperty("tool", TIMELINE_TOOL_EDIT); connect(toolEditButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolEditButton); toolRippleButton = new QPushButton(); - QIcon icon2; - icon2.addFile(QStringLiteral(":/icons/ripple.png"), QSize(), QIcon::Normal, QIcon::Off); - icon2.addFile(QStringLiteral(":/icons/ripple-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - toolRippleButton->setIcon(icon2); + toolRippleButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/ripple.svg"))); toolRippleButton->setCheckable(true); toolRippleButton->setProperty("tool", TIMELINE_TOOL_RIPPLE); connect(toolRippleButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolRippleButton); toolRazorButton = new QPushButton(); - QIcon icon4; - icon4.addFile(QStringLiteral(":/icons/razor.png"), QSize(), QIcon::Normal, QIcon::Off); - icon4.addFile(QStringLiteral(":/icons/razor-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - toolRazorButton->setIcon(icon4); + toolRazorButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/razor.svg"))); toolRazorButton->setCheckable(true); toolRazorButton->setProperty("tool", TIMELINE_TOOL_RAZOR); connect(toolRazorButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolRazorButton); toolSlipButton = new QPushButton(); - QIcon icon5; - icon5.addFile(QStringLiteral(":/icons/slip.png"), QSize(), QIcon::Normal, QIcon::On); - icon5.addFile(QStringLiteral(":/icons/slip-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolSlipButton->setIcon(icon5); + toolSlipButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/slip.svg"))); toolSlipButton->setCheckable(true); toolSlipButton->setProperty("tool", TIMELINE_TOOL_SLIP); connect(toolSlipButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolSlipButton); toolSlideButton = new QPushButton(); - QIcon icon6; - icon6.addFile(QStringLiteral(":/icons/slide.png"), QSize(), QIcon::Normal, QIcon::On); - icon6.addFile(QStringLiteral(":/icons/slide-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolSlideButton->setIcon(icon6); + toolSlideButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/slide.svg"))); toolSlideButton->setCheckable(true); toolSlideButton->setProperty("tool", TIMELINE_TOOL_SLIDE); connect(toolSlideButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolSlideButton); toolHandButton = new QPushButton(); - QIcon icon7; - icon7.addFile(QStringLiteral(":/icons/hand.png"), QSize(), QIcon::Normal, QIcon::On); - icon7.addFile(QStringLiteral(":/icons/hand-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolHandButton->setIcon(icon7); + toolHandButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/hand.svg"))); toolHandButton->setCheckable(true); toolHandButton->setProperty("tool", TIMELINE_TOOL_HAND); connect(toolHandButton, SIGNAL(clicked(bool)), this, SLOT(set_tool())); tool_buttons_layout->addWidget(toolHandButton); toolTransitionButton = new QPushButton(); - QIcon icon8; - icon8.addFile(QStringLiteral(":/icons/transition-tool.png"), QSize(), QIcon::Normal, QIcon::On); - icon8.addFile(QStringLiteral(":/icons/transition-tool-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - toolTransitionButton->setIcon(icon8); + toolTransitionButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/transition-tool.svg"))); toolTransitionButton->setCheckable(true); connect(toolTransitionButton, SIGNAL(clicked(bool)), this, SLOT(transition_tool_click())); tool_buttons_layout->addWidget(toolTransitionButton); snappingButton = new QPushButton(); - QIcon icon9; - icon9.addFile(QStringLiteral(":/icons/magnet.png"), QSize(), QIcon::Normal, QIcon::On); - icon9.addFile(QStringLiteral(":/icons/magnet-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - snappingButton->setIcon(icon9); + snappingButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/magnet.svg"))); snappingButton->setCheckable(true); snappingButton->setChecked(true); connect(snappingButton, SIGNAL(toggled(bool)), this, SLOT(snapping_clicked(bool))); tool_buttons_layout->addWidget(snappingButton); zoomInButton = new QPushButton(); - QIcon icon10; - icon10.addFile(QStringLiteral(":/icons/zoomin.png"), QSize(), QIcon::Normal, QIcon::On); - icon10.addFile(QStringLiteral(":/icons/zoomin-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - zoomInButton->setIcon(icon10); + zoomInButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/zoomin.svg"))); connect(zoomInButton, SIGNAL(clicked(bool)), this, SLOT(zoom_in())); tool_buttons_layout->addWidget(zoomInButton); zoomOutButton = new QPushButton(); - QIcon icon11; - icon11.addFile(QStringLiteral(":/icons/zoomout.png"), QSize(), QIcon::Normal, QIcon::On); - icon11.addFile(QStringLiteral(":/icons/zoomout-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - zoomOutButton->setIcon(icon11); + zoomOutButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/zoomout.svg"))); connect(zoomOutButton, SIGNAL(clicked(bool)), this, SLOT(zoom_out())); tool_buttons_layout->addWidget(zoomOutButton); recordButton = new QPushButton(); - QIcon icon12; - icon12.addFile(QStringLiteral(":/icons/record.png"), QSize(), QIcon::Normal, QIcon::On); - icon12.addFile(QStringLiteral(":/icons/record-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - recordButton->setIcon(icon12); + recordButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/record.svg"))); connect(recordButton, SIGNAL(clicked(bool)), this, SLOT(record_btn_click())); tool_buttons_layout->addWidget(recordButton); addButton = new QPushButton(); - QIcon icon13; - icon13.addFile(QStringLiteral(":/icons/add-button.png"), QSize(), QIcon::Normal, QIcon::On); - icon13.addFile(QStringLiteral(":/icons/add-button-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - addButton->setIcon(icon13); + addButton->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/add-button.svg"))); connect(addButton, SIGNAL(clicked()), this, SLOT(add_btn_click())); tool_buttons_layout->addWidget(addButton); diff --git a/panels/viewer.cpp b/panels/viewer.cpp index 7d2129095..a188221db 100644 --- a/panels/viewer.cpp +++ b/panels/viewer.cpp @@ -37,6 +37,7 @@ #include "ui/labelslider.h" #include "ui/timelineheader.h" #include "ui/resizablescrollbar.h" +#include "oliveglobal.h" #include "debug.h" #define FRAMES_IN_ONE_MINUTE 1798 // 1800 - 2 @@ -668,41 +669,30 @@ void Viewer::setup_ui() { playback_control_layout->setMargin(0); go_to_start_button = new QPushButton(); - QIcon goToStartIcon; - goToStartIcon.addFile(QStringLiteral(":/icons/prev.png"), QSize(), QIcon::Normal, QIcon::Off); - goToStartIcon.addFile(QStringLiteral(":/icons/prev-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - go_to_start_button->setIcon(goToStartIcon); + go_to_start_button->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/prev.svg"))); connect(go_to_start_button, SIGNAL(clicked(bool)), this, SLOT(go_to_in())); playback_control_layout->addWidget(go_to_start_button); prev_frame_button = new QPushButton(); - QIcon rewindIcon; - rewindIcon.addFile(QStringLiteral(":/icons/rew.png"), QSize(), QIcon::Normal, QIcon::Off); - rewindIcon.addFile(QStringLiteral(":/icons/rew-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - prev_frame_button->setIcon(rewindIcon); + prev_frame_button->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/rew.svg"))); connect(prev_frame_button, SIGNAL(clicked(bool)), this, SLOT(previous_frame())); playback_control_layout->addWidget(prev_frame_button); + play_icon_ = OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/play.svg")); + pause_icon_ = QPixmap(":/icons/pause.svg"); + play_button = new QPushButton(); - playIcon.addFile(QStringLiteral(":/icons/play.png"), QSize(), QIcon::Normal, QIcon::On); - playIcon.addFile(QStringLiteral(":/icons/play-disabled.png"), QSize(), QIcon::Disabled, QIcon::On); - play_button->setIcon(playIcon); + play_button->setIcon(play_icon_); connect(play_button, SIGNAL(clicked(bool)), this, SLOT(toggle_play())); playback_control_layout->addWidget(play_button); next_frame_button = new QPushButton(); - QIcon ffIcon; - ffIcon.addFile(QStringLiteral(":/icons/ff.png"), QSize(), QIcon::Normal, QIcon::On); - ffIcon.addFile(QStringLiteral(":/icons/ff-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - next_frame_button->setIcon(ffIcon); + next_frame_button->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/ff.svg"))); connect(next_frame_button, SIGNAL(clicked(bool)), this, SLOT(next_frame())); playback_control_layout->addWidget(next_frame_button); go_to_end_frame = new QPushButton(); - QIcon nextIcon; - nextIcon.addFile(QStringLiteral(":/icons/next.png"), QSize(), QIcon::Normal, QIcon::Off); - nextIcon.addFile(QStringLiteral(":/icons/next-disabled.png"), QSize(), QIcon::Disabled, QIcon::Off); - go_to_end_frame->setIcon(nextIcon); + go_to_end_frame->setIcon(OliveGlobal::CreateIconFromSVG(QStringLiteral(":/icons/next.svg"))); connect(go_to_end_frame, SIGNAL(clicked(bool)), this, SLOT(go_to_out())); playback_control_layout->addWidget(go_to_end_frame); @@ -917,5 +907,5 @@ void Viewer::set_sequence(bool main, SequencePtr s) { } void Viewer::set_playpause_icon(bool play) { - play_button->setIcon(play ? playIcon : QIcon(":/icons/pause.png")); + play_button->setIcon(play ? play_icon_ : pause_icon_); } diff --git a/panels/viewer.h b/panels/viewer.h index 870df7f4d..d46a732e0 100644 --- a/panels/viewer.h +++ b/panels/viewer.h @@ -142,7 +142,8 @@ private: long get_seq_in(); long get_seq_out(); - QIcon playIcon; + QIcon play_icon_; + QIcon pause_icon_; void setup_ui(); diff --git a/project/media.cpp b/project/media.cpp index 6595f858f..fd6c265c2 100644 --- a/project/media.cpp +++ b/project/media.cpp @@ -86,7 +86,7 @@ void Media::set_footage(FootagePtr f) { } void Media::set_sequence(SequencePtr s) { - set_icon(QIcon(":/icons/sequence.png")); + set_icon(QIcon(":/icons/sequence.svg")); type = MEDIA_TYPE_SEQUENCE; object = VoidPtr(s); if (s != nullptr) update_tooltip(); @@ -94,7 +94,7 @@ void Media::set_sequence(SequencePtr s) { void Media::set_folder() { if (folder_name.isEmpty()) folder_name = QCoreApplication::translate("Media", "New Folder"); - set_icon(QIcon(":/icons/folder.png")); + set_icon(QIcon(":/icons/folder.svg")); type = MEDIA_TYPE_FOLDER; object = nullptr; } diff --git a/ui/collapsiblewidget.cpp b/ui/collapsiblewidget.cpp index fffd815b4..a2c4eda08 100644 --- a/ui/collapsiblewidget.cpp +++ b/ui/collapsiblewidget.cpp @@ -59,6 +59,9 @@ CollapsibleWidget::CollapsibleWidget(QWidget* parent) : QWidget(parent) { title_bar_layout->addStretch(); layout->addWidget(title_bar); + tri_down_ = QIcon(":/icons/tri-down.svg"); + tri_right_ = QIcon(":/icons/tri-right.svg"); + connect(title_bar, SIGNAL(select(bool, bool)), this, SLOT(header_click(bool, bool))); set_button_icon(true); @@ -89,7 +92,7 @@ bool CollapsibleWidget::is_expanded() { } void CollapsibleWidget::set_button_icon(bool open) { - collapse_button->setIcon(open ? QIcon(":/icons/tri-down.png") : QIcon(":/icons/tri-right.png")); + collapse_button->setIcon(open ? tri_down_ : tri_right_); } void CollapsibleWidget::setContents(QWidget* c) { @@ -135,8 +138,7 @@ void CollapsibleWidgetHeader::mousePressEvent(QMouseEvent* event) { void CollapsibleWidgetHeader::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); QPainter p(this); - p.setPen(Qt::white); - int line_x = width() * 0.01; + p.setPen(Qt::white); int line_y = height() - 1; - p.drawLine(line_x, line_y, width() - line_x - line_x, line_y); + p.drawLine(0, line_y, width(), line_y); } diff --git a/ui/collapsiblewidget.h b/ui/collapsiblewidget.h index 85fcbe824..0962e0b2a 100644 --- a/ui/collapsiblewidget.h +++ b/ui/collapsiblewidget.h @@ -22,58 +22,63 @@ #define COLLAPSIBLEWIDGET_H #include -class QLabel; -class QCheckBox; -class QHBoxLayout; -class QVBoxLayout; -class QPushButton; -class QFrame; -class CheckboxEx; +#include +#include +#include +#include +#include +#include +#include + +#include "ui/checkboxex.h" class CollapsibleWidgetHeader : public QWidget { - Q_OBJECT + Q_OBJECT public: - CollapsibleWidgetHeader(QWidget* parent = 0); - bool selected; + CollapsibleWidgetHeader(QWidget* parent = 0); + bool selected; protected: - void mousePressEvent(QMouseEvent* event); - void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent* event); + void paintEvent(QPaintEvent *event); signals: - void select(bool, bool); + void select(bool, bool); }; class CollapsibleWidget : public QWidget { - Q_OBJECT + Q_OBJECT public: - CollapsibleWidget(QWidget* parent = 0); - void setContents(QWidget* c); - void setText(const QString &); - bool is_focused(); - bool is_expanded(); + CollapsibleWidget(QWidget* parent = 0); + void setContents(QWidget* c); + void setText(const QString &); + bool is_focused(); + bool is_expanded(); - CheckboxEx* enabled_check; - bool selected; - QWidget* contents; - CollapsibleWidgetHeader* title_bar; + CheckboxEx* enabled_check; + bool selected; + QWidget* contents; + CollapsibleWidgetHeader* title_bar; private: - QLabel* header; - QVBoxLayout* layout; - QPushButton* collapse_button; - QFrame* line; - QHBoxLayout* title_bar_layout; - void set_button_icon(bool open); + QLabel* header; + QVBoxLayout* layout; + QPushButton* collapse_button; + QFrame* line; + QHBoxLayout* title_bar_layout; + void set_button_icon(bool open); + + QIcon tri_right_; + QIcon tri_down_; signals: - void deselect_others(QWidget*); - void visibleChanged(); + void deselect_others(QWidget*); + void visibleChanged(); private slots: - void on_enabled_change(bool b); - void on_visible_change(); + void on_enabled_change(bool b); + void on_visible_change(); public slots: - void header_click(bool s, bool deselect); + void header_click(bool s, bool deselect); }; #endif // COLLAPSIBLEWIDGET_H diff --git a/ui/keyframenavigator.cpp b/ui/keyframenavigator.cpp index 91113254e..92a067a9d 100644 --- a/ui/keyframenavigator.cpp +++ b/ui/keyframenavigator.cpp @@ -35,7 +35,7 @@ KeyframeNavigator::KeyframeNavigator(QWidget *parent, bool addLeftPad) : QWidget } left_key_nav = new QPushButton(this); - left_key_nav->setIcon(QIcon(":/icons/tri-left.png")); + left_key_nav->setIcon(QIcon(":/icons/tri-left.svg")); left_key_nav->setIconSize(left_key_nav->iconSize()*0.5); left_key_nav->setVisible(false); key_controls->addWidget(left_key_nav); @@ -43,7 +43,7 @@ KeyframeNavigator::KeyframeNavigator(QWidget *parent, bool addLeftPad) : QWidget connect(left_key_nav, SIGNAL(clicked(bool)), this, SIGNAL(clicked())); key_addremove = new QPushButton(this); - key_addremove->setIcon(QIcon(":/icons/diamond.png")); + key_addremove->setIcon(QIcon(":/icons/diamond.svg")); key_addremove->setIconSize(key_addremove->iconSize()*0.5); key_addremove->setVisible(false); key_controls->addWidget(key_addremove); @@ -51,14 +51,14 @@ KeyframeNavigator::KeyframeNavigator(QWidget *parent, bool addLeftPad) : QWidget connect(key_addremove, SIGNAL(clicked(bool)), this, SIGNAL(clicked())); right_key_nav = new QPushButton(this); - right_key_nav->setIcon(QIcon(":/icons/tri-right.png")); + right_key_nav->setIcon(QIcon(":/icons/tri-right.svg")); right_key_nav->setIconSize(right_key_nav->iconSize()*0.5); right_key_nav->setVisible(false); key_controls->addWidget(right_key_nav); connect(right_key_nav, SIGNAL(clicked(bool)), this, SIGNAL(goto_next_key())); connect(right_key_nav, SIGNAL(clicked(bool)), this, SIGNAL(clicked())); - keyframe_enable = new QPushButton(QIcon(":/icons/clock.png"), "", this); + keyframe_enable = new QPushButton(QIcon(":/icons/clock.svg"), "", this); keyframe_enable->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); keyframe_enable->setIconSize(keyframe_enable->iconSize()*0.75); keyframe_enable->setCheckable(true); diff --git a/ui/mediaiconservice.cpp b/ui/mediaiconservice.cpp index 97e11aa6e..549692124 100644 --- a/ui/mediaiconservice.cpp +++ b/ui/mediaiconservice.cpp @@ -54,13 +54,13 @@ void MediaIconService::SetMediaIcon(Media *media, int icon_type) { switch (icon_type) { case ICON_TYPE_VIDEO: - olive::project_model.set_icon(media, QIcon(":/icons/videosource.png")); + olive::project_model.set_icon(media, QIcon(":/icons/videosource.svg")); break; case ICON_TYPE_AUDIO: - olive::project_model.set_icon(media, QIcon(":/icons/audiosource.png")); + olive::project_model.set_icon(media, QIcon(":/icons/audiosource.svg")); break; case ICON_TYPE_IMAGE: - olive::project_model.set_icon(media, QIcon(":/icons/imagesource.png")); + olive::project_model.set_icon(media, QIcon(":/icons/imagesource.svg")); break; case ICON_TYPE_LOADING: throbber_items_.append(media); @@ -75,7 +75,7 @@ void MediaIconService::SetMediaIcon(Media *media, int icon_type) { } break; case ICON_TYPE_ERROR: - olive::project_model.set_icon(media, QIcon(":/icons/error.png")); + olive::project_model.set_icon(media, QIcon(":/icons/error.svg")); break; }