Add widget to seek through songs on an album
This commit is contained in:
@@ -12,6 +12,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
SOURCES += \
|
||||
src/components/albumTile/albumtile.cpp \
|
||||
src/components/spinningAlbumArt/spinningalbumart.cpp \
|
||||
src/components/tracklistWidget/tracklistwidget.cpp \
|
||||
src/main.cpp \
|
||||
src/windows/musicSelector/musicSelector.cpp \
|
||||
src/windows/playerWindow/playerWindow.cpp \
|
||||
@@ -25,6 +26,7 @@ SOURCES += \
|
||||
HEADERS += \
|
||||
src/components/albumTile/albumtile.h \
|
||||
src/components/spinningAlbumArt/spinningalbumart.h \
|
||||
src/components/tracklistWidget/tracklistwidget.h \
|
||||
src/data/cleanerScripts.h \
|
||||
src/windows/musicSelector/musicSelector.h \
|
||||
src/windows/playerWindow/playerWindow.h \
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Generated by qmake (3.1) (Qt 6.9.3)
|
||||
# Project: ../../Music-Player.pro
|
||||
# Template: app
|
||||
# Command: /opt/homebrew/opt/qtbase/bin/qmake -o Makefile ../../Music-Player.pro -spec macx-clang CONFIG+=debug CONFIG+=qml_debug
|
||||
# Command: /opt/homebrew/Cellar/qtbase/6.9.3/bin/qmake -o Makefile ../../Music-Player.pro -spec macx-clang CONFIG+=debug CONFIG+=qml_debug
|
||||
#############################################################################
|
||||
|
||||
MAKEFILE = Makefile
|
||||
@@ -18,7 +18,7 @@ DEFINES = -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB
|
||||
CFLAGS = -pipe -g $(EXPORT_ARCH_ARGS) -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=14.0 -Wall -Wextra $(DEFINES)
|
||||
CXXFLAGS = -pipe -stdlib=libc++ -g -std=gnu++1z $(EXPORT_ARCH_ARGS) -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=14.0 -Wall -Wextra $(DEFINES)
|
||||
INCPATH = -I../../../Qt-Music-Player -I. -I/opt/homebrew/lib/QtWidgets.framework/Headers -I/opt/homebrew/lib/QtMultimedia.framework/Headers -I/opt/homebrew/lib/QtGui.framework/Headers -I/opt/homebrew/lib/QtNetwork.framework/Headers -I/opt/homebrew/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/opt/homebrew/share/qt/mkspecs/macx-clang -F/opt/homebrew/lib
|
||||
QMAKE = /opt/homebrew/opt/qtbase/bin/qmake
|
||||
QMAKE = /opt/homebrew/Cellar/qtbase/6.9.3/bin/qmake
|
||||
DEL_FILE = rm -f
|
||||
CHK_DIR_EXISTS= test -d
|
||||
MKDIR = mkdir -p
|
||||
@@ -28,8 +28,8 @@ COPY_DIR = cp -f -R
|
||||
INSTALL_FILE = install -m 644 -p
|
||||
INSTALL_PROGRAM = install -m 755 -p
|
||||
INSTALL_DIR = cp -f -R
|
||||
QINSTALL = /opt/homebrew/opt/qtbase/bin/qmake -install qinstall
|
||||
QINSTALL_PROGRAM = /opt/homebrew/opt/qtbase/bin/qmake -install qinstall -exe
|
||||
QINSTALL = /opt/homebrew/Cellar/qtbase/6.9.3/bin/qmake -install qinstall
|
||||
QINSTALL_PROGRAM = /opt/homebrew/Cellar/qtbase/6.9.3/bin/qmake -install qinstall -exe
|
||||
DEL_FILE = rm -f
|
||||
SYMLINK = ln -f -s
|
||||
DEL_DIR = rmdir
|
||||
@@ -54,6 +54,7 @@ OBJECTS_DIR = ./
|
||||
|
||||
SOURCES = ../../src/components/albumTile/albumtile.cpp \
|
||||
../../src/components/spinningAlbumArt/spinningalbumart.cpp \
|
||||
../../src/components/tracklistWidget/tracklistwidget.cpp \
|
||||
../../src/main.cpp \
|
||||
../../src/windows/musicSelector/musicSelector.cpp \
|
||||
../../src/windows/playerWindow/playerWindow.cpp \
|
||||
@@ -62,12 +63,14 @@ SOURCES = ../../src/components/albumTile/albumtile.cpp \
|
||||
../../src/layout/flowLayout/flowLayout.cpp qrc_qmake_qmake_qm_files.cpp \
|
||||
moc_albumtile.cpp \
|
||||
moc_spinningalbumart.cpp \
|
||||
moc_tracklistwidget.cpp \
|
||||
moc_musicSelector.cpp \
|
||||
moc_playerWindow.cpp \
|
||||
moc_albumButton.cpp \
|
||||
moc_mediaButton.cpp
|
||||
OBJECTS = albumtile.o \
|
||||
spinningalbumart.o \
|
||||
tracklistwidget.o \
|
||||
main.o \
|
||||
musicSelector.o \
|
||||
playerWindow.o \
|
||||
@@ -77,6 +80,7 @@ OBJECTS = albumtile.o \
|
||||
qrc_qmake_qmake_qm_files.o \
|
||||
moc_albumtile.o \
|
||||
moc_spinningalbumart.o \
|
||||
moc_tracklistwidget.o \
|
||||
moc_musicSelector.o \
|
||||
moc_playerWindow.o \
|
||||
moc_albumButton.o \
|
||||
@@ -455,6 +459,7 @@ DIST = /opt/homebrew/share/qt/mkspecs/features/spec_pre.prf \
|
||||
/opt/homebrew/share/qt/mkspecs/features/lex.prf \
|
||||
../../../../Music-Player.pro ../../src/components/albumTile/albumtile.h \
|
||||
../../src/components/spinningAlbumArt/spinningalbumart.h \
|
||||
../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
../../src/data/cleanerScripts.h \
|
||||
../../src/windows/musicSelector/musicSelector.h \
|
||||
../../src/windows/playerWindow/playerWindow.h \
|
||||
@@ -463,6 +468,7 @@ DIST = /opt/homebrew/share/qt/mkspecs/features/spec_pre.prf \
|
||||
../../src/data/albumInformation.h \
|
||||
../../src/layout/flowLayout/flowLayout.h ../../src/components/albumTile/albumtile.cpp \
|
||||
../../src/components/spinningAlbumArt/spinningalbumart.cpp \
|
||||
../../src/components/tracklistWidget/tracklistwidget.cpp \
|
||||
../../src/main.cpp \
|
||||
../../src/windows/musicSelector/musicSelector.cpp \
|
||||
../../src/windows/playerWindow/playerWindow.cpp \
|
||||
@@ -1278,8 +1284,8 @@ distdir: FORCE
|
||||
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
|
||||
$(COPY_FILE) --parents qmake_qmake_qm_files.qrc $(DISTDIR)/
|
||||
$(COPY_FILE) --parents /opt/homebrew/share/qt/mkspecs/features/data/dummy.cpp $(DISTDIR)/
|
||||
$(COPY_FILE) --parents ../../src/components/albumTile/albumtile.h ../../src/components/spinningAlbumArt/spinningalbumart.h ../../src/data/cleanerScripts.h ../../src/windows/musicSelector/musicSelector.h ../../src/windows/playerWindow/playerWindow.h ../../src/components/albumButton/albumButton.h ../../src/components/mediaButton/mediaButton.h ../../src/data/albumInformation.h ../../src/layout/flowLayout/flowLayout.h $(DISTDIR)/
|
||||
$(COPY_FILE) --parents ../../src/components/albumTile/albumtile.cpp ../../src/components/spinningAlbumArt/spinningalbumart.cpp ../../src/main.cpp ../../src/windows/musicSelector/musicSelector.cpp ../../src/windows/playerWindow/playerWindow.cpp ../../src/components/albumButton/albumButton.cpp ../../src/components/mediaButton/mediaButton.cpp ../../src/layout/flowLayout/flowLayout.cpp $(DISTDIR)/
|
||||
$(COPY_FILE) --parents ../../src/components/albumTile/albumtile.h ../../src/components/spinningAlbumArt/spinningalbumart.h ../../src/components/tracklistWidget/tracklistwidget.h ../../src/data/cleanerScripts.h ../../src/windows/musicSelector/musicSelector.h ../../src/windows/playerWindow/playerWindow.h ../../src/components/albumButton/albumButton.h ../../src/components/mediaButton/mediaButton.h ../../src/data/albumInformation.h ../../src/layout/flowLayout/flowLayout.h $(DISTDIR)/
|
||||
$(COPY_FILE) --parents ../../src/components/albumTile/albumtile.cpp ../../src/components/spinningAlbumArt/spinningalbumart.cpp ../../src/components/tracklistWidget/tracklistwidget.cpp ../../src/main.cpp ../../src/windows/musicSelector/musicSelector.cpp ../../src/windows/playerWindow/playerWindow.cpp ../../src/components/albumButton/albumButton.cpp ../../src/components/mediaButton/mediaButton.cpp ../../src/layout/flowLayout/flowLayout.cpp $(DISTDIR)/
|
||||
$(COPY_FILE) --parents ../../src/windows/musicSelector/musicSelector.ui $(DISTDIR)/
|
||||
|
||||
|
||||
@@ -1322,9 +1328,9 @@ compiler_moc_predefs_clean:
|
||||
moc_predefs.h: /opt/homebrew/share/qt/mkspecs/features/data/dummy.cpp
|
||||
/Library/Developer/CommandLineTools/usr/bin/clang++ -pipe -stdlib=libc++ -g -std=gnu++1z $(EXPORT_ARCH_ARGS) -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=14.0 -Wall -Wextra -dM -E -o moc_predefs.h /opt/homebrew/share/qt/mkspecs/features/data/dummy.cpp
|
||||
|
||||
compiler_moc_header_make_all: moc_albumtile.cpp moc_spinningalbumart.cpp moc_musicSelector.cpp moc_playerWindow.cpp moc_albumButton.cpp moc_mediaButton.cpp
|
||||
compiler_moc_header_make_all: moc_albumtile.cpp moc_spinningalbumart.cpp moc_tracklistwidget.cpp moc_musicSelector.cpp moc_playerWindow.cpp moc_albumButton.cpp moc_mediaButton.cpp
|
||||
compiler_moc_header_clean:
|
||||
-$(DEL_FILE) moc_albumtile.cpp moc_spinningalbumart.cpp moc_musicSelector.cpp moc_playerWindow.cpp moc_albumButton.cpp moc_mediaButton.cpp
|
||||
-$(DEL_FILE) moc_albumtile.cpp moc_spinningalbumart.cpp moc_tracklistwidget.cpp moc_musicSelector.cpp moc_playerWindow.cpp moc_albumButton.cpp moc_mediaButton.cpp
|
||||
moc_albumtile.cpp: ../../src/components/albumTile/albumtile.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qwidget.h \
|
||||
@@ -1356,6 +1362,15 @@ moc_spinningalbumart.cpp: ../../src/components/spinningAlbumArt/spinningalbumart
|
||||
/opt/homebrew/share/qt/libexec/moc
|
||||
/opt/homebrew/share/qt/libexec/moc $(DEFINES) --include /Users/lucas/Developer/Qt-Music-Player/build/Desktop-Debug/moc_predefs.h -I/opt/homebrew/share/qt/mkspecs/macx-clang -I/Users/lucas/Developer/Qt-Music-Player -I/opt/homebrew/lib/QtWidgets.framework/Headers -I/opt/homebrew/lib/QtMultimedia.framework/Headers -I/opt/homebrew/lib/QtGui.framework/Headers -I/opt/homebrew/lib/QtNetwork.framework/Headers -I/opt/homebrew/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1 -I/Library/Developer/CommandLineTools/usr/lib/clang/17/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/usr/include -F/opt/homebrew/lib ../../src/components/spinningAlbumArt/spinningalbumart.h -o moc_spinningalbumart.cpp
|
||||
|
||||
moc_tracklistwidget.cpp: ../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QListWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlistwidget.h \
|
||||
moc_predefs.h \
|
||||
/opt/homebrew/share/qt/libexec/moc
|
||||
/opt/homebrew/share/qt/libexec/moc $(DEFINES) --include /Users/lucas/Developer/Qt-Music-Player/build/Desktop-Debug/moc_predefs.h -I/opt/homebrew/share/qt/mkspecs/macx-clang -I/Users/lucas/Developer/Qt-Music-Player -I/opt/homebrew/lib/QtWidgets.framework/Headers -I/opt/homebrew/lib/QtMultimedia.framework/Headers -I/opt/homebrew/lib/QtGui.framework/Headers -I/opt/homebrew/lib/QtNetwork.framework/Headers -I/opt/homebrew/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1 -I/Library/Developer/CommandLineTools/usr/lib/clang/17/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/usr/include -F/opt/homebrew/lib ../../src/components/tracklistWidget/tracklistwidget.h -o moc_tracklistwidget.cpp
|
||||
|
||||
moc_musicSelector.cpp: ../../src/windows/musicSelector/musicSelector.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qwidget.h \
|
||||
@@ -1389,6 +1404,9 @@ moc_playerWindow.cpp: ../../src/windows/playerWindow/playerWindow.h \
|
||||
../../src/components/spinningalbumart/spinningAlbumArt.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QPixmap \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpixmap.h \
|
||||
../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QListWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlistwidget.h \
|
||||
moc_predefs.h \
|
||||
/opt/homebrew/share/qt/libexec/moc
|
||||
/opt/homebrew/share/qt/libexec/moc $(DEFINES) --include /Users/lucas/Developer/Qt-Music-Player/build/Desktop-Debug/moc_predefs.h -I/opt/homebrew/share/qt/mkspecs/macx-clang -I/Users/lucas/Developer/Qt-Music-Player -I/opt/homebrew/lib/QtWidgets.framework/Headers -I/opt/homebrew/lib/QtMultimedia.framework/Headers -I/opt/homebrew/lib/QtGui.framework/Headers -I/opt/homebrew/lib/QtNetwork.framework/Headers -I/opt/homebrew/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1 -I/Library/Developer/CommandLineTools/usr/lib/clang/17/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/usr/include -F/opt/homebrew/lib ../../src/windows/playerWindow/playerWindow.h -o moc_playerWindow.cpp
|
||||
@@ -1473,6 +1491,17 @@ spinningalbumart.o: ../../src/components/spinningAlbumArt/spinningalbumart.cpp .
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpainterpath.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o spinningalbumart.o ../../src/components/spinningAlbumArt/spinningalbumart.cpp
|
||||
|
||||
tracklistwidget.o: ../../src/components/tracklistWidget/tracklistwidget.cpp ../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QListWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlistwidget.h \
|
||||
/opt/homebrew/lib/QtCore.framework/Headers/QFileInfo \
|
||||
/opt/homebrew/lib/QtCore.framework/Headers/qfileinfo.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QVBoxLayout \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qboxlayout.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o tracklistwidget.o ../../src/components/tracklistWidget/tracklistwidget.cpp
|
||||
|
||||
main.o: ../../src/main.cpp ../../src/windows/musicSelector/musicSelector.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qwidget.h \
|
||||
@@ -1518,6 +1547,9 @@ musicSelector.o: ../../src/windows/musicSelector/musicSelector.cpp ../../src/win
|
||||
../../src/components/spinningalbumart/spinningAlbumArt.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QPixmap \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpixmap.h \
|
||||
../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QListWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlistwidget.h \
|
||||
../../src/layout/flowlayout/flowLayout.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QLayout \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlayout.h \
|
||||
@@ -1552,12 +1584,11 @@ playerWindow.o: ../../src/windows/playerWindow/playerWindow.cpp ../../src/window
|
||||
../../src/components/spinningalbumart/spinningAlbumArt.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QPixmap \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpixmap.h \
|
||||
../../src/components/tracklistWidget/tracklistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QListWidget \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qlistwidget.h \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/QVBoxLayout \
|
||||
/opt/homebrew/lib/QtWidgets.framework/Headers/qboxlayout.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QPainter \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpainter.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QPainterPath \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/qpainterpath.h \
|
||||
/opt/homebrew/lib/QtCore.framework/Headers/QFileInfo \
|
||||
/opt/homebrew/lib/QtCore.framework/Headers/qfileinfo.h \
|
||||
/opt/homebrew/lib/QtGui.framework/Headers/QCloseEvent \
|
||||
@@ -1734,6 +1765,9 @@ moc_albumtile.o: moc_albumtile.cpp
|
||||
moc_spinningalbumart.o: moc_spinningalbumart.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_spinningalbumart.o moc_spinningalbumart.cpp
|
||||
|
||||
moc_tracklistwidget.o: moc_tracklistwidget.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_tracklistwidget.o moc_tracklistwidget.cpp
|
||||
|
||||
moc_musicSelector.o: moc_musicSelector.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_musicSelector.o moc_musicSelector.cpp
|
||||
|
||||
|
||||
Binary file not shown.
@@ -39,14 +39,10 @@ template <> constexpr inline auto PlayerWindow::qt_create_metaobjectdata<qt_meta
|
||||
{
|
||||
namespace QMC = QtMocConstants;
|
||||
QtMocHelpers::StringRefStorage qt_stringData {
|
||||
"PlayerWindow",
|
||||
"playNext",
|
||||
""
|
||||
"PlayerWindow"
|
||||
};
|
||||
|
||||
QtMocHelpers::UintData qt_methods {
|
||||
// Slot 'playNext'
|
||||
QtMocHelpers::SlotData<void()>(1, 2, QMC::AccessPrivate, QMetaType::Void),
|
||||
};
|
||||
QtMocHelpers::UintData qt_properties {
|
||||
};
|
||||
@@ -68,12 +64,9 @@ Q_CONSTINIT const QMetaObject PlayerWindow::staticMetaObject = { {
|
||||
void PlayerWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
auto *_t = static_cast<PlayerWindow *>(_o);
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
switch (_id) {
|
||||
case 0: _t->playNext(); break;
|
||||
default: ;
|
||||
}
|
||||
}
|
||||
(void)_t;
|
||||
(void)_c;
|
||||
(void)_id;
|
||||
(void)_a;
|
||||
}
|
||||
|
||||
@@ -93,18 +86,6 @@ void *PlayerWindow::qt_metacast(const char *_clname)
|
||||
int PlayerWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QWidget::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 1)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 1;
|
||||
}
|
||||
if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 1)
|
||||
*reinterpret_cast<QMetaType *>(_a[0]) = QMetaType();
|
||||
_id -= 1;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
QT_WARNING_POP
|
||||
|
||||
Binary file not shown.
121
build/Desktop-Debug/moc_tracklistwidget.cpp
Normal file
121
build/Desktop-Debug/moc_tracklistwidget.cpp
Normal file
@@ -0,0 +1,121 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'tracklistwidget.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 69 (Qt 6.9.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include "../../src/components/tracklistWidget/tracklistwidget.h"
|
||||
#include <QtCore/qmetatype.h>
|
||||
|
||||
#include <QtCore/qtmochelpers.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
|
||||
#include <QtCore/qxptype_traits.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'tracklistwidget.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 69
|
||||
#error "This file was generated using the moc from 6.9.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
#ifndef Q_CONSTINIT
|
||||
#define Q_CONSTINIT
|
||||
#endif
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
QT_WARNING_DISABLE_GCC("-Wuseless-cast")
|
||||
namespace {
|
||||
struct qt_meta_tag_ZN15TrackListWidgetE_t {};
|
||||
} // unnamed namespace
|
||||
|
||||
template <> constexpr inline auto TrackListWidget::qt_create_metaobjectdata<qt_meta_tag_ZN15TrackListWidgetE_t>()
|
||||
{
|
||||
namespace QMC = QtMocConstants;
|
||||
QtMocHelpers::StringRefStorage qt_stringData {
|
||||
"TrackListWidget",
|
||||
"trackSelected",
|
||||
"",
|
||||
"index"
|
||||
};
|
||||
|
||||
QtMocHelpers::UintData qt_methods {
|
||||
// Signal 'trackSelected'
|
||||
QtMocHelpers::SignalData<void(int)>(1, 2, QMC::AccessPublic, QMetaType::Void, {{
|
||||
{ QMetaType::Int, 3 },
|
||||
}}),
|
||||
};
|
||||
QtMocHelpers::UintData qt_properties {
|
||||
};
|
||||
QtMocHelpers::UintData qt_enums {
|
||||
};
|
||||
return QtMocHelpers::metaObjectData<TrackListWidget, qt_meta_tag_ZN15TrackListWidgetE_t>(QMC::MetaObjectFlag{}, qt_stringData,
|
||||
qt_methods, qt_properties, qt_enums);
|
||||
}
|
||||
Q_CONSTINIT const QMetaObject TrackListWidget::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
|
||||
qt_staticMetaObjectStaticContent<qt_meta_tag_ZN15TrackListWidgetE_t>.stringdata,
|
||||
qt_staticMetaObjectStaticContent<qt_meta_tag_ZN15TrackListWidgetE_t>.data,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
qt_staticMetaObjectRelocatingContent<qt_meta_tag_ZN15TrackListWidgetE_t>.metaTypes,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
void TrackListWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
auto *_t = static_cast<TrackListWidget *>(_o);
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
switch (_id) {
|
||||
case 0: _t->trackSelected((*reinterpret_cast< std::add_pointer_t<int>>(_a[1]))); break;
|
||||
default: ;
|
||||
}
|
||||
}
|
||||
if (_c == QMetaObject::IndexOfMethod) {
|
||||
if (QtMocHelpers::indexOfMethod<void (TrackListWidget::*)(int )>(_a, &TrackListWidget::trackSelected, 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const QMetaObject *TrackListWidget::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *TrackListWidget::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_staticMetaObjectStaticContent<qt_meta_tag_ZN15TrackListWidgetE_t>.strings))
|
||||
return static_cast<void*>(this);
|
||||
return QWidget::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int TrackListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QWidget::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 1)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 1;
|
||||
}
|
||||
if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 1)
|
||||
*reinterpret_cast<QMetaType *>(_a[0]) = QMetaType();
|
||||
_id -= 1;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void TrackListWidget::trackSelected(int _t1)
|
||||
{
|
||||
QMetaObject::activate<void>(this, &staticMetaObject, 0, nullptr, _t1);
|
||||
}
|
||||
QT_WARNING_POP
|
||||
BIN
build/Desktop-Debug/moc_tracklistwidget.o
Normal file
BIN
build/Desktop-Debug/moc_tracklistwidget.o
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
build/Desktop-Debug/tracklistwidget.o
Normal file
BIN
build/Desktop-Debug/tracklistwidget.o
Normal file
Binary file not shown.
42
src/components/tracklistWidget/tracklistwidget.cpp
Normal file
42
src/components/tracklistWidget/tracklistwidget.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "tracklistwidget.h"
|
||||
#include <QFileInfo>
|
||||
#include <QVBoxLayout>
|
||||
#include "src/data/cleanerScripts.h"
|
||||
|
||||
TrackListWidget::TrackListWidget(const QStringList& audioFiles, QWidget* parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
list_ = new QListWidget(this);
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
layout->addWidget(list_);
|
||||
|
||||
int trackNum = 1;
|
||||
|
||||
for (const QString& f : audioFiles) {
|
||||
|
||||
// Extract just the filename
|
||||
QString fileName = QFileInfo(f).fileName();
|
||||
|
||||
// Run through your cleaner
|
||||
QString songTitle = cleanTrackTitle(fileName);
|
||||
|
||||
// Format display text: "1. Song Title"
|
||||
QString display = QString("%1. %2")
|
||||
.arg(trackNum++)
|
||||
.arg(songTitle);
|
||||
|
||||
list_->addItem(display);
|
||||
}
|
||||
|
||||
// Emit signal when clicked
|
||||
connect(list_, &QListWidget::itemClicked, this, [=](QListWidgetItem* item){
|
||||
int index = list_->row(item);
|
||||
emit trackSelected(index);
|
||||
});
|
||||
}
|
||||
|
||||
void TrackListWidget::setCurrentRow(int row)
|
||||
{
|
||||
list_->setCurrentRow(row);
|
||||
}
|
||||
23
src/components/tracklistWidget/tracklistwidget.h
Normal file
23
src/components/tracklistWidget/tracklistwidget.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#ifndef TRACKLISTWIDGET_H
|
||||
#define TRACKLISTWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QListWidget>
|
||||
|
||||
class TrackListWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TrackListWidget(const QStringList& audioFiles, QWidget* parent = nullptr);
|
||||
|
||||
void setCurrentRow(int row); // <-- THIS must be here
|
||||
|
||||
signals:
|
||||
void trackSelected(int index);
|
||||
|
||||
private:
|
||||
QListWidget* list_;
|
||||
};
|
||||
|
||||
#endif // TRACKLISTWIDGET_H
|
||||
@@ -1,7 +1,5 @@
|
||||
#include "playerWindow.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QPainter>
|
||||
#include <QPainterPath>
|
||||
#include <QFileInfo>
|
||||
#include <QCloseEvent>
|
||||
#include "src/data/cleanerScripts.h"
|
||||
@@ -9,24 +7,31 @@
|
||||
PlayerWindow::PlayerWindow(const AlbumData& item, QWidget* parent)
|
||||
: QWidget(parent), item_(item)
|
||||
{
|
||||
this->setWindowTitle("Now Playing");
|
||||
this->resize(300, 370);
|
||||
setWindowTitle("Now Playing");
|
||||
resize(350, 500);
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
// SUPER SIMPLE now:
|
||||
// Album artwork
|
||||
spinningArt_ = new SpinningAlbumArt(item.imagePath, 250);
|
||||
layout->addWidget(spinningArt_);
|
||||
layout->addWidget(spinningArt_, 0, Qt::AlignCenter);
|
||||
|
||||
trackLabel_ = new QLabel("Track 1");
|
||||
// Track label
|
||||
trackLabel_ = new QLabel("Track");
|
||||
trackLabel_->setAlignment(Qt::AlignCenter);
|
||||
trackLabel_->setStyleSheet("font-size: 14px; font-weight: 500;");
|
||||
layout->addWidget(trackLabel_);
|
||||
|
||||
// Track list widget
|
||||
trackList_ = new TrackListWidget(item_.audioFiles, this);
|
||||
layout->addWidget(trackList_);
|
||||
|
||||
// Audio backend
|
||||
player_ = new QMediaPlayer(this);
|
||||
audio_ = new QAudioOutput(this);
|
||||
player_->setAudioOutput(audio_);
|
||||
|
||||
// Spin album art based on playback
|
||||
connect(player_, &QMediaPlayer::playbackStateChanged, this,
|
||||
[this](QMediaPlayer::PlaybackState st){
|
||||
if (st == QMediaPlayer::PlayingState)
|
||||
@@ -35,35 +40,60 @@ PlayerWindow::PlayerWindow(const AlbumData& item, QWidget* parent)
|
||||
spinningArt_->stop();
|
||||
});
|
||||
|
||||
playNext();
|
||||
// When a track finishes, auto-play next
|
||||
connect(player_, &QMediaPlayer::mediaStatusChanged, this,
|
||||
[this](QMediaPlayer::MediaStatus st){
|
||||
if (st == QMediaPlayer::EndOfMedia)
|
||||
handleTrackFinished();
|
||||
});
|
||||
|
||||
// When a track is clicked
|
||||
connect(trackList_, &TrackListWidget::trackSelected, this,
|
||||
[this](int i){
|
||||
index_ = i;
|
||||
playTrack(index_);
|
||||
});
|
||||
|
||||
// Start with track 0
|
||||
playTrack(index_);
|
||||
}
|
||||
|
||||
void PlayerWindow::playNext()
|
||||
void PlayerWindow::playTrack(int idx)
|
||||
{
|
||||
if (index_ >= item_.audioFiles.size()) {
|
||||
this->close();
|
||||
if (idx < 0 || idx >= item_.audioFiles.size())
|
||||
return;
|
||||
}
|
||||
|
||||
QString filePath = item_.audioFiles[index_];
|
||||
index_ = idx;
|
||||
|
||||
QString filePath = item_.audioFiles[idx];
|
||||
QString fileName = QFileInfo(filePath).fileName();
|
||||
QString title = cleanTrackTitle(fileName);
|
||||
|
||||
trackLabel_->setText(
|
||||
QString("Track %1: %2").arg(index_ + 1).arg(title)
|
||||
);
|
||||
trackLabel_->setText(QString("Track %1: %2").arg(idx + 1).arg(title));
|
||||
|
||||
player_->setSource(QUrl::fromLocalFile(filePath));
|
||||
player_->play();
|
||||
|
||||
index_++;
|
||||
// Highlight in the list
|
||||
trackList_->setCurrentRow(idx);
|
||||
}
|
||||
|
||||
void PlayerWindow::handleTrackFinished()
|
||||
{
|
||||
int nextIndex = index_ + 1;
|
||||
|
||||
if (nextIndex >= item_.audioFiles.size()) {
|
||||
close();
|
||||
return;
|
||||
}
|
||||
|
||||
playTrack(nextIndex);
|
||||
}
|
||||
|
||||
void PlayerWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
if (player_) {
|
||||
if (player_)
|
||||
player_->stop();
|
||||
spinTimer_->stop();
|
||||
}
|
||||
|
||||
QWidget::closeEvent(event);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#ifndef PLAYERWINDOW_H
|
||||
#define PLAYERWINDOW_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QLabel>
|
||||
@@ -7,33 +8,32 @@
|
||||
#include <QTimer>
|
||||
#include "src/data/albumInformation.h"
|
||||
#include "src/components/spinningalbumart/spinningAlbumArt.h"
|
||||
#include "src/components/tracklistWidget/tracklistwidget.h"
|
||||
|
||||
class PlayerWindow : public QWidget {
|
||||
class PlayerWindow : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
SpinningAlbumArt* spinningArt_;
|
||||
|
||||
public:
|
||||
explicit PlayerWindow(const AlbumData& item, QWidget* parent = nullptr);
|
||||
void setCurrentRow(int row);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent* event) override;
|
||||
|
||||
private slots:
|
||||
void playNext();
|
||||
|
||||
private:
|
||||
void playTrack(int index);
|
||||
void handleTrackFinished();
|
||||
|
||||
AlbumData item_;
|
||||
int index_ = 0;
|
||||
int index_ = 0; // active track index
|
||||
|
||||
SpinningAlbumArt* spinningArt_;
|
||||
QLabel* trackLabel_;
|
||||
TrackListWidget* trackList_;
|
||||
|
||||
QMediaPlayer* player_;
|
||||
QAudioOutput* audio_;
|
||||
|
||||
QLabel* artLabel_;
|
||||
QLabel* trackLabel_;
|
||||
|
||||
QPixmap discArt_; // circular cropped album art
|
||||
QPixmap overlayArt_; // optional overlay (not required)
|
||||
qreal rotationAngle_ = 0;
|
||||
|
||||
QTimer* spinTimer_;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user