From e11373a1962b0328b823962c3a2072be9b6fb2d1 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 25 Dec 2023 19:45:37 +0100 Subject: [PATCH 1/2] remove WTrackText class, adjust skin parser to use WLabel or WTrackProperty --- CMakeLists.txt | 1 - res/skins/Deere/style.qss | 1 - res/skins/LateNight/style.qss | 1 - res/skins/Shade/style.qss | 1 - res/skins/Tango/style.qss | 1 - src/skin/legacy/legacyskinparser.cpp | 32 ++++++---------------------- src/widget/wtrackproperty.cpp | 26 +++++++++++++++------- src/widget/wtrackproperty.h | 10 ++++----- 8 files changed, 28 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f98a823a93..7ec15df1752 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1233,7 +1233,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/widget/wtrackproperty.cpp src/widget/wtracktableview.cpp src/widget/wtracktableviewheader.cpp - src/widget/wtracktext.cpp src/widget/wtrackwidgetgroup.cpp src/widget/wwidget.cpp src/widget/wwidgetgroup.cpp diff --git a/res/skins/Deere/style.qss b/res/skins/Deere/style.qss index 293ec874de6..c57558ac396 100644 --- a/res/skins/Deere/style.qss +++ b/res/skins/Deere/style.qss @@ -828,7 +828,6 @@ WNumber, WNumberPos, WPushButton, WKey, WTime, -WTrackText, WTrackProperty, WRecordingDuration, QSpinBox, diff --git a/res/skins/LateNight/style.qss b/res/skins/LateNight/style.qss index a7572edc9d4..1852247564c 100644 --- a/res/skins/LateNight/style.qss +++ b/res/skins/LateNight/style.qss @@ -9,7 +9,6 @@ WNumber, WNumberPos, WPushButton, WKey, WTime, -WTrackText, WTrackProperty, WRecordingDuration, QSpinBox, diff --git a/res/skins/Shade/style.qss b/res/skins/Shade/style.qss index 657f0b1e302..38e8637cce1 100644 --- a/res/skins/Shade/style.qss +++ b/res/skins/Shade/style.qss @@ -24,7 +24,6 @@ WPushButton, #LibraryFeatureControls QRadioButton, WRecordingDuration, WTime, -WTrackText, WTrackProperty, QSpinBox, WBeatSpinBox, diff --git a/res/skins/Tango/style.qss b/res/skins/Tango/style.qss index 648fb73df72..ca597eb9dcf 100644 --- a/res/skins/Tango/style.qss +++ b/res/skins/Tango/style.qss @@ -20,7 +20,6 @@ WNumber, WNumberPos, WPushButton, WKey, WTime, -WTrackText, WTrackProperty, WRecordingDuration, QSpinBox, diff --git a/src/skin/legacy/legacyskinparser.cpp b/src/skin/legacy/legacyskinparser.cpp index bf8a0187688..7176b8cb19c 100644 --- a/src/skin/legacy/legacyskinparser.cpp +++ b/src/skin/legacy/legacyskinparser.cpp @@ -81,7 +81,6 @@ #include "widget/wstatuslight.h" #include "widget/wtime.h" #include "widget/wtrackproperty.h" -#include "widget/wtracktext.h" #include "widget/wtrackwidgetgroup.h" #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include "widget/wvumeter.h" @@ -1062,32 +1061,13 @@ QWidget* LegacySkinParser::parseVisual(const QDomElement& node) { QWidget* LegacySkinParser::parseText(const QDomElement& node) { QString group = lookupNodeGroup(node); - BaseTrackPlayer* pPlayer = m_pPlayerManager->getPlayer(group); - if (!pPlayer) { - SKIN_WARNING(node, *m_pContext, QStringLiteral("No player found for group:").arg(group)); - return nullptr; - } - - WTrackText* pTrackText = new WTrackText(m_pParent, - m_pConfig, - m_pLibrary, - group); - setupLabelWidget(node, pTrackText); - - connect(pPlayer, &BaseTrackPlayer::newTrackLoaded, pTrackText, &WTrackText::slotTrackLoaded); - connect(pPlayer, &BaseTrackPlayer::loadingTrack, pTrackText, &WTrackText::slotLoadingTrack); - connect(pTrackText, - &WTrackText::trackDropped, - m_pPlayerManager, - &PlayerManager::slotLoadLocationToPlayerMaybePlay); - connect(pTrackText, &WTrackText::cloneDeck, m_pPlayerManager, &PlayerManager::slotCloneDeck); - - TrackPointer pTrack = pPlayer->getLoadedTrack(); - if (pTrack) { - pTrackText->slotTrackLoaded(pTrack); + if (group.isEmpty()) { + // use WLabel, try to parse 'Text' node + return parseLabelWidget(node); + } else { + // use WTrackProperty to show a track tag / file name + return parseTrackProperty(node); } - - return pTrackText; } QWidget* LegacySkinParser::parseTrackProperty(const QDomElement& node) { diff --git a/src/widget/wtrackproperty.cpp b/src/widget/wtrackproperty.cpp index 553a518114c..babc4a61c70 100644 --- a/src/widget/wtrackproperty.cpp +++ b/src/widget/wtrackproperty.cpp @@ -45,12 +45,17 @@ WTrackProperty::~WTrackProperty() { void WTrackProperty::setup(const QDomNode& node, const SkinContext& context) { WLabel::setup(node, context); - m_property = context.selectString(node, "Property"); + QString property = context.selectString(node, "Property"); + if (property.isEmpty()) { + return; + } // Check if property with that name exists in Track class - if (Track::staticMetaObject.indexOfProperty(m_property.toUtf8().constData()) == -1) { - qWarning() << "WTrackProperty: Unknown track property:" << m_property; + if (Track::staticMetaObject.indexOfProperty(property.toUtf8().constData()) == -1) { + qWarning() << "WTrackProperty: Unknown track property:" << property; + return; } + m_property = property; } void WTrackProperty::slotTrackLoaded(TrackPointer pTrack) { @@ -82,7 +87,11 @@ void WTrackProperty::slotTrackChanged(TrackId trackId) { void WTrackProperty::updateLabel() { if (m_pCurrentTrack) { - QVariant property = m_pCurrentTrack->property(m_property.toUtf8().constData()); + if (m_property.isEmpty()) { + return; + } + QVariant property = + m_pCurrentTrack->property(m_property.toUtf8().constData()); if (property.isValid() && property.canConvert()) { setText(property.toString()); return; @@ -99,11 +108,12 @@ void WTrackProperty::mouseMoveEvent(QMouseEvent* event) { void WTrackProperty::mouseDoubleClickEvent(QMouseEvent* event) { Q_UNUSED(event); - if (m_pCurrentTrack) { - ensureTrackMenuIsCreated(); - m_pTrackMenu->loadTrack(m_pCurrentTrack, m_group); - m_pTrackMenu->showDlgTrackInfo(m_property); + if (!m_pCurrentTrack) { + return; } + ensureTrackMenuIsCreated(); + m_pTrackMenu->loadTrack(m_pCurrentTrack, m_group); + m_pTrackMenu->showDlgTrackInfo(m_property); } void WTrackProperty::dragEnterEvent(QDragEnterEvent* event) { diff --git a/src/widget/wtrackproperty.h b/src/widget/wtrackproperty.h index 7450a367d0e..da0a1de6e80 100644 --- a/src/widget/wtrackproperty.h +++ b/src/widget/wtrackproperty.h @@ -32,17 +32,12 @@ class WTrackProperty : public WLabel, public TrackDropTarget { protected: void contextMenuEvent(QContextMenuEvent* event) override; - - private slots: - void slotTrackChanged(TrackId); - - private: void dragEnterEvent(QDragEnterEvent* event) override; void dropEvent(QDropEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; void mouseDoubleClickEvent(QMouseEvent* event) override; - void updateLabel(); + virtual void updateLabel(); void ensureTrackMenuIsCreated(); @@ -53,4 +48,7 @@ class WTrackProperty : public WLabel, public TrackDropTarget { QString m_property; parented_ptr m_pTrackMenu; + + private slots: + void slotTrackChanged(TrackId); }; From c4b6161e9c7c8411835694ba6964f698593afdc3 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Fri, 29 Sep 2023 01:08:14 +0200 Subject: [PATCH 2/2] skins: migrate Text -> TrackProperty, remove empty Text nodes --- res/skins/Deere/deck_overview.xml | 2 -- res/skins/Deere/effect_focus_button.xml | 2 -- res/skins/Deere/hide_show_button.xml | 2 -- res/skins/Deere/knob_with_button.xml | 2 -- res/skins/Deere/knob_with_button_left.xml | 2 -- res/skins/Deere/knob_with_button_right.xml | 2 -- res/skins/Deere/preview_deck.xml | 4 ++-- res/skins/LateNight/decks/overview.xml | 2 -- res/skins/LateNight/skin_settings.xml | 1 - res/skins/Shade/deck_overview.xml | 2 -- res/skins/Shade/preview_deck.xml | 4 ++-- res/skins/Shade/sampler.xml | 4 ++-- res/skins/Shade/samplersmall.xml | 4 ++-- res/skins/Tango/decks/overview.xml | 2 -- res/skins/Tango/decks/preview_deck.xml | 4 ++-- 15 files changed, 10 insertions(+), 29 deletions(-) diff --git a/res/skins/Deere/deck_overview.xml b/res/skins/Deere/deck_overview.xml index 53765e5d4f3..57c7de4701a 100644 --- a/res/skins/Deere/deck_overview.xml +++ b/res/skins/Deere/deck_overview.xml @@ -59,7 +59,6 @@ intro_start_position [Skin],show_intro_outro_cues - top|right #0000FF #FFFFFF @@ -93,7 +92,6 @@ outro_end_position [Skin],show_intro_outro_cues - top|left #0000FF #FFFFFF diff --git a/res/skins/Deere/effect_focus_button.xml b/res/skins/Deere/effect_focus_button.xml index 7216a5d5d7f..828c09a5363 100644 --- a/res/skins/Deere/effect_focus_button.xml +++ b/res/skins/Deere/effect_focus_button.xml @@ -21,13 +21,11 @@ Variables: 2 0 - icon/ic_radio_button_off_48px.svg icon/ic_radio_button_off_48px.svg 1 - icon/ic_radio_button_on_48px.svg icon/ic_radio_button_on_48px.svg diff --git a/res/skins/Deere/hide_show_button.xml b/res/skins/Deere/hide_show_button.xml index bc77db3bdb4..eecaef47fc4 100644 --- a/res/skins/Deere/hide_show_button.xml +++ b/res/skins/Deere/hide_show_button.xml @@ -13,13 +13,11 @@ 2 0 - icon/ic_unfold_more_48px.svg icon/ic_unfold_more_48px.svg 1 - icon/ic_unfold_less_48px.svg icon/ic_unfold_less_48px.svg diff --git a/res/skins/Deere/knob_with_button.xml b/res/skins/Deere/knob_with_button.xml index e30f7c14e7a..08ec46bed7d 100644 --- a/res/skins/Deere/knob_with_button.xml +++ b/res/skins/Deere/knob_with_button.xml @@ -22,13 +22,11 @@ 2 0 - icon/ic_radio_button_off_48px.svg icon/ic_radio_button_off_48px.svg 1 - icon/ic_radio_button_on_48px.svg icon/ic_radio_button_on_48px.svg diff --git a/res/skins/Deere/knob_with_button_left.xml b/res/skins/Deere/knob_with_button_left.xml index 656bd563991..afb419efe0f 100644 --- a/res/skins/Deere/knob_with_button_left.xml +++ b/res/skins/Deere/knob_with_button_left.xml @@ -20,13 +20,11 @@ 2 0 - icon/ic_radio_button_off_48px.svg icon/ic_radio_button_off_48px.svg 1 - icon/ic_radio_button_on_48px.svg icon/ic_radio_button_on_48px.svg diff --git a/res/skins/Deere/knob_with_button_right.xml b/res/skins/Deere/knob_with_button_right.xml index 44ecba2cf1d..7c0b0ed3d97 100644 --- a/res/skins/Deere/knob_with_button_right.xml +++ b/res/skins/Deere/knob_with_button_right.xml @@ -22,13 +22,11 @@ 2 0 - icon/ic_radio_button_off_48px.svg icon/ic_radio_button_off_48px.svg 1 - icon/ic_radio_button_on_48px.svg icon/ic_radio_button_on_48px.svg diff --git a/res/skins/Deere/preview_deck.xml b/res/skins/Deere/preview_deck.xml index 44cb5143f7a..c6ac55cdef2 100644 --- a/res/skins/Deere/preview_deck.xml +++ b/res/skins/Deere/preview_deck.xml @@ -29,12 +29,12 @@ PreviewDeckTextRow horizontal - + text me,min right - +