From 8ac558ebc6e2ad50bf218a13cb77332ed2b07aba Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Sun, 8 Sep 2024 15:36:28 +0800 Subject: [PATCH] chore: RC file for windows, taglib tweaks --- .github/workflows/windows.yml | 4 --- CMakeLists.txt | 28 ++++-------------- .../icons/app-icon.ico | Bin 46361 -> 63335 bytes assets/pineapple-music.rc | 17 +++++++++++ dist/64-pineapple-music.png | Bin 5927 -> 0 bytes mainwindow.cpp | 12 ++++++++ 6 files changed, 34 insertions(+), 27 deletions(-) rename dist/256-pineapple-music.png => assets/icons/app-icon.ico (73%) create mode 100644 assets/pineapple-music.rc delete mode 100644 dist/64-pineapple-music.png diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 3688384..3666e5e 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -40,10 +40,6 @@ jobs: git clone --recurse-submodules -q https://github.com/taglib/taglib.git dependencies_src/taglib cmake .\dependencies_src\taglib -Bbuild_dependencies/taglib -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error cmake --build build_dependencies/taglib --config Release --target=install -j || goto :error - :: ===== ECM ===== - git clone -q https://invent.kde.org/frameworks/extra-cmake-modules.git dependencies_src/extra-cmake-modules - cmake .\dependencies_src\extra-cmake-modules -Bbuild_dependencies/extra-cmake-modules -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DBUILD_TESTING=OFF || goto :error - cmake --build build_dependencies/extra-cmake-modules --config Release --target=install || goto :error :: ------ app ------ cmake -Bbuild . -DCMAKE_INSTALL_PREFIX="%PWD%\build\" || goto :error cmake --build build --config Release -j || goto :error diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e53dbd..e14e008 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,14 +14,8 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 6.5.1 COMPONENTS Widgets Multimedia Network LinguistTools REQUIRED) -find_package(ECM 5.83.0 NO_MODULE) find_package(PkgConfig) -if (ECM_FOUND) - set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - include(ECMAddAppIcon) -endif() - if (PKG_CONFIG_FOUND) pkg_check_modules(TagLib taglib IMPORTED_TARGET) endif () @@ -51,26 +45,22 @@ set (EXE_NAME pmusic) file (GLOB PMUSIC_TS_FILES languages/*.ts) set (PMUSIC_CPP_FILES_FOR_I18N ${PMUSIC_CPP_FILES} ${PMUSIC_UI_FILES}) -add_executable(${EXE_NAME} +add_executable(${EXE_NAME} WIN32 ${PMUSIC_HEADER_FILES} ${PMUSIC_CPP_FILES} ${PMUSIC_UI_FILES} resources.qrc ) -if(ECM_FOUND) - ecm_add_app_icon(${EXE_NAME} - ICONS - dist/64-pineapple-music.png - dist/256-pineapple-music.png - ) -endif() - qt_add_translations(${EXE_NAME} TS_FILES ${PMUSIC_TS_FILES} ) +if (WIN32) + target_sources(${EXE_NAME} PRIVATE assets/pineapple-music.rc) +endif () + if (NOT TagLib_FOUND) message (WARNING "TagLib not found!") target_compile_definitions(${EXE_NAME} PRIVATE @@ -82,14 +72,6 @@ endif () target_link_libraries(${EXE_NAME} PRIVATE Qt::Widgets Qt::Multimedia Qt::Network) -# Extra build settings -if (WIN32) - set_property ( - TARGET ${EXE_NAME} - PROPERTY WIN32_EXECUTABLE true - ) -endif () - # Install settings if (WIN32) # FIXME: try to avoid install to a "bin" subfolder under windows... diff --git a/dist/256-pineapple-music.png b/assets/icons/app-icon.ico similarity index 73% rename from dist/256-pineapple-music.png rename to assets/icons/app-icon.ico index 87ef29e5000c27fd197cf70935a148917d7ef50f..7e013e332975ba6579674b41d9bb93ac0964c8b7 100644 GIT binary patch delta 17117 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 J-=^1_`9GlDU9$iH delta 11 ScmaF*-!SPxS{C008Ha2z3L}Q~BgN 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 diff --git a/mainwindow.cpp b/mainwindow.cpp index 3a6125b..224f032 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -369,15 +369,27 @@ void MainWindow::initConnections() TagLib::AudioProperties *prop = fileRef.audioProperties(); setAudioPropertyInfoForDisplay(prop->sampleRate(), prop->bitrate(), prop->channels(), suffix); } + + if (!fileRef.isNull() && fileRef.tag()) { + TagLib::Tag * tag = fileRef.tag(); + setAudioMetadataForDisplay(QString::fromStdString(tag->title().to8Bit(true)), + QString::fromStdString(tag->artist().to8Bit(true)), + QString::fromStdString(tag->album().to8Bit(true))); + } #endif // NO_TAGLIB } }); connect(m_mediaPlayer, &QMediaPlayer::metaDataChanged, this, [=](){ QMediaMetaData metadata(m_mediaPlayer->metaData()); + // it's known in some cases QMediaMetaData using the incorrect text codec for metadata + // see `02 Yoiyami Hanabi.mp3`'s Title. So we don't use Qt's one if tablib is available. + qDebug() << metadata.stringValue(QMediaMetaData::Title) << metadata.stringValue(QMediaMetaData::Author); +#ifdef NO_TAGLIB setAudioMetadataForDisplay(metadata.stringValue(QMediaMetaData::Title), metadata.stringValue(QMediaMetaData::Author), metadata.stringValue(QMediaMetaData::AlbumTitle)); +#endif // NO_TAGLIB QVariant coverArt(metadata.value(QMediaMetaData::ThumbnailImage)); if (!coverArt.isNull()) { ui->coverLabel->setPixmap(QPixmap::fromImage(coverArt.value()));