From 9cc2494bd778aef48b47c8fd57d48301082cf009 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 9 Jan 2024 16:20:04 +0100 Subject: [PATCH 01/32] DlgTagFetcher: prohibit clicking the original tags row * deactivate the item => prohibits currentItemChanged signal * then apply the brush of active items --- src/library/dlgtagfetcher.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp index 3d68f6d4594..132d9317ab8 100644 --- a/src/library/dlgtagfetcher.cpp +++ b/src/library/dlgtagfetcher.cpp @@ -91,13 +91,25 @@ QStringList trackReleaseColumnValues( return columnValues; } -void addTrack( +void addTagRow( const QStringList& trackRow, int tagIndex, QTreeWidget* pParent) { QTreeWidgetItem* pItem = new QTreeWidgetItem(pParent, trackRow); pItem->setData(0, Qt::UserRole, tagIndex); pItem->setData(0, Qt::TextAlignmentRole, Qt::AlignLeft); + if (tagIndex == kOriginalTrackIndex) { + // Disable the original tag row so it can't be selected. + // Only setDisabled() prevents currentItemChanged() signal, removing the + // Qt::ItemIsSelectable is not sufficient. + // Store the normal text brush + const auto brush = pParent->palette().windowText(); + pItem->setDisabled(true); + // Restore the normal text color to ensure the tags are readable + for (int col = 0; col < pItem->columnCount(); col++) { + pItem->setForeground(col, brush); + } + } } void updateOriginalTag(const Track& track, QTreeWidget* pParent) { @@ -243,7 +255,7 @@ void DlgTagFetcher::loadTrack(const TrackPointer& pTrack) { loadingProgressBar->setVisible(true); loadingProgressBar->setValue(kMinimumValueOfQProgressBar); addDivider(tr("Original tags"), tags); - addTrack(trackColumnValues(*m_pTrack), kOriginalTrackIndex, tags); + addTagRow(trackColumnValues(*m_pTrack), kOriginalTrackIndex, tags); connect(m_pTrack.get(), &Track::changed, @@ -462,7 +474,7 @@ void DlgTagFetcher::fetchTagFinished( // Add fetched tag into TreeItemWidget, if it is not added before if (!allColumnValues.contains(columnValues)) { allColumnValues.insert(columnValues); - addTrack(columnValues, trackIndex, tags); + addTagRow(columnValues, trackIndex, tags); } ++trackIndex; } From b7b23f42fb334290550507a3c31cc42b7a4ac903 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Wed, 10 Jan 2024 00:13:03 +0100 Subject: [PATCH 02/32] DlgTagFetcher: move addDivider() to namespace --- src/library/dlgtagfetcher.cpp | 24 ++++++++++++------------ src/library/dlgtagfetcher.h | 1 - 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp index 132d9317ab8..65521e454fe 100644 --- a/src/library/dlgtagfetcher.cpp +++ b/src/library/dlgtagfetcher.cpp @@ -112,6 +112,18 @@ void addTagRow( } } +void addDivider(const QString& text, QTreeWidget* pParent) { + QTreeWidgetItem* pItem = new QTreeWidgetItem(pParent); + pItem->setFirstColumnSpanned(true); + pItem->setText(0, text); + pItem->setFlags(Qt::NoItemFlags); + pItem->setForeground(0, pParent->palette().color(QPalette::Disabled, QPalette::Text)); + + QFont bold_font(pParent->font()); + bold_font.setBold(true); + pItem->setFont(0, bold_font); +} + void updateOriginalTag(const Track& track, QTreeWidget* pParent) { const mixxx::TrackMetadata trackMetadata = track.getMetadata(); const QString trackNumberAndTotal = TrackNumbers::joinAsString( @@ -509,18 +521,6 @@ void DlgTagFetcher::slotNetworkResult( return; } -void DlgTagFetcher::addDivider(const QString& text, QTreeWidget* pParent) const { - QTreeWidgetItem* pItem = new QTreeWidgetItem(pParent); - pItem->setFirstColumnSpanned(true); - pItem->setText(0, text); - pItem->setFlags(Qt::NoItemFlags); - pItem->setForeground(0, palette().color(QPalette::Disabled, QPalette::Text)); - - QFont bold_font(font()); - bold_font.setBold(true); - pItem->setFont(0, bold_font); -} - void DlgTagFetcher::tagSelected() { if (!tags->currentItem()) { btnApply->setDisabled(true); diff --git a/src/library/dlgtagfetcher.h b/src/library/dlgtagfetcher.h index fe373a832b5..7e30ef21782 100644 --- a/src/library/dlgtagfetcher.h +++ b/src/library/dlgtagfetcher.h @@ -73,7 +73,6 @@ class DlgTagFetcher : public QDialog, public Ui::DlgTagFetcher { private: // Called on population or changed via buttons Next&Prev. void loadTrackInternal(const TrackPointer& pTrack); - void addDivider(const QString& text, QTreeWidget* pParent) const; void getCoverArt(const QString& url); void loadCurrentTrackCover(); From f1b96b7698ae65ebb39de98b95444a03ff302567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Sun, 14 Jan 2024 20:14:49 +0100 Subject: [PATCH 03/32] Remove changes not relevant for users --- CHANGELOG.md | 758 ++---------------- res/linux/org.mixxx.Mixxx.metainfo.xml | 1018 +++--------------------- 2 files changed, 142 insertions(+), 1634 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b8cc79f0cf..6dc0f382124 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,18 +97,6 @@ * Add History cleanup options [#4726](https://github.com/mixxxdj/mixxx/pull/4726) [#9259](https://github.com/mixxxdj/mixxx/issues/9259) [#10714](https://github.com/mixxxdj/mixxx/issues/10714) * Fix update of play count after removing tracks from history playlist [#12258](https://github.com/mixxxdj/mixxx/pull/12258) [#12046](https://github.com/mixxxdj/mixxx/issues/12046) [#12256](https://github.com/mixxxdj/mixxx/issues/12256) * Don't store or update metadata of missing tracks in the Mixxx database to prevent inconsistencies with file tags [#3811](https://github.com/mixxxdj/mixxx/pull/3811) -* Code improvements and minor bug fixes when importing track metadata - [#3851](https://github.com/mixxxdj/mixxx/pull/3851) - [#3858](https://github.com/mixxxdj/mixxx/pull/3858) - [#3860](https://github.com/mixxxdj/mixxx/pull/3860) - [#3866](https://github.com/mixxxdj/mixxx/pull/3866) - [#3871](https://github.com/mixxxdj/mixxx/pull/3871) - [#3870](https://github.com/mixxxdj/mixxx/pull/3870) - [#3924](https://github.com/mixxxdj/mixxx/pull/3924) - [#4368](https://github.com/mixxxdj/mixxx/pull/4368) - [#3906](https://github.com/mixxxdj/mixxx/pull/3906) - [#3998](https://github.com/mixxxdj/mixxx/pull/3998) - [#11031](https://github.com/mixxxdj/mixxx/pull/11031) * Update library schema to 37 for synchronizing file modified time with track source on metadata import/export [#3978](https://github.com/mixxxdj/mixxx/pull/3978) [#4012](https://github.com/mixxxdj/mixxx/pull/4012) @@ -139,6 +127,9 @@ * Tracks table: Home/End keys jump to first/last row [#4850](https://github.com/mixxxdj/mixxx/pull/4850) * Tracks table: dont wrap around if Shift is pressed [#12391](https://github.com/mixxxdj/mixxx/pull/12391) * Tracks table: avoid wrong pre-selection with no tracks selected previously [#12321](https://github.com/mixxxdj/mixxx/pull/12321) [#12064](https://github.com/mixxxdj/mixxx/issues/12064) +* Tracks table: Fix initial track selection with BackTab [#11130](https://github.com/mixxxdj/mixxx/pull/11130) +* Tracks table: Try to restore selection position after track removal [#11196](https://github.com/mixxxdj/mixxx/pull/11196) +* Tracks table: Remove parenthesis from play counter display [#11357](https://github.com/mixxxdj/mixxx/pull/11357) * Re-enable shortcuts after editing controls [#4360](https://github.com/mixxxdj/mixxx/pull/4360) [#10184](https://github.com/mixxxdj/mixxx/issues/10184) @@ -181,9 +172,6 @@ * Track Menu: Restore "Remove from playlist" in History [#11591](https://github.com/mixxxdj/mixxx/pull/11591) [#10974](https://github.com/mixxxdj/mixxx/issues/10974) * Track menu: Enable Lock BPM action if any selected track BPM is unlocked [#12385](https://github.com/mixxxdj/mixxx/pull/12385) * Track menu: Add "Delete Track Files" entry as move to trash with Qt >= 5.15 [#3212](https://github.com/mixxxdj/mixxx/pull/3212) [#11842](https://github.com/mixxxdj/mixxx/pull/11842) -* Tracks table: Fix initial track selection with BackTab [#11130](https://github.com/mixxxdj/mixxx/pull/11130) -* Tracks table: Try to restore selection position after track removal [#11196](https://github.com/mixxxdj/mixxx/pull/11196) -* Tracks table: Remove parenthesis from play counter display [#11357](https://github.com/mixxxdj/mixxx/pull/11357) * Remove/hide tracks dialog: Add 'Don't ask again' checkbox [#11239](https://github.com/mixxxdj/mixxx/pull/11239) * Fix exporting m3u files with tracks and special characters by using the URL format [#4752](https://github.com/mixxxdj/mixxx/pull/4752) * Library Scanner: Sort files before adding them [#10919](https://github.com/mixxxdj/mixxx/pull/10919) @@ -214,39 +202,8 @@ * iTunes: Fix sporadic crash during unit tests due to a not initialized reference. [#11666](https://github.com/mixxxdj/mixxx/pull/11666) * iTunes: Permit duplicate playlist names by identifying playlists by id (rather than name) [#11794](https://github.com/mixxxdj/mixxx/pull/11794) * iTunes: Re-enable test and add `composer`, `playCount`, `lastPlayedAt` and `dateAdded` to model [#11948](https://github.com/mixxxdj/mixxx/pull/11948) -* Track Properties: Don't clear unsaved properties when updating star rating [#11565](https://github.com/mixxxdj/mixxx/pull/11565) [#11540](https://github.com/mixxxdj/mixxx/issues/11540) -* Track Properties: Focus Double-clicked property field for edit - [#11764](https://github.com/mixxxdj/mixxx/pull/11764) - [#11804](https://github.com/mixxxdj/mixxx/pull/11804) - [#11802](https://github.com/mixxxdj/mixxx/issues/11802) -* Track Properties: Display the samplerate [#12418](https://github.com/mixxxdj/mixxx/pull/12418) -* Refactoring of library code - [#2756](https://github.com/mixxxdj/mixxx/pull/2756) - [#2717](https://github.com/mixxxdj/mixxx/pull/2717) - [#2715](https://github.com/mixxxdj/mixxx/pull/2715) - [#2810](https://github.com/mixxxdj/mixxx/pull/2756) - [#2900](https://github.com/mixxxdj/mixxx/pull/2900) - [#2906](https://github.com/mixxxdj/mixxx/pull/2906) - [#2925](https://github.com/mixxxdj/mixxx/pull/2925) - [#3017](https://github.com/mixxxdj/mixxx/pull/3017) - [#3475](https://github.com/mixxxdj/mixxx/pull/3475) - [#4164](https://github.com/mixxxdj/mixxx/pull/4164) - [#4152](https://github.com/mixxxdj/mixxx/pull/4152) - [#4162](https://github.com/mixxxdj/mixxx/pull/4162) - [#4101](https://github.com/mixxxdj/mixxx/pull/4101) - [#4214](https://github.com/mixxxdj/mixxx/pull/4214) - [#4280](https://github.com/mixxxdj/mixxx/pull/4280) - [#4429](https://github.com/mixxxdj/mixxx/pull/4429) - [#4477](https://github.com/mixxxdj/mixxx/pull/4477) - [#4475](https://github.com/mixxxdj/mixxx/pull/4475) - [#4480](https://github.com/mixxxdj/mixxx/pull/4480) - [#4633](https://github.com/mixxxdj/mixxx/pull/4633) - [#4837](https://github.com/mixxxdj/mixxx/pull/4837) - [#4864](https://github.com/mixxxdj/mixxx/pull/4864) - [#4893](https://github.com/mixxxdj/mixxx/pull/4893) - [#10861](https://github.com/mixxxdj/mixxx/pull/10861) - [#10871](https://github.com/mixxxdj/mixxx/pull/10871) - [#12082](https://github.com/mixxxdj/mixxx/pull/12082) +* Fix setting the wrong default cue color [#11554](https://github.com/mixxxdj/mixxx/pull/11554) [#11260](https://github.com/mixxxdj/mixxx/issues/11260) +* Tweak remove/hide track confirm message to match confirm exit message [#4577](https://github.com/mixxxdj/mixxx/pull/4577) [#1947992](https://github.com/mixxxdj/mixxx/issues/10577) ### Sync @@ -312,6 +269,9 @@ [#11940](https://github.com/mixxxdj/mixxx/issues/11940) * Fix zeros in the first m4a chunk on Linux [#11879](https://github.com/mixxxdj/mixxx/pull/11879) * Fix overlapping buffers when decoding m4a files using ffmpeg [#11760](https://github.com/mixxxdj/mixxx/pull/11760) [#11545](https://github.com/mixxxdj/mixxx/issues/11545) +* Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer + [#4251](https://github.com/mixxxdj/mixxx/pull/4251) + [#4252](https://github.com/mixxxdj/mixxx/pull/4252) [#10500](https://github.com/mixxxdj/mixxx/issues/10500) ### Audio Engine @@ -356,92 +316,7 @@ * Fix wrong visual play position when inside loop [#11840](https://github.com/mixxxdj/mixxx/pull/11840) [#11836](https://github.com/mixxxdj/mixxx/issues/11836) * Slip mode: consider loop for background position only if it was enabled before slip [#11848](https://github.com/mixxxdj/mixxx/pull/11848) [#11844](https://github.com/mixxxdj/mixxx/issues/11844) * Looping: reset loop_end_pos on eject [#12224](https://github.com/mixxxdj/mixxx/pull/12224) [#12223](https://github.com/mixxxdj/mixxx/issues/12223) -* Refactoring of beatgrid/beatmap code - [#4044](https://github.com/mixxxdj/mixxx/pull/4044) - [#4048](https://github.com/mixxxdj/mixxx/pull/4048) - [#4045](https://github.com/mixxxdj/mixxx/pull/4045) - [#4049](https://github.com/mixxxdj/mixxx/pull/4049) - [#4092](https://github.com/mixxxdj/mixxx/pull/4092) - [#4094](https://github.com/mixxxdj/mixxx/pull/4094) - [#4104](https://github.com/mixxxdj/mixxx/pull/4104) - [#4103](https://github.com/mixxxdj/mixxx/pull/4103) - [#4127](https://github.com/mixxxdj/mixxx/pull/4127) - [#4099](https://github.com/mixxxdj/mixxx/pull/4099) - [#4071](https://github.com/mixxxdj/mixxx/pull/4071) - [#4184](https://github.com/mixxxdj/mixxx/pull/4184) - [#4234](https://github.com/mixxxdj/mixxx/pull/4234) - [#4233](https://github.com/mixxxdj/mixxx/pull/4233) - [#4258](https://github.com/mixxxdj/mixxx/pull/4258) - [#4259](https://github.com/mixxxdj/mixxx/pull/4259) - [#4263](https://github.com/mixxxdj/mixxx/pull/4263) - [#4272](https://github.com/mixxxdj/mixxx/pull/4272) - [#4268](https://github.com/mixxxdj/mixxx/pull/4268) - [#4270](https://github.com/mixxxdj/mixxx/pull/4270) - [#4342](https://github.com/mixxxdj/mixxx/pull/4342) - [#4336](https://github.com/mixxxdj/mixxx/pull/4336) - [#4409](https://github.com/mixxxdj/mixxx/pull/4409) - [#4361](https://github.com/mixxxdj/mixxx/pull/4361) - [#4488](https://github.com/mixxxdj/mixxx/pull/4488) - [#4411](https://github.com/mixxxdj/mixxx/pull/4411) - [#4498](https://github.com/mixxxdj/mixxx/pull/4498) - [#4500](https://github.com/mixxxdj/mixxx/pull/4500) - [#4499](https://github.com/mixxxdj/mixxx/pull/4499) - [#4510](https://github.com/mixxxdj/mixxx/pull/4510) - [#4607](https://github.com/mixxxdj/mixxx/pull/4607) - [#11263](https://github.com/mixxxdj/mixxx/pull/11263) - [#12368](https://github.com/mixxxdj/mixxx/pull/12368) - [#12349](https://github.com/mixxxdj/mixxx/pull/12349) - [#12071](https://github.com/mixxxdj/mixxx/issues/12071) - [#12016](https://github.com/mixxxdj/mixxx/pull/12016) -* Refactoring of audio engine code - [#2762](https://github.com/mixxxdj/mixxx/pull/2762) - [#2801](https://github.com/mixxxdj/mixxx/pull/2801) - [#2885](https://github.com/mixxxdj/mixxx/pull/2885) - [#2997](https://github.com/mixxxdj/mixxx/pull/2997) - [#3266](https://github.com/mixxxdj/mixxx/pull/3266) - [#4064](https://github.com/mixxxdj/mixxx/pull/4064) - [#4065](https://github.com/mixxxdj/mixxx/pull/4065) - [#4066](https://github.com/mixxxdj/mixxx/pull/4066) - [#4069](https://github.com/mixxxdj/mixxx/pull/4069) - [#4074](https://github.com/mixxxdj/mixxx/pull/4074) - [#4075](https://github.com/mixxxdj/mixxx/pull/4075) - [#4076](https://github.com/mixxxdj/mixxx/pull/4076) - [#4078](https://github.com/mixxxdj/mixxx/pull/4078) - [#4082](https://github.com/mixxxdj/mixxx/pull/4082) - [#4077](https://github.com/mixxxdj/mixxx/pull/4077) - [#4080](https://github.com/mixxxdj/mixxx/pull/4080) - [#4086](https://github.com/mixxxdj/mixxx/pull/4086) - [#4089](https://github.com/mixxxdj/mixxx/pull/4089) - [#4090](https://github.com/mixxxdj/mixxx/pull/4090) - [#4079](https://github.com/mixxxdj/mixxx/pull/4079) - [#4091](https://github.com/mixxxdj/mixxx/pull/4091) - [#4083](https://github.com/mixxxdj/mixxx/pull/4083) - [#4095](https://github.com/mixxxdj/mixxx/pull/4095) - [#4081](https://github.com/mixxxdj/mixxx/pull/4081) - [#4061](https://github.com/mixxxdj/mixxx/pull/4061) - [#4105](https://github.com/mixxxdj/mixxx/pull/4105) - [#4183](https://github.com/mixxxdj/mixxx/pull/4183) - [#4186](https://github.com/mixxxdj/mixxx/pull/4186) - [#4189](https://github.com/mixxxdj/mixxx/pull/4189) - [#4216](https://github.com/mixxxdj/mixxx/pull/4216) - [#4221](https://github.com/mixxxdj/mixxx/pull/4221) - [#4219](https://github.com/mixxxdj/mixxx/pull/4219) - [#4191](https://github.com/mixxxdj/mixxx/pull/4191) - [#4232](https://github.com/mixxxdj/mixxx/pull/4232) - [#4231](https://github.com/mixxxdj/mixxx/pull/4231) - [#4229](https://github.com/mixxxdj/mixxx/pull/4229) - [#4257](https://github.com/mixxxdj/mixxx/pull/4257) - [#4266](https://github.com/mixxxdj/mixxx/pull/4266) - [#4217](https://github.com/mixxxdj/mixxx/pull/4217) - [#1966](https://github.com/mixxxdj/mixxx/pull/1966) - [#4535](https://github.com/mixxxdj/mixxx/pull/4535) - [#4770](https://github.com/mixxxdj/mixxx/pull/4770) - [#4771](https://github.com/mixxxdj/mixxx/pull/4771) - [#4589](https://github.com/mixxxdj/mixxx/pull/4589) - [#1717](https://github.com/mixxxdj/mixxx/pull/1717) - [#4852](https://github.com/mixxxdj/mixxx/pull/4852) - [#10835](https://github.com/mixxxdj/mixxx/pull/10835) - [#10843](https://github.com/mixxxdj/mixxx/pull/10843) +* make decks' xfader assignment persistent [#12074](https://github.com/mixxxdj/mixxx/pull/12074) [#10122](https://github.com/mixxxdj/mixxx/issues/10122) ### Controller Mappings @@ -507,42 +382,9 @@ [#4905](https://github.com/mixxxdj/mixxx/pull/4905) [#10540](https://github.com/mixxxdj/mixxx/issues/10540) [#10539](https://github.com/mixxxdj/mixxx/issues/10539) -* Controller preferences: add search bars to mapping tables [#11165](https://github.com/mixxxdj/mixxx/pull/11165) * Added TypeScript declarations for engine and controller scripting API to improve IDE code completion during mapping developent [#4759](https://github.com/mixxxdj/mixxx/pull/4759) * Retire Mixco Scripts [#2682](https://github.com/mixxxdj/mixxx/pull/2682) * Relax strictness of `ControllerScriptInterfaceLegacy` methods. [#11474](https://github.com/mixxxdj/mixxx/pull/11474) [#11473](https://github.com/mixxxdj/mixxx/issues/11473) -* Prepare code for upcoming ES6 based controller mapping system with module support - [#2682](https://github.com/mixxxdj/mixxx/pull/2682) - [#2868](https://github.com/mixxxdj/mixxx/pull/2868) - [#2875](https://github.com/mixxxdj/mixxx/pull/2875) - [#2936](https://github.com/mixxxdj/mixxx/pull/2936) - [#2946](https://github.com/mixxxdj/mixxx/pull/2946) - [#11953](https://github.com/mixxxdj/mixxx/pull/11953) -* Other refactorings of controller code - [#2904](https://github.com/mixxxdj/mixxx/pull/2904) - [#3308](https://github.com/mixxxdj/mixxx/pull/3308) - [#3463](https://github.com/mixxxdj/mixxx/pull/3463) - [#3634](https://github.com/mixxxdj/mixxx/pull/3634) - [#3635](https://github.com/mixxxdj/mixxx/pull/3635) - [#3636](https://github.com/mixxxdj/mixxx/pull/3636) - [#3676](https://github.com/mixxxdj/mixxx/pull/3676) - [#3880](https://github.com/mixxxdj/mixxx/pull/3880) - [#4085](https://github.com/mixxxdj/mixxx/pull/4085) - [#4524](https://github.com/mixxxdj/mixxx/pull/4524) - [#4533](https://github.com/mixxxdj/mixxx/pull/4533) - [#4521](https://github.com/mixxxdj/mixxx/pull/4521) - [#4585](https://github.com/mixxxdj/mixxx/pull/4585) - [#4692](https://github.com/mixxxdj/mixxx/pull/4692) - [#4566](https://github.com/mixxxdj/mixxx/pull/4566) - [#4599](https://github.com/mixxxdj/mixxx/pull/4599) - [#4624](https://github.com/mixxxdj/mixxx/pull/4624) - [#4627](https://github.com/mixxxdj/mixxx/pull/4627) - [#4738](https://github.com/mixxxdj/mixxx/pull/4738) - [#11160](https://github.com/mixxxdj/mixxx/pull/11160) - [#11662](https://github.com/mixxxdj/mixxx/pull/11662) - [#11622](https://github.com/mixxxdj/mixxx/pull/11622) - [#12400](https://github.com/mixxxdj/mixxx/pull/12400) - [#12468](https://github.com/mixxxdj/mixxx/pull/12468) * feat(control): Do not show CO aliases in developer tools window [#12265](https://github.com/mixxxdj/mixxx/pull/12265) * Do not use deprecated COs in C++ code/Keyboard Mapping/Skins [#11990](https://github.com/mixxxdj/mixxx/pull/11990) * Fix creation of Sampler "end_of_track" CO [#12305](https://github.com/mixxxdj/mixxx/pull/12305) [#12304](https://github.com/mixxxdj/mixxx/issues/12304) @@ -560,63 +402,12 @@ * Log warning if deprecated control is used [#11972](https://github.com/mixxxdj/mixxx/pull/11972) * ControlObject alias improvements [#11973](https://github.com/mixxxdj/mixxx/pull/11973) * Repeat certain control actions if keyboard key is held [#12474](https://github.com/mixxxdj/mixxx/pull/12474) +* Logging: Add support for `QT_MESSAGE_PATTERN` environment variable + [#3204](https://github.com/mixxxdj/mixxx/pull/3204) + [#3518](https://github.com/mixxxdj/mixxx/pull/3518) ### Skins -* Add experimental QML user interface - [#3345](https://github.com/mixxxdj/mixxx/pull/3345) - [#3446](https://github.com/mixxxdj/mixxx/pull/3446) - [#3854](https://github.com/mixxxdj/mixxx/pull/3854) - [#3891](https://github.com/mixxxdj/mixxx/pull/3891) - [#2874](https://github.com/mixxxdj/mixxx/pull/2874) - [#3915](https://github.com/mixxxdj/mixxx/pull/3915) - [#3894](https://github.com/mixxxdj/mixxx/pull/3894) - [#3920](https://github.com/mixxxdj/mixxx/pull/3920) - [#3907](https://github.com/mixxxdj/mixxx/pull/3907) - [#3925](https://github.com/mixxxdj/mixxx/pull/3925) - [#3928](https://github.com/mixxxdj/mixxx/pull/3928) - [#3932](https://github.com/mixxxdj/mixxx/pull/3932) - [#3911](https://github.com/mixxxdj/mixxx/pull/3911) - [#3937](https://github.com/mixxxdj/mixxx/pull/3937) - [#3940](https://github.com/mixxxdj/mixxx/pull/3940) - [#3913](https://github.com/mixxxdj/mixxx/pull/3913) - [#3950](https://github.com/mixxxdj/mixxx/pull/3950) - [#3919](https://github.com/mixxxdj/mixxx/pull/3919) - [#3955](https://github.com/mixxxdj/mixxx/pull/3955) - [#3957](https://github.com/mixxxdj/mixxx/pull/3957) - [#3961](https://github.com/mixxxdj/mixxx/pull/3961) - [#3952](https://github.com/mixxxdj/mixxx/pull/3952) - [#3963](https://github.com/mixxxdj/mixxx/pull/3963) - [#3971](https://github.com/mixxxdj/mixxx/pull/3971) - [#3959](https://github.com/mixxxdj/mixxx/pull/3959) - [#3972](https://github.com/mixxxdj/mixxx/pull/3972) - [#3992](https://github.com/mixxxdj/mixxx/pull/3992) - [#4003](https://github.com/mixxxdj/mixxx/pull/4003) - [#4004](https://github.com/mixxxdj/mixxx/pull/4004) - [#3999](https://github.com/mixxxdj/mixxx/pull/3999) - [#4000](https://github.com/mixxxdj/mixxx/pull/4000) - [#4067](https://github.com/mixxxdj/mixxx/pull/4067) - [#4068](https://github.com/mixxxdj/mixxx/pull/4068) - [#4060](https://github.com/mixxxdj/mixxx/pull/4060) - [#4037](https://github.com/mixxxdj/mixxx/pull/4037) - [#4414](https://github.com/mixxxdj/mixxx/pull/4414) - [#3934](https://github.com/mixxxdj/mixxx/pull/3934) - [#4117](https://github.com/mixxxdj/mixxx/pull/4117) - [#4327](https://github.com/mixxxdj/mixxx/pull/4327) - [#4339](https://github.com/mixxxdj/mixxx/pull/4339) - [#4568](https://github.com/mixxxdj/mixxx/pull/4568) - [#4576](https://github.com/mixxxdj/mixxx/pull/4576) - [#4591](https://github.com/mixxxdj/mixxx/pull/4591) - [#4616](https://github.com/mixxxdj/mixxx/pull/4616) - [#4567](https://github.com/mixxxdj/mixxx/pull/4567) - [#4629](https://github.com/mixxxdj/mixxx/pull/4629) - [#4643](https://github.com/mixxxdj/mixxx/pull/4643) - [#4650](https://github.com/mixxxdj/mixxx/pull/4650) - [#4654](https://github.com/mixxxdj/mixxx/pull/4654) - [#4673](https://github.com/mixxxdj/mixxx/pull/4673) - [#4680](https://github.com/mixxxdj/mixxx/pull/4680) - [#4681](https://github.com/mixxxdj/mixxx/pull/4681) - [#4736](https://github.com/mixxxdj/mixxx/pull/4736) * Add harmonic keywheel window [#1695](https://github.com/mixxxdj/mixxx/pull/1695) [#3622](https://github.com/mixxxdj/mixxx/pull/3622) @@ -633,6 +424,7 @@ [#3939](https://github.com/mixxxdj/mixxx/pull/3939) * Fix leaked controls [#4213](https://github.com/mixxxdj/mixxx/pull/4213) [#10293](https://github.com/mixxxdj/mixxx/issues/10293) * Shade: Remove initial setting of now accessible effect controls [#4398](https://github.com/mixxxdj/mixxx/pull/4398) [#10557](https://github.com/mixxxdj/mixxx/issues/10557) +* Shade: Audio Latency meter fix [#11601](https://github.com/mixxxdj/mixxx/pull/11601) * Fix switching from Shade to other skins [#4421](https://github.com/mixxxdj/mixxx/pull/4421) [#10558](https://github.com/mixxxdj/mixxx/issues/10558) * Use double click to reset knobs and sliders [#4509](https://github.com/mixxxdj/mixxx/pull/4509) [#9947](https://github.com/mixxxdj/mixxx/issues/9947) * Use info not warning for skin COs [#4525](https://github.com/mixxxdj/mixxx/pull/4525) @@ -662,7 +454,6 @@ * Fix sidebar item styling [#11975](https://github.com/mixxxdj/mixxx/pull/11975) [#11957](https://github.com/mixxxdj/mixxx/issues/11957) -* Shade: Audio Latency meter fix [#11601](https://github.com/mixxxdj/mixxx/pull/11601) * Fix 500ms blocking of the whole event loop, when holding mouse down on title bar on Windows [#12359](https://github.com/mixxxdj/mixxx/pull/12359) [#12358](https://github.com/mixxxdj/mixxx/issues/12358) [#12433](https://github.com/mixxxdj/mixxx/pull/12433) [#12458](https://github.com/mixxxdj/mixxx/pull/12458) * change SKIN_WARNING to show the skin file:line first, then c++ context [#12253](https://github.com/mixxxdj/mixxx/pull/12253) * Fix style of selected QComboBox items on Windows [#12339](https://github.com/mixxxdj/mixxx/pull/12339) [#12323](https://github.com/mixxxdj/mixxx/issues/12323) @@ -670,6 +461,9 @@ * Fix inconsistent/wrong musical keys in the UI [#12051](https://github.com/mixxxdj/mixxx/pull/12051) [#12044](https://github.com/mixxxdj/mixxx/issues/12044) * Add `skins:` path alias [#12463](https://github.com/mixxxdj/mixxx/pull/12463) * Remove `Text`, use `TrackProperty` or `Label` [#12004](https://github.com/mixxxdj/mixxx/pull/12004) +* Implement Un-eject by pressing eject again + [#4668](https://github.com/mixxxdj/mixxx/pull/4668) + [#11246](https://github.com/mixxxdj/mixxx/pull/11246) ### Waveforms and GL Widgets @@ -833,326 +627,39 @@ [#12123](https://github.com/mixxxdj/mixxx/pull/12123) [#12089](https://github.com/mixxxdj/mixxx/issues/12089) [#12095](https://github.com/mixxxdj/mixxx/pull/12095) -* macOS packaging: Enable app sandbox in unsigned 2.4 builds too +* macOS packaging: Enable app sandbox and fix related issues [#12138](https://github.com/mixxxdj/mixxx/pull/12138) -* macOS packaging: Fix regression that caused `Sandbox::canAccess` to fail [#12457](https://github.com/mixxxdj/mixxx/pull/12457) [#12137](https://github.com/mixxxdj/mixxx/issues/12137) [#11552](https://github.com/mixxxdj/mixxx/issues/11552) -* macOS packaging: Fix running macOS bundle from development build directory [#12099](https://github.com/mixxxdj/mixxx/pull/12099) -* Hide applocal group from Windows installer [#12118](https://github.com/mixxxdj/mixxx/pull/12118) [#11992](https://github.com/mixxxdj/mixxx/issues/11992) + [#4018](https://github.com/mixxxdj/mixxx/pull/4018) + [#10373](https://github.com/mixxxdj/mixxx/issues/10373) +* macOS: Use rounded Mixxx Icon to follow Apples style guide + [#4545](https://github.com/mixxxdj/mixxx/pull/4545) + [#10958](https://github.com/mixxxdj/mixxx/pull/10958) +* OpenBSD: Allow building Mixxx [#11083](https://github.com/mixxxdj/mixxx/pull/11083) +* Improve Linux launcher + [#11826](https://github.com/mixxxdj/mixxx/pull/11826) + [#11820](https://github.com/mixxxdj/mixxx/issues/11820) + [#11805](https://github.com/mixxxdj/mixxx/pull/11805) + [#12424](https://github.com/mixxxdj/mixxx/pull/12424) + +### Track properties + +* Fixed a SIGSEGV after a debug assertion [#4316]( +* Apply pending changes also when saving via hotkey [#4562](https://github.com/mixxxdj/mixxx/pull/4562) [#10612](https://github.com/mixxxdj/mixxx/issues/10612) +* Fix crash when trying to scale 0.0 BPM [#4587](https://github.com/mixxxdj/mixxx/pull/4587) [#1955853](https://github.com/mixxxdj/mixxx/issues/10625) +* Add track color selector [#11436](https://github.com/mixxxdj/mixxx/pull/11436) [#10324](https://github.com/mixxxdj/mixxx/issues/10324) +* Don't clear unsaved properties when updating star rating [#11565](https://github.com/mixxxdj/mixxx/pull/11565) [#11540](https://github.com/mixxxdj/mixxx/issues/11540) +* Focus Double-clicked property field for edit + [#11764](https://github.com/mixxxdj/mixxx/pull/11764) + [#11804](https://github.com/mixxxdj/mixxx/pull/11804) + [#11802](https://github.com/mixxxdj/mixxx/issues/11802) +* Display the samplerate [#12418](https://github.com/mixxxdj/mixxx/pull/12418) -### Other +### Preferences -* Improve and fix the CMake build system - [#2943](https://github.com/mixxxdj/mixxx/pull/2943) - [#3046](https://github.com/mixxxdj/mixxx/pull/3046) - [#3114](https://github.com/mixxxdj/mixxx/pull/3114) - [#3471](https://github.com/mixxxdj/mixxx/pull/3471) - [#3765](https://github.com/mixxxdj/mixxx/pull/3765) - [#3849](https://github.com/mixxxdj/mixxx/pull/3849) - [#3876](https://github.com/mixxxdj/mixxx/pull/3876) - [#4098](https://github.com/mixxxdj/mixxx/pull/4098) - [#4113](https://github.com/mixxxdj/mixxx/pull/4113) - [#4166](https://github.com/mixxxdj/mixxx/pull/4166) - [#4185](https://github.com/mixxxdj/mixxx/pull/4185) - [#4187](https://github.com/mixxxdj/mixxx/pull/4187) - [#4351](https://github.com/mixxxdj/mixxx/pull/4351) - [#4423](https://github.com/mixxxdj/mixxx/pull/4423) - [#4422](https://github.com/mixxxdj/mixxx/pull/4422) - [#4497](https://github.com/mixxxdj/mixxx/pull/4497) - [#4514](https://github.com/mixxxdj/mixxx/pull/4514) - [#3550](https://github.com/mixxxdj/mixxx/pull/3550) - [#4861](https://github.com/mixxxdj/mixxx/pull/4861) - [#10855](https://github.com/mixxxdj/mixxx/pull/10855) - [#10896](https://github.com/mixxxdj/mixxx/pull/10896) - [#10926](https://github.com/mixxxdj/mixxx/pull/10926) - [#11368](https://github.com/mixxxdj/mixxx/pull/11368) - [#11144](https://github.com/mixxxdj/mixxx/pull/11144) - [#4866](https://github.com/mixxxdj/mixxx/pull/4866) - [#12442](https://github.com/mixxxdj/mixxx/pull/12442) - [#12351](https://github.com/mixxxdj/mixxx/pull/12351) - [#12288](https://github.com/mixxxdj/mixxx/pull/12288) - [#12197](https://github.com/mixxxdj/mixxx/pull/12197) - [#11754](https://github.com/mixxxdj/mixxx/pull/11754) - [#11741](https://github.com/mixxxdj/mixxx/issues/11741) - [#12518](https://github.com/mixxxdj/mixxx/pull/12518) -* Improve GitHub workflow continuous integration - [#2937](https://github.com/mixxxdj/mixxx/pull/2937) - [#3041](https://github.com/mixxxdj/mixxx/pull/3041) - [#3300](https://github.com/mixxxdj/mixxx/pull/3300) - [#4007](https://github.com/mixxxdj/mixxx/pull/4007) - [#4084](https://github.com/mixxxdj/mixxx/pull/4084) - [#4250](https://github.com/mixxxdj/mixxx/pull/4250) - [#4274](https://github.com/mixxxdj/mixxx/pull/4274) - [#4313](https://github.com/mixxxdj/mixxx/pull/4313) - [#4226](https://github.com/mixxxdj/mixxx/pull/4226) - [#4452](https://github.com/mixxxdj/mixxx/pull/4452) - [#4742](https://github.com/mixxxdj/mixxx/pull/4742) - [#4741](https://github.com/mixxxdj/mixxx/pull/4741) - [#4795](https://github.com/mixxxdj/mixxx/pull/4795) - [#4798](https://github.com/mixxxdj/mixxx/pull/4798) - [#4792](https://github.com/mixxxdj/mixxx/pull/4792) - [#4829](https://github.com/mixxxdj/mixxx/pull/4829) - [#4822](https://github.com/mixxxdj/mixxx/pull/4822) - [#4820](https://github.com/mixxxdj/mixxx/pull/4820) - [#4821](https://github.com/mixxxdj/mixxx/pull/4821) - [#4818](https://github.com/mixxxdj/mixxx/pull/4818) - [#4819](https://github.com/mixxxdj/mixxx/pull/4819) - [#4817](https://github.com/mixxxdj/mixxx/pull/4817) - [#4815](https://github.com/mixxxdj/mixxx/pull/4815) - [#10938](https://github.com/mixxxdj/mixxx/pull/10938) - [#11038](https://github.com/mixxxdj/mixxx/pull/11038) - [#11066](https://github.com/mixxxdj/mixxx/pull/11066) - [#11089](https://github.com/mixxxdj/mixxx/pull/11089) - [#11156](https://github.com/mixxxdj/mixxx/pull/11156) - [#11193](https://github.com/mixxxdj/mixxx/pull/11193) - [#11396](https://github.com/mixxxdj/mixxx/pull/11396) - [#11386](https://github.com/mixxxdj/mixxx/issues/11386) - [#11414](https://github.com/mixxxdj/mixxx/pull/11414) - [#12502](https://github.com/mixxxdj/mixxx/pull/12502) - [#12434](https://github.com/mixxxdj/mixxx/pull/12434) - [#11962](https://github.com/mixxxdj/mixxx/pull/11962) - [#11945](https://github.com/mixxxdj/mixxx/pull/11945) -* Improve pre-commit hook - [#2796](https://github.com/mixxxdj/mixxx/pull/2796) - [#3923](https://github.com/mixxxdj/mixxx/pull/3923) - [#3948](https://github.com/mixxxdj/mixxx/pull/3948) - [#3929](https://github.com/mixxxdj/mixxx/pull/3929) - [#4192](https://github.com/mixxxdj/mixxx/pull/4192) - [#4282](https://github.com/mixxxdj/mixxx/pull/4282) - [#4278](https://github.com/mixxxdj/mixxx/pull/4278) - [#4314](https://github.com/mixxxdj/mixxx/pull/4314) - [#4321](https://github.com/mixxxdj/mixxx/pull/4321) - [#4374](https://github.com/mixxxdj/mixxx/pull/4374) - [#4494](https://github.com/mixxxdj/mixxx/pull/4494) - [#4512](https://github.com/mixxxdj/mixxx/pull/4512) - [#4558](https://github.com/mixxxdj/mixxx/pull/4558) - [#4580](https://github.com/mixxxdj/mixxx/pull/4580) - [#4743](https://github.com/mixxxdj/mixxx/pull/4743) - [#10950](https://github.com/mixxxdj/mixxx/pull/10950) - [#10980](https://github.com/mixxxdj/mixxx/pull/10980) - [#11078](https://github.com/mixxxdj/mixxx/pull/11078) - [#10929](https://github.com/mixxxdj/mixxx/pull/10929) - [#11369](https://github.com/mixxxdj/mixxx/pull/11369) - [#11388](https://github.com/mixxxdj/mixxx/pull/11388) - [#11889](https://github.com/mixxxdj/mixxx/pull/11889) -* Improve Lauchpad PPA builds - [#4277](https://github.com/mixxxdj/mixxx/pull/4277) - [#4285](https://github.com/mixxxdj/mixxx/pull/4285) - [#4425](https://github.com/mixxxdj/mixxx/pull/4425) - [#12347](https://github.com/mixxxdj/mixxx/pull/12347) - [#11729](https://github.com/mixxxdj/mixxx/pull/11729) -* Update vcpkg build environment for Windows and macOS - [#4163](https://github.com/mixxxdj/mixxx/pull/4163) - [#4225](https://github.com/mixxxdj/mixxx/pull/4225) - [#4338](https://github.com/mixxxdj/mixxx/pull/4338) - [#4709](https://github.com/mixxxdj/mixxx/pull/4709) - [#4717](https://github.com/mixxxdj/mixxx/pull/4717) - [#10872](https://github.com/mixxxdj/mixxx/pull/10872) - [#10966](https://github.com/mixxxdj/mixxx/pull/10966) - [#11050](https://github.com/mixxxdj/mixxx/pull/11050) - [#11074](https://github.com/mixxxdj/mixxx/pull/11074) - [#11238](https://github.com/mixxxdj/mixxx/pull/11238) - [#11457](https://github.com/mixxxdj/mixxx/pull/11457) - [#11562](https://github.com/mixxxdj/mixxx/pull/11562) - [#12370](https://github.com/mixxxdj/mixxx/pull/12370) - [#11733](https://github.com/mixxxdj/mixxx/pull/11733) -* Windows: Fix extraction of build environment archive when using 7-Zip [#11510](https://github.com/mixxxdj/mixxx/pull/11510) -* Fix Windows warnings and enable "Treat all compiler warnings as errors" [#11607](https://github.com/mixxxdj/mixxx/pull/11607) [#12417](https://github.com/mixxxdj/mixxx/pull/12417) -* Devendor libraries from the mixxx lib directory - [#4201](https://github.com/mixxxdj/mixxx/pull/4201) - [#4202](https://github.com/mixxxdj/mixxx/pull/4202) - [#11839](https://github.com/mixxxdj/mixxx/pull/11839) - [#11742](https://github.com/mixxxdj/mixxx/issues/11742) - [#11841](https://github.com/mixxxdj/mixxx/pull/11841) -* [#4540](https://github.com/mixxxdj/mixxx/pull/4540) -* Update hidapi to 0.11.2 [#4783](https://github.com/mixxxdj/mixxx/pull/4783) -* Update xwax to Version 1.8 [#4597](https://github.com/mixxxdj/mixxx/pull/4597) [#10627](https://github.com/mixxxdj/mixxx/issues/10627) -* Update rigtorp/SPSCQueue [#4678](https://github.com/mixxxdj/mixxx/pull/4678) -* macOS: Fail early if the Xcode command line tools are not installed. [#11699](https://github.com/mixxxdj/mixxx/pull/11699) -* macOS buildenv: Improve error messages for CI-only wrappers [#12382](https://github.com/mixxxdj/mixxx/pull/12382) -* Improve cmake first time error reporting [#11635](https://github.com/mixxxdj/mixxx/pull/11635) [#11596](https://github.com/mixxxdj/mixxx/issues/11596) [#11597](https://github.com/mixxxdj/mixxx/issues/11597) -* Manual include #include "moc_*.cpp" to speed up build [#11567](https://github.com/mixxxdj/mixxx/pull/11567) -* Fix building Mixxx with SDK 11 [#11766](https://github.com/mixxxdj/mixxx/pull/11766) -* chore: Fix spelling and formatting issues [#11890](https://github.com/mixxxdj/mixxx/pull/11890) -* Prefer mold or lld as linker to speed up linking [#11790](https://github.com/mixxxdj/mixxx/pull/11790) [#11796](https://github.com/mixxxdj/mixxx/pull/11796) -* feat: allow sanitizers on GCC as well [#12002](https://github.com/mixxxdj/mixxx/pull/12002) -* Update manifest even if one job fails [#12091](https://github.com/mixxxdj/mixxx/pull/12091) -* Mixxx 2.4: Fail Qt6 build not on GitHub Actions [#12293](https://github.com/mixxxdj/mixxx/pull/12293) -* CMakeLists: Relativize `__FILE__` paths by default [#12350](https://github.com/mixxxdj/mixxx/pull/12350) -* Debug: Add Rust-inspired `DBG` macro for quick print-debugging [#12344](https://github.com/mixxxdj/mixxx/pull/12344) [#12383](https://github.com/mixxxdj/mixxx/pull/12383) -* Migration to Qt6 (work in progress) - [#4052](https://github.com/mixxxdj/mixxx/pull/4052) - [#4295](https://github.com/mixxxdj/mixxx/pull/4295) - [#4293](https://github.com/mixxxdj/mixxx/pull/4293) - [#4294](https://github.com/mixxxdj/mixxx/pull/4294) - [#4291](https://github.com/mixxxdj/mixxx/pull/4291) - [#4290](https://github.com/mixxxdj/mixxx/pull/4290) - [#4300](https://github.com/mixxxdj/mixxx/pull/4300) - [#4302](https://github.com/mixxxdj/mixxx/pull/4302) - [#4289](https://github.com/mixxxdj/mixxx/pull/4289) - [#4292](https://github.com/mixxxdj/mixxx/pull/4292) - [#4299](https://github.com/mixxxdj/mixxx/pull/4299) - [#4051](https://github.com/mixxxdj/mixxx/pull/4051) - [#4303](https://github.com/mixxxdj/mixxx/pull/4303) - [#4305](https://github.com/mixxxdj/mixxx/pull/4305) - [#4304](https://github.com/mixxxdj/mixxx/pull/4304) - [#4306](https://github.com/mixxxdj/mixxx/pull/4306) - [#4308](https://github.com/mixxxdj/mixxx/pull/4308) - [#4309](https://github.com/mixxxdj/mixxx/pull/4309) - [#4322](https://github.com/mixxxdj/mixxx/pull/4322) - [#4373](https://github.com/mixxxdj/mixxx/pull/4373) - [#4371](https://github.com/mixxxdj/mixxx/pull/4371) - [#4375](https://github.com/mixxxdj/mixxx/pull/4375) - [#4378](https://github.com/mixxxdj/mixxx/pull/4378) - [#4381](https://github.com/mixxxdj/mixxx/pull/4381) - [#4380](https://github.com/mixxxdj/mixxx/pull/4380) - [#4376](https://github.com/mixxxdj/mixxx/pull/4376) - [#4379](https://github.com/mixxxdj/mixxx/pull/4379) - [#4372](https://github.com/mixxxdj/mixxx/pull/4372) - [#4377](https://github.com/mixxxdj/mixxx/pull/4377) - [#4387](https://github.com/mixxxdj/mixxx/pull/4387) - [#4391](https://github.com/mixxxdj/mixxx/pull/4391) - [#4392](https://github.com/mixxxdj/mixxx/pull/4392) - [#4395](https://github.com/mixxxdj/mixxx/pull/4395) - [#4397](https://github.com/mixxxdj/mixxx/pull/4397) - [#4396](https://github.com/mixxxdj/mixxx/pull/4396) - [#4402](https://github.com/mixxxdj/mixxx/pull/4402) - [#4405](https://github.com/mixxxdj/mixxx/pull/4405) - [#4394](https://github.com/mixxxdj/mixxx/pull/4394) - [#4404](https://github.com/mixxxdj/mixxx/pull/4404) - [#4401](https://github.com/mixxxdj/mixxx/pull/4401) - [#4400](https://github.com/mixxxdj/mixxx/pull/4400) - [#4403](https://github.com/mixxxdj/mixxx/pull/4403) - [#4407](https://github.com/mixxxdj/mixxx/pull/4407) - [#4399](https://github.com/mixxxdj/mixxx/pull/4399) - [#4406](https://github.com/mixxxdj/mixxx/pull/4406) - [#4420](https://github.com/mixxxdj/mixxx/pull/4420) - [#4415](https://github.com/mixxxdj/mixxx/pull/4415) - [#4417](https://github.com/mixxxdj/mixxx/pull/4417) - [#4419](https://github.com/mixxxdj/mixxx/pull/4419) - [#4416](https://github.com/mixxxdj/mixxx/pull/4416) - [#4418](https://github.com/mixxxdj/mixxx/pull/4418) - [#4547](https://github.com/mixxxdj/mixxx/pull/4547) - [#4433](https://github.com/mixxxdj/mixxx/pull/4433) - [#4434](https://github.com/mixxxdj/mixxx/pull/4434) - [#4441](https://github.com/mixxxdj/mixxx/pull/4441) - [#4445](https://github.com/mixxxdj/mixxx/pull/4445) - [#4446](https://github.com/mixxxdj/mixxx/pull/4446) - [#4444](https://github.com/mixxxdj/mixxx/pull/4444) - [#4436](https://github.com/mixxxdj/mixxx/pull/4436) - [#4437](https://github.com/mixxxdj/mixxx/pull/4437) - [#4440](https://github.com/mixxxdj/mixxx/pull/4440) - [#4430](https://github.com/mixxxdj/mixxx/pull/4430) - [#4435](https://github.com/mixxxdj/mixxx/pull/4435) - [#4443](https://github.com/mixxxdj/mixxx/pull/4443) - [#4439](https://github.com/mixxxdj/mixxx/pull/4439) - [#4442](https://github.com/mixxxdj/mixxx/pull/4442) - [#4438](https://github.com/mixxxdj/mixxx/pull/4438) - [#4449](https://github.com/mixxxdj/mixxx/pull/4449) - [#4451](https://github.com/mixxxdj/mixxx/pull/4451) - [#4453](https://github.com/mixxxdj/mixxx/pull/4453) - [#4478](https://github.com/mixxxdj/mixxx/pull/4478) - [#4479](https://github.com/mixxxdj/mixxx/pull/4479) - [#4506](https://github.com/mixxxdj/mixxx/pull/4506) - [#4556](https://github.com/mixxxdj/mixxx/pull/4556) - [#4554](https://github.com/mixxxdj/mixxx/pull/4554) - [#4555](https://github.com/mixxxdj/mixxx/pull/4555) - [#4552](https://github.com/mixxxdj/mixxx/pull/4552) - [#4549](https://github.com/mixxxdj/mixxx/pull/4549) - [#4788](https://github.com/mixxxdj/mixxx/pull/4788) - [#4620](https://github.com/mixxxdj/mixxx/pull/4620) - [#4641](https://github.com/mixxxdj/mixxx/pull/4641) - [#4649](https://github.com/mixxxdj/mixxx/pull/4649) - [#4679](https://github.com/mixxxdj/mixxx/pull/4679) - [#10928](https://github.com/mixxxdj/mixxx/pull/10928) - [#10927](https://github.com/mixxxdj/mixxx/pull/10927) - [#11063](https://github.com/mixxxdj/mixxx/pull/11063) - [#11153](https://github.com/mixxxdj/mixxx/pull/11153) - [#11180](https://github.com/mixxxdj/mixxx/pull/11180) [#11167](https://github.com/mixxxdj/mixxx/issues/11167) - [#11181](https://github.com/mixxxdj/mixxx/pull/11181) - [#11266](https://github.com/mixxxdj/mixxx/pull/11266) - [#11312](https://github.com/mixxxdj/mixxx/pull/11312) - [#11389](https://github.com/mixxxdj/mixxx/pull/11389) - [#4393](https://github.com/mixxxdj/mixxx/pull/4393) - [#12268](https://github.com/mixxxdj/mixxx/pull/12268) - [#12240](https://github.com/mixxxdj/mixxx/pull/12240) - [#12056](https://github.com/mixxxdj/mixxx/pull/12056) - [#12430](https://github.com/mixxxdj/mixxx/pull/12430) - [#12029](https://github.com/mixxxdj/mixxx/pull/12029) -* Allow to compile with precompiled headers, enabled on Windows by default - [#12381](https://github.com/mixxxdj/mixxx/pull/12381) - [#12080](https://github.com/mixxxdj/mixxx/pull/12080) - [#12410](https://github.com/mixxxdj/mixxx/pull/12410) - [#12360](https://github.com/mixxxdj/mixxx/pull/12360) - [#12352](https://github.com/mixxxdj/mixxx/pull/12352) - [#12346](https://github.com/mixxxdj/mixxx/pull/12346) - [#12338](https://github.com/mixxxdj/mixxx/pull/12338) - [#12327](https://github.com/mixxxdj/mixxx/pull/12327) - [#12308](https://github.com/mixxxdj/mixxx/pull/12308) - [#12303](https://github.com/mixxxdj/mixxx/pull/12303) - [#12302](https://github.com/mixxxdj/mixxx/pull/12302) - [#12298](https://github.com/mixxxdj/mixxx/pull/12298) - [#12229](https://github.com/mixxxdj/mixxx/pull/12229) - [#12079](https://github.com/mixxxdj/mixxx/pull/12079) - [#12058](https://github.com/mixxxdj/mixxx/pull/12058) - [#12037](https://github.com/mixxxdj/mixxx/pull/12037) - [#12024](https://github.com/mixxxdj/mixxx/pull/12024) - [#12025](https://github.com/mixxxdj/mixxx/pull/12025) -* Made use of inclusive language - [#2894](https://github.com/mixxxdj/mixxx/pull/2894) - [#3868](https://github.com/mixxxdj/mixxx/pull/3868) - [#11017](https://github.com/mixxxdj/mixxx/pull/11017) - [#11968](https://github.com/mixxxdj/mixxx/pull/11968) - [#11959](https://github.com/mixxxdj/mixxx/pull/11959) - [#11942](https://github.com/mixxxdj/mixxx/pull/11942) -* Improve the unit tests - [#2938](https://github.com/mixxxdj/mixxx/pull/2938) - [#2980](https://github.com/mixxxdj/mixxx/pull/2980) - [#3006](https://github.com/mixxxdj/mixxx/pull/3006) - [#4345](https://github.com/mixxxdj/mixxx/pull/4345) -* Logging: Add support for `QT_MESSAGE_PATTERN` environment variable - [#3204](https://github.com/mixxxdj/mixxx/pull/3204) - [#3518](https://github.com/mixxxdj/mixxx/pull/3518) -* Colored logging console output - [#3197](https://github.com/mixxxdj/mixxx/pull/3197) -* Improve command line argument parser - [#3640](https://github.com/mixxxdj/mixxx/pull/3640) - [#3962](https://github.com/mixxxdj/mixxx/pull/3962) - [#4022](https://github.com/mixxxdj/mixxx/pull/4022) - [#4036](https://github.com/mixxxdj/mixxx/pull/4036) - [#4170](https://github.com/mixxxdj/mixxx/pull/4170) - [#4057](https://github.com/mixxxdj/mixxx/pull/4057) -* Improve message when dealing with macOS sandbox [#4018](https://github.com/mixxxdj/mixxx/pull/4018) [#10373](https://github.com/mixxxdj/mixxx/issues/10373) -* Moved contribution guidelines into our git repository [#2699](https://github.com/mixxxdj/mixxx/pull/2699) -* Make windows_buildenv.bat work with spaces in path [#4896](https://github.com/mixxxdj/mixxx/pull/4896) -* Automate deployment of CHANGELOG to the manual - [#4180](https://github.com/mixxxdj/mixxx/pull/4180) - [#4256](https://github.com/mixxxdj/mixxx/pull/4256) - [#4208](https://github.com/mixxxdj/mixxx/pull/4208) - [#4228](https://github.com/mixxxdj/mixxx/pull/4228) - [#4222](https://github.com/mixxxdj/mixxx/pull/4222) * Always show tooltips in preferences [#4198](https://github.com/mixxxdj/mixxx/pull/4198) [#9716](https://github.com/mixxxdj/mixxx/issues/9716) -* Allow to build Mixxx on Linux without ALSA, working around a Pipewire bug [#4242](https://github.com/mixxxdj/mixxx/pull/4242) -* Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer - [#4251](https://github.com/mixxxdj/mixxx/pull/4251) - [#4252](https://github.com/mixxxdj/mixxx/pull/4252) [#10500](https://github.com/mixxxdj/mixxx/issues/10500) -* DlgTrackInfo: Fixed a SIGSEGV after a debug assertion [#4316](https://github.com/mixxxdj/mixxx/pull/4316) -* Library Preferences: Added link to settings files info in the manual [#4367](https://github.com/mixxxdj/mixxx/pull/4367) -* Use rounded Mixxx Icon for MacOS to follow Apples style guide [#4545](https://github.com/mixxxdj/mixxx/pull/4545) -* Show native path separators in command line argument --help [#4657](https://github.com/mixxxdj/mixxx/pull/4657) -* Add 13 new translation languages [#4785](https://github.com/mixxxdj/mixxx/pull/4785) [#9702](https://github.com/mixxxdj/mixxx/issues/9702) -* Fix translation related warnings [#11539](https://github.com/mixxxdj/mixxx/pull/11539) -* Remove redundant `cmn` translation in favor of `zh` [#11793](https://github.com/mixxxdj/mixxx/pull/11793) [#11791](https://github.com/mixxxdj/mixxx/issues/11791) -* Improve Vinyl control quality indicator [#3279](https://github.com/mixxxdj/mixxx/pull/3279) -* Track info dialog: Apply pending changes also when saving via hotkey [#4562](https://github.com/mixxxdj/mixxx/pull/4562) [#10612](https://github.com/mixxxdj/mixxx/issues/10612) -* Track info dialog: Fix crash when trying to scale 0.0 BPM [#4587](https://github.com/mixxxdj/mixxx/pull/4587) [#1955853](https://github.com/mixxxdj/mixxx/issues/10625) -* Track info dialog: Add track color selector [#11436](https://github.com/mixxxdj/mixxx/pull/11436) [#10324](https://github.com/mixxxdj/mixxx/issues/10324) -* Tweak remove/hide track confirm message to match confirm exit message [#4577](https://github.com/mixxxdj/mixxx/pull/4577) [#1947992](https://github.com/mixxxdj/mixxx/issues/10577) -* Implement Un-eject by pressing eject again - [#4668](https://github.com/mixxxdj/mixxx/pull/4668) - [#11246](https://github.com/mixxxdj/mixxx/pull/11246) * Preferences > Effects: Fix Tab key navigation / UX [#4702](https://github.com/mixxxdj/mixxx/pull/4702) [#10579](https://github.com/mixxxdj/mixxx/issues/10579) * Preferences: Added option to keep deck playing on track load [#10944](https://github.com/mixxxdj/mixxx/pull/10944) [#10548](https://github.com/mixxxdj/mixxx/issues/10548) * Preferences: always enable Alt shortcut keys [#11145](https://github.com/mixxxdj/mixxx/pull/11145) [#10413](https://github.com/mixxxdj/mixxx/issues/10413) @@ -1163,187 +670,14 @@ * macOS: set preferences dialog title to the selected page title [#11696](https://github.com/mixxxdj/mixxx/pull/11696) * macOS: fix the preferences menu and opening the settings directory [#11679](https://github.com/mixxxdj/mixxx/pull/11679) * macOS: fix slider styling in preferences dialog [#11647](https://github.com/mixxxdj/mixxx/pull/11647) +* Preferences Vinyl control Improve quality indicator [#3279](https://github.com/mixxxdj/mixxx/pull/3279) * Preferences > Mixer: apply & save settings only in slotApply(), fix bugs, improve UX [#11527](https://github.com/mixxxdj/mixxx/pull/11527) * Preferences > Mixer: fix reset of EQ auto-reset checkbox [#11818](https://github.com/mixxxdj/mixxx/pull/11818) [#11817](https://github.com/mixxxdj/mixxx/issues/11817) * Preferences > Interface: avoid unneeded skin reload, clean up [#11853](https://github.com/mixxxdj/mixxx/pull/11853) * Preferences > Hardware: sound tab order [#11926](https://github.com/mixxxdj/mixxx/pull/11926) -* macOS: Add better rasterization of program icon [#10958](https://github.com/mixxxdj/mixxx/pull/10958) -* make decks' xfader assignment persistent [#12074](https://github.com/mixxxdj/mixxx/pull/12074) [#10122](https://github.com/mixxxdj/mixxx/issues/10122) -* Allow building Mixxx on OpenBSD [#11083](https://github.com/mixxxdj/mixxx/pull/11083) -* Fix autogenerated metainfo [#11383](https://github.com/mixxxdj/mixxx/pull/11383) -* Fix setting the wrong default cue color [#11554](https://github.com/mixxxdj/mixxx/pull/11554) [#11260](https://github.com/mixxxdj/mixxx/issues/11260) -* (fix) linux launcher: add missing quote to command line [#11826](https://github.com/mixxxdj/mixxx/pull/11826) [#11820](https://github.com/mixxxdj/mixxx/issues/11820) -* Delete obsolete -platform xcb args [#11805](https://github.com/mixxxdj/mixxx/pull/11805) -* A small fix to .desktop file that improves Gnome dock integration on [#12424](https://github.com/mixxxdj/mixxx/pull/12424) -* Replace Launchpad bugs by GitHub issues - [#10850](https://github.com/mixxxdj/mixxx/pull/10850) - [#10865](https://github.com/mixxxdj/mixxx/pull/10865) - [#4877](https://github.com/mixxxdj/mixxx/pull/4877) - [#11270](https://github.com/mixxxdj/mixxx/pull/11270) - [#11377](https://github.com/mixxxdj/mixxx/pull/11377) - [#11379](https://github.com/mixxxdj/mixxx/pull/11379) -* Misc. refactorings - [#3154](https://github.com/mixxxdj/mixxx/pull/3154) - [#2870](https://github.com/mixxxdj/mixxx/pull/2870) - [#2872](https://github.com/mixxxdj/mixxx/pull/2872) - [#2978](https://github.com/mixxxdj/mixxx/pull/2978) - [#2969](https://github.com/mixxxdj/mixxx/pull/2969) - [#3016](https://github.com/mixxxdj/mixxx/pull/3016) - [#3320](https://github.com/mixxxdj/mixxx/pull/3320) - [#3356](https://github.com/mixxxdj/mixxx/pull/3356) - [#3453](https://github.com/mixxxdj/mixxx/pull/3453) - [#3487](https://github.com/mixxxdj/mixxx/pull/3487) - [#3558](https://github.com/mixxxdj/mixxx/pull/3558) - [#3685](https://github.com/mixxxdj/mixxx/pull/3685) - [#3741](https://github.com/mixxxdj/mixxx/pull/3741) - [#3744](https://github.com/mixxxdj/mixxx/pull/3744) - [#3753](https://github.com/mixxxdj/mixxx/pull/3753) - [#3761](https://github.com/mixxxdj/mixxx/pull/3761) - [#3834](https://github.com/mixxxdj/mixxx/pull/3834) - [#3842](https://github.com/mixxxdj/mixxx/pull/3842) - [#3853](https://github.com/mixxxdj/mixxx/pull/3853) - [#3874](https://github.com/mixxxdj/mixxx/pull/3874) - [#3883](https://github.com/mixxxdj/mixxx/pull/3883) - [#3922](https://github.com/mixxxdj/mixxx/pull/3922) - [#3947](https://github.com/mixxxdj/mixxx/pull/3947) - [#3974](https://github.com/mixxxdj/mixxx/pull/3974) - [#4024](https://github.com/mixxxdj/mixxx/pull/4024) - [#4026](https://github.com/mixxxdj/mixxx/pull/4026) - [#4034](https://github.com/mixxxdj/mixxx/pull/4034) - [#4038](https://github.com/mixxxdj/mixxx/pull/4038) - [#4039](https://github.com/mixxxdj/mixxx/pull/4039) - [#4043](https://github.com/mixxxdj/mixxx/pull/4043) - [#4053](https://github.com/mixxxdj/mixxx/pull/4053) - [#4072](https://github.com/mixxxdj/mixxx/pull/4072) - [#4097](https://github.com/mixxxdj/mixxx/pull/4097) - [#4096](https://github.com/mixxxdj/mixxx/pull/4096) - [#4118](https://github.com/mixxxdj/mixxx/pull/4118) - [#4130](https://github.com/mixxxdj/mixxx/pull/4130) - [#4129](https://github.com/mixxxdj/mixxx/pull/4129) - [#4109](https://github.com/mixxxdj/mixxx/pull/4109) - [#4106](https://github.com/mixxxdj/mixxx/pull/4106) - [#4131](https://github.com/mixxxdj/mixxx/pull/4131) - [#4140](https://github.com/mixxxdj/mixxx/pull/4140) - [#3032](https://github.com/mixxxdj/mixxx/pull/3032) - [#4110](https://github.com/mixxxdj/mixxx/pull/4110) - [#4173](https://github.com/mixxxdj/mixxx/pull/4173) - [#4178](https://github.com/mixxxdj/mixxx/pull/4178) - [#4194](https://github.com/mixxxdj/mixxx/pull/4194) - [#4197](https://github.com/mixxxdj/mixxx/pull/4197) - [#4190](https://github.com/mixxxdj/mixxx/pull/4190) - [#4212](https://github.com/mixxxdj/mixxx/pull/4212) - [#4223](https://github.com/mixxxdj/mixxx/pull/4223) - [#4238](https://github.com/mixxxdj/mixxx/pull/4238) - [#4236](https://github.com/mixxxdj/mixxx/pull/4236) - [#4320](https://github.com/mixxxdj/mixxx/pull/4320) - [#4325](https://github.com/mixxxdj/mixxx/pull/4325) - [#4203](https://github.com/mixxxdj/mixxx/pull/4203) - [#3861](https://github.com/mixxxdj/mixxx/pull/3861) - [#3514](https://github.com/mixxxdj/mixxx/pull/3514) - [#3274](https://github.com/mixxxdj/mixxx/pull/3274) - [#3182](https://github.com/mixxxdj/mixxx/pull/3182) - [#4343](https://github.com/mixxxdj/mixxx/pull/4343) - [#4358](https://github.com/mixxxdj/mixxx/pull/4358) - [#4388](https://github.com/mixxxdj/mixxx/pull/4388) - [#4427](https://github.com/mixxxdj/mixxx/pull/4427) - [#4341](https://github.com/mixxxdj/mixxx/pull/4341) - [#4473](https://github.com/mixxxdj/mixxx/pull/4473) - [#4464](https://github.com/mixxxdj/mixxx/pull/4464) - [#4481](https://github.com/mixxxdj/mixxx/pull/4481) - [#4527](https://github.com/mixxxdj/mixxx/pull/4527) - [#4534](https://github.com/mixxxdj/mixxx/pull/4534) - [#4537](https://github.com/mixxxdj/mixxx/pull/4537) - [#4539](https://github.com/mixxxdj/mixxx/pull/4539) - [#4541](https://github.com/mixxxdj/mixxx/pull/4541) - [#4543](https://github.com/mixxxdj/mixxx/pull/4543) - [#4546](https://github.com/mixxxdj/mixxx/pull/4546) - [#4542](https://github.com/mixxxdj/mixxx/pull/4542) - [#4559](https://github.com/mixxxdj/mixxx/pull/4559) - [#4574](https://github.com/mixxxdj/mixxx/pull/4574) - [#4581](https://github.com/mixxxdj/mixxx/pull/4581) - [#4582](https://github.com/mixxxdj/mixxx/pull/4582) - [#4598](https://github.com/mixxxdj/mixxx/pull/4598) - [#4596](https://github.com/mixxxdj/mixxx/pull/4596) - [#4592](https://github.com/mixxxdj/mixxx/pull/4592) - [#4784](https://github.com/mixxxdj/mixxx/pull/4784) - [#4604](https://github.com/mixxxdj/mixxx/pull/4604) - [#4603](https://github.com/mixxxdj/mixxx/pull/4603) - [#4611](https://github.com/mixxxdj/mixxx/pull/4611) - [#4605](https://github.com/mixxxdj/mixxx/pull/4605) - [#4583](https://github.com/mixxxdj/mixxx/pull/4583) - [#4636](https://github.com/mixxxdj/mixxx/pull/4636) - [#4644](https://github.com/mixxxdj/mixxx/pull/4644) - [#4653](https://github.com/mixxxdj/mixxx/pull/4653) - [#4655](https://github.com/mixxxdj/mixxx/pull/4655) - [#4609](https://github.com/mixxxdj/mixxx/pull/4609) - [#4647](https://github.com/mixxxdj/mixxx/pull/4647) - [#4660](https://github.com/mixxxdj/mixxx/pull/4660) - [#4663](https://github.com/mixxxdj/mixxx/pull/4663) - [#4661](https://github.com/mixxxdj/mixxx/pull/4661) - [#4670](https://github.com/mixxxdj/mixxx/pull/4670) - [#4672](https://github.com/mixxxdj/mixxx/pull/4672) - [#4674](https://github.com/mixxxdj/mixxx/pull/4674) - [#4618](https://github.com/mixxxdj/mixxx/pull/4618) - [#4690](https://github.com/mixxxdj/mixxx/pull/4690) - [#4724](https://github.com/mixxxdj/mixxx/pull/4724) - [#4730](https://github.com/mixxxdj/mixxx/pull/4730) - [#4731](https://github.com/mixxxdj/mixxx/pull/4731) - [#4732](https://github.com/mixxxdj/mixxx/pull/4732) - [#4728](https://github.com/mixxxdj/mixxx/pull/4728) - [#4737](https://github.com/mixxxdj/mixxx/pull/4737) - [#4739](https://github.com/mixxxdj/mixxx/pull/4739) - [#4745](https://github.com/mixxxdj/mixxx/pull/4745) - [#4765](https://github.com/mixxxdj/mixxx/pull/4765) - [#4767](https://github.com/mixxxdj/mixxx/pull/4767) - [#4797](https://github.com/mixxxdj/mixxx/pull/4797) - [#4782](https://github.com/mixxxdj/mixxx/pull/4782) - [#4800](https://github.com/mixxxdj/mixxx/pull/4800) - [#4791](https://github.com/mixxxdj/mixxx/pull/4791) - [#4848](https://github.com/mixxxdj/mixxx/pull/4848) - [#4856](https://github.com/mixxxdj/mixxx/pull/4856) - [#4860](https://github.com/mixxxdj/mixxx/pull/4860) - [#4867](https://github.com/mixxxdj/mixxx/pull/4867) - [#4888](https://github.com/mixxxdj/mixxx/pull/4888) - [#4908](https://github.com/mixxxdj/mixxx/pull/4908) - [#4903](https://github.com/mixxxdj/mixxx/pull/4903) - [#8818](https://github.com/mixxxdj/mixxx/pull/8818) - [#4907](https://github.com/mixxxdj/mixxx/pull/4907) - [#10897](https://github.com/mixxxdj/mixxx/pull/10897) - [#10964](https://github.com/mixxxdj/mixxx/pull/10964) - [#10963](https://github.com/mixxxdj/mixxx/pull/10963) - [#11048](https://github.com/mixxxdj/mixxx/pull/11048) - [#11149](https://github.com/mixxxdj/mixxx/pull/11149) - [#11169](https://github.com/mixxxdj/mixxx/pull/11169) - [#11318](https://github.com/mixxxdj/mixxx/pull/11318) - [#11331](https://github.com/mixxxdj/mixxx/pull/11331) - [#11338](https://github.com/mixxxdj/mixxx/pull/11338) - [#4651](https://github.com/mixxxdj/mixxx/pull/4651) - [#11336](https://github.com/mixxxdj/mixxx/pull/11336) [#11282](https://github.com/mixxxdj/mixxx/issues/11282) - [#11421](https://github.com/mixxxdj/mixxx/pull/11421) - [#11431](https://github.com/mixxxdj/mixxx/pull/11431) - [#11434](https://github.com/mixxxdj/mixxx/pull/11434) - [#11301](https://github.com/mixxxdj/mixxx/pull/11301) - [#11688](https://github.com/mixxxdj/mixxx/pull/11688) - [#11685](https://github.com/mixxxdj/mixxx/pull/11685) - [#12000](https://github.com/mixxxdj/mixxx/pull/12000) - [#12003](https://github.com/mixxxdj/mixxx/pull/12003) - [#11684](https://github.com/mixxxdj/mixxx/pull/11684) - [#12031](https://github.com/mixxxdj/mixxx/pull/12031) - [#12008](https://github.com/mixxxdj/mixxx/pull/12008) - [#12054](https://github.com/mixxxdj/mixxx/pull/12054) - [#11768](https://github.com/mixxxdj/mixxx/pull/11768) - [#11893](https://github.com/mixxxdj/mixxx/pull/11893) - [#11636](https://github.com/mixxxdj/mixxx/pull/11636) - [#12026](https://github.com/mixxxdj/mixxx/pull/12026) - [#12230](https://github.com/mixxxdj/mixxx/pull/12230) - [#12375](https://github.com/mixxxdj/mixxx/pull/12375) - [#11619](https://github.com/mixxxdj/mixxx/pull/11619) - [#11917](https://github.com/mixxxdj/mixxx/pull/11917) - [#11936](https://github.com/mixxxdj/mixxx/pull/11936) - [#12033](https://github.com/mixxxdj/mixxx/pull/12033) - [#12263](https://github.com/mixxxdj/mixxx/pull/12263) - [#12212](https://github.com/mixxxdj/mixxx/pull/12212) - [#12066](https://github.com/mixxxdj/mixxx/pull/12066) [#12065](https://github.com/mixxxdj/mixxx/issues/12065) +* Library Preferences: Added link to settings files info in the manual [#4367](https://github.com/mixxxdj/mixxx/pull/4367) +* Controller preferences: add search bars to mapping tables [#11165](https://github.com/mixxxdj/mixxx/pull/11165) +* Add 13 new translation languages [#4785](https://github.com/mixxxdj/mixxx/pull/4785) [#9702](https://github.com/mixxxdj/mixxx/issues/9702) ### Known issues diff --git a/res/linux/org.mixxx.Mixxx.metainfo.xml b/res/linux/org.mixxx.Mixxx.metainfo.xml index 1f58b367c36..368f410e692 100644 --- a/res/linux/org.mixxx.Mixxx.metainfo.xml +++ b/res/linux/org.mixxx.Mixxx.metainfo.xml @@ -96,7 +96,7 @@ Do not edit it manually. --> - +

Cover Art @@ -298,20 +298,6 @@ Don't store or update metadata of missing tracks in the Mixxx database to prevent inconsistencies with file tags #3811 -

  • - Code improvements and minor bug fixes when importing track metadata - #3851 - #3858 - #3860 - #3866 - #3871 - #3870 - #3924 - #4368 - #3906 - #3998 - #11031 -
  • Update library schema to 37 for synchronizing file modified time with track source on metadata import/export #3978 @@ -392,6 +378,18 @@ #12321 #12064
  • +
  • + Tracks table: Fix initial track selection with BackTab + #11130 +
  • +
  • + Tracks table: Try to restore selection position after track removal + #11196 +
  • +
  • + Tracks table: Remove parenthesis from play counter display + #11357 +
  • Re-enable shortcuts after editing controls #4360 @@ -502,18 +500,6 @@ #3212 #11842
  • -
  • - Tracks table: Fix initial track selection with BackTab - #11130 -
  • -
  • - Tracks table: Try to restore selection position after track removal - #11196 -
  • -
  • - Tracks table: Remove parenthesis from play counter display - #11357 -
  • Remove/hide tracks dialog: Add 'Don't ask again' checkbox #11239 @@ -623,48 +609,14 @@ #11948
  • - Track Properties: Don't clear unsaved properties when updating star rating - #11565 - #11540 -
  • -
  • - Track Properties: Focus Double-clicked property field for edit - #11764 - #11804 - #11802 -
  • -
  • - Track Properties: Display the samplerate - #12418 + Fix setting the wrong default cue color + #11554 + #11260
  • - Refactoring of library code - #2756 - #2717 - #2715 - #2810 - #2900 - #2906 - #2925 - #3017 - #3475 - #4164 - #4152 - #4162 - #4101 - #4214 - #4280 - #4429 - #4477 - #4475 - #4480 - #4633 - #4837 - #4864 - #4893 - #10861 - #10871 - #12082 + Tweak remove/hide track confirm message to match confirm exit message + #4577 + #1947992
  • @@ -810,6 +762,12 @@ #11760 #11545 +

  • + Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer + #4251 + #4252 + #10500 +
  • Audio Engine @@ -940,94 +898,9 @@ #12223

  • - Refactoring of beatgrid/beatmap code - #4044 - #4048 - #4045 - #4049 - #4092 - #4094 - #4104 - #4103 - #4127 - #4099 - #4071 - #4184 - #4234 - #4233 - #4258 - #4259 - #4263 - #4272 - #4268 - #4270 - #4342 - #4336 - #4409 - #4361 - #4488 - #4411 - #4498 - #4500 - #4499 - #4510 - #4607 - #11263 - #12368 - #12349 - #12071 - #12016 -
  • -
  • - Refactoring of audio engine code - #2762 - #2801 - #2885 - #2997 - #3266 - #4064 - #4065 - #4066 - #4069 - #4074 - #4075 - #4076 - #4078 - #4082 - #4077 - #4080 - #4086 - #4089 - #4090 - #4079 - #4091 - #4083 - #4095 - #4081 - #4061 - #4105 - #4183 - #4186 - #4189 - #4216 - #4221 - #4219 - #4191 - #4232 - #4231 - #4229 - #4257 - #4266 - #4217 - #1966 - #4535 - #4770 - #4771 - #4589 - #1717 - #4852 - #10835 - #10843 + make decks' xfader assignment persistent + #12074 + #10122
  • @@ -1272,10 +1145,6 @@ #10540 #10539 -

  • - Controller preferences: add search bars to mapping tables - #11165 -
  • Added TypeScript declarations for engine and controller scripting API to improve IDE code completion during mapping developent #4759 @@ -1291,42 +1160,6 @@ #11474 #11473
  • -
  • - Prepare code for upcoming ES6 based controller mapping system with module support - #2682 - #2868 - #2875 - #2936 - #2946 - #11953 -
  • -
  • - Other refactorings of controller code - #2904 - #3308 - #3463 - #3634 - #3635 - #3636 - #3676 - #3880 - #4085 - #4524 - #4533 - #4521 - #4585 - #4692 - #4566 - #4599 - #4624 - #4627 - #4738 - #11160 - #11662 - #11622 - #12400 - #12468 -
  • feat(control): Do not show CO aliases in developer tools window #12265 @@ -1378,67 +1211,18 @@ Repeat certain control actions if keyboard key is held #12474
  • +
  • + Logging: Add support for + QT_MESSAGE_PATTERN + environment variable + #3204 + #3518 +
  • Skins

      -
    • - Add experimental QML user interface - #3345 - #3446 - #3854 - #3891 - #2874 - #3915 - #3894 - #3920 - #3907 - #3925 - #3928 - #3932 - #3911 - #3937 - #3940 - #3913 - #3950 - #3919 - #3955 - #3957 - #3961 - #3952 - #3963 - #3971 - #3959 - #3972 - #3992 - #4003 - #4004 - #3999 - #4000 - #4067 - #4068 - #4060 - #4037 - #4414 - #3934 - #4117 - #4327 - #4339 - #4568 - #4576 - #4591 - #4616 - #4567 - #4629 - #4643 - #4650 - #4654 - #4673 - #4680 - #4681 - #4736 -
    • Add harmonic keywheel window #1695 @@ -1479,6 +1263,10 @@ #4398 #10557
    • +
    • + Shade: Audio Latency meter fix + #11601 +
    • Fix switching from Shade to other skins #4421 @@ -1590,10 +1378,6 @@ #11975 #11957
    • -
    • - Shade: Audio Latency meter fix - #11601 -
    • Fix 500ms blocking of the whole event loop, when holding mouse down on title bar on Windows #12359 @@ -1635,6 +1419,11 @@ Label #12004
    • +
    • + Implement Un-eject by pressing eject again + #4668 + #11246 +

    Waveforms and GL Widgets @@ -1984,500 +1773,78 @@ #12095

  • - macOS packaging: Enable app sandbox in unsigned 2.4 builds too + macOS packaging: Enable app sandbox and fix related issues #12138 -
  • -
  • - macOS packaging: Fix regression that caused - Sandbox::canAccess - to fail #12457 #12137 #11552 -
  • -
  • - macOS packaging: Fix running macOS bundle from development build directory - #12099 -
  • -
  • - Hide applocal group from Windows installer - #12118 - #11992 -
  • - -

    - Other -

    -
      -
    • - Improve and fix the CMake build system - #2943 - #3046 - #3114 - #3471 - #3765 - #3849 - #3876 - #4098 - #4113 - #4166 - #4185 - #4187 - #4351 - #4423 - #4422 - #4497 - #4514 - #3550 - #4861 - #10855 - #10896 - #10926 - #11368 - #11144 - #4866 - #12442 - #12351 - #12288 - #12197 - #11754 - #11741 - #12518 -
    • -
    • - Improve GitHub workflow continuous integration - #2937 - #3041 - #3300 - #4007 - #4084 - #4250 - #4274 - #4313 - #4226 - #4452 - #4742 - #4741 - #4795 - #4798 - #4792 - #4829 - #4822 - #4820 - #4821 - #4818 - #4819 - #4817 - #4815 - #10938 - #11038 - #11066 - #11089 - #11156 - #11193 - #11396 - #11386 - #11414 - #12502 - #12434 - #11962 - #11945 -
    • -
    • - Improve pre-commit hook - #2796 - #3923 - #3948 - #3929 - #4192 - #4282 - #4278 - #4314 - #4321 - #4374 - #4494 - #4512 - #4558 - #4580 - #4743 - #10950 - #10980 - #11078 - #10929 - #11369 - #11388 - #11889 -
    • -
    • - Improve Lauchpad PPA builds - #4277 - #4285 - #4425 - #12347 - #11729 -
    • -
    • - Update vcpkg build environment for Windows and macOS - #4163 - #4225 - #4338 - #4709 - #4717 - #10872 - #10966 - #11050 - #11074 - #11238 - #11457 - #11562 - #12370 - #11733 -
    • -
    • - Windows: Fix extraction of build environment archive when using 7-Zip - #11510 -
    • -
    • - Fix Windows warnings and enable "Treat all compiler warnings as errors" - #11607 - #12417 -
    • -
    • - Devendor libraries from the mixxx lib directory - #4201 - #4202 - #11839 - #11742 - #11841 -
    • -
    • - #4540 -
    • -
    • - Update hidapi to 0.11.2 - #4783 -
    • -
    • - Update xwax to Version 1.8 - #4597 - #10627 -
    • -
    • - Update rigtorp/SPSCQueue - #4678 -
    • -
    • - macOS: Fail early if the Xcode command line tools are not installed. - #11699 -
    • -
    • - macOS buildenv: Improve error messages for CI-only wrappers - #12382 -
    • -
    • - Improve cmake first time error reporting - #11635 - #11596 - #11597 -
    • -
    • - Manual include #include "moc_*.cpp" to speed up build - #11567 -
    • -
    • - Fix building Mixxx with SDK 11 - #11766 -
    • -
    • - chore: Fix spelling and formatting issues - #11890 -
    • -
    • - Prefer mold or lld as linker to speed up linking - #11790 - #11796 -
    • -
    • - feat: allow sanitizers on GCC as well - #12002 -
    • -
    • - Update manifest even if one job fails - #12091 -
    • -
    • - Mixxx 2.4: Fail Qt6 build not on GitHub Actions - #12293 -
    • -
    • - CMakeLists: Relativize - __FILE__ - paths by default - #12350 -
    • -
    • - Debug: Add Rust-inspired - DBG - macro for quick print-debugging - #12344 - #12383 -
    • -
    • - Migration to Qt6 (work in progress) - #4052 - #4295 - #4293 - #4294 - #4291 - #4290 - #4300 - #4302 - #4289 - #4292 - #4299 - #4051 - #4303 - #4305 - #4304 - #4306 - #4308 - #4309 - #4322 - #4373 - #4371 - #4375 - #4378 - #4381 - #4380 - #4376 - #4379 - #4372 - #4377 - #4387 - #4391 - #4392 - #4395 - #4397 - #4396 - #4402 - #4405 - #4394 - #4404 - #4401 - #4400 - #4403 - #4407 - #4399 - #4406 - #4420 - #4415 - #4417 - #4419 - #4416 - #4418 - #4547 - #4433 - #4434 - #4441 - #4445 - #4446 - #4444 - #4436 - #4437 - #4440 - #4430 - #4435 - #4443 - #4439 - #4442 - #4438 - #4449 - #4451 - #4453 - #4478 - #4479 - #4506 - #4556 - #4554 - #4555 - #4552 - #4549 - #4788 - #4620 - #4641 - #4649 - #4679 - #10928 - #10927 - #11063 - #11153 - #11180 - #11167 - #11181 - #11266 - #11312 - #11389 - #4393 - #12268 - #12240 - #12056 - #12430 - #12029 -
    • -
    • - Allow to compile with precompiled headers, enabled on Windows by default - #12381 - #12080 - #12410 - #12360 - #12352 - #12346 - #12338 - #12327 - #12308 - #12303 - #12302 - #12298 - #12229 - #12079 - #12058 - #12037 - #12024 - #12025 -
    • -
    • - Made use of inclusive language - #2894 - #3868 - #11017 - #11968 - #11959 - #11942 -
    • -
    • - Improve the unit tests - #2938 - #2980 - #3006 - #4345 -
    • -
    • - Logging: Add support for - QT_MESSAGE_PATTERN - environment variable - #3204 - #3518 -
    • -
    • - Colored logging console output - #3197 -
    • -
    • - Improve command line argument parser - #3640 - #3962 - #4022 - #4036 - #4170 - #4057 -
    • -
    • - Improve message when dealing with macOS sandbox #4018 #10373
    • - Moved contribution guidelines into our git repository - #2699 -
    • -
    • - Make windows_buildenv.bat work with spaces in path - #4896 -
    • -
    • - Automate deployment of CHANGELOG to the manual - #4180 - #4256 - #4208 - #4228 - #4222 -
    • -
    • - Always show tooltips in preferences - #4198 - #9716 -
    • -
    • - Allow to build Mixxx on Linux without ALSA, working around a Pipewire bug - #4242 -
    • -
    • - Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer - #4251 - #4252 - #10500 -
    • -
    • - DlgTrackInfo: Fixed a SIGSEGV after a debug assertion - #4316 -
    • -
    • - Library Preferences: Added link to settings files info in the manual - #4367 -
    • -
    • - Use rounded Mixxx Icon for MacOS to follow Apples style guide + macOS: Use rounded Mixxx Icon to follow Apples style guide #4545 + #10958
    • - Show native path separators in command line argument --help - #4657 -
    • -
    • - Add 13 new translation languages - #4785 - #9702 -
    • -
    • - Fix translation related warnings - #11539 + OpenBSD: Allow building Mixxx + #11083
    • - Remove redundant - cmn - translation in favor of - zh - #11793 - #11791 + Improve Linux launcher + #11826 + #11820 + #11805 + #12424
    • +
    +

    + Track properties +

    +
    • - Improve Vinyl control quality indicator - #3279 + Fixed a SIGSEGV after a debug assertion [#4316]( + https://github.com/mixxxdj/mixxx/pull/4316
    • - Track info dialog: Apply pending changes also when saving via hotkey + Apply pending changes also when saving via hotkey #4562 #10612
    • - Track info dialog: Fix crash when trying to scale 0.0 BPM + Fix crash when trying to scale 0.0 BPM #4587 #1955853
    • - Track info dialog: Add track color selector + Add track color selector #11436 #10324
    • - Tweak remove/hide track confirm message to match confirm exit message - #4577 - #1947992 + Don't clear unsaved properties when updating star rating + #11565 + #11540
    • - Implement Un-eject by pressing eject again - #4668 - #11246 + Focus Double-clicked property field for edit + #11764 + #11804 + #11802 +
    • +
    • + Display the samplerate + #12418 +
    • +
    +

    + Preferences +

    +
      +
    • + Always show tooltips in preferences + #4198 + #9716
    • Preferences > Effects: Fix Tab key navigation / UX @@ -2523,6 +1890,10 @@ macOS: fix slider styling in preferences dialog #11647
    • +
    • + Preferences Vinyl control Improve quality indicator + #3279 +
    • Preferences > Mixer: apply & save settings only in slotApply(), fix bugs, improve UX #11527 @@ -2541,214 +1912,17 @@ #11926
    • - macOS: Add better rasterization of program icon - #10958 -
    • -
    • - make decks' xfader assignment persistent - #12074 - #10122 -
    • -
    • - Allow building Mixxx on OpenBSD - #11083 -
    • -
    • - Fix autogenerated metainfo - #11383 -
    • -
    • - Fix setting the wrong default cue color - #11554 - #11260 -
    • -
    • - (fix) linux launcher: add missing quote to command line - #11826 - #11820 -
    • -
    • - Delete obsolete -platform xcb args - #11805 + Library Preferences: Added link to settings files info in the manual + #4367
    • - A small fix to .desktop file that improves Gnome dock integration on - #12424 + Controller preferences: add search bars to mapping tables + #11165
    • - Replace Launchpad bugs by GitHub issues - #10850 - #10865 - #4877 - #11270 - #11377 - #11379 -
    • -
    • - Misc. refactorings - #3154 - #2870 - #2872 - #2978 - #2969 - #3016 - #3320 - #3356 - #3453 - #3487 - #3558 - #3685 - #3741 - #3744 - #3753 - #3761 - #3834 - #3842 - #3853 - #3874 - #3883 - #3922 - #3947 - #3974 - #4024 - #4026 - #4034 - #4038 - #4039 - #4043 - #4053 - #4072 - #4097 - #4096 - #4118 - #4130 - #4129 - #4109 - #4106 - #4131 - #4140 - #3032 - #4110 - #4173 - #4178 - #4194 - #4197 - #4190 - #4212 - #4223 - #4238 - #4236 - #4320 - #4325 - #4203 - #3861 - #3514 - #3274 - #3182 - #4343 - #4358 - #4388 - #4427 - #4341 - #4473 - #4464 - #4481 - #4527 - #4534 - #4537 - #4539 - #4541 - #4543 - #4546 - #4542 - #4559 - #4574 - #4581 - #4582 - #4598 - #4596 - #4592 - #4784 - #4604 - #4603 - #4611 - #4605 - #4583 - #4636 - #4644 - #4653 - #4655 - #4609 - #4647 - #4660 - #4663 - #4661 - #4670 - #4672 - #4674 - #4618 - #4690 - #4724 - #4730 - #4731 - #4732 - #4728 - #4737 - #4739 - #4745 - #4765 - #4767 - #4797 - #4782 - #4800 - #4791 - #4848 - #4856 - #4860 - #4867 - #4888 - #4908 - #4903 - #8818 - #4907 - #10897 - #10964 - #10963 - #11048 - #11149 - #11169 - #11318 - #11331 - #11338 - #4651 - #11336 - #11282 - #11421 - #11431 - #11434 - #11301 - #11688 - #11685 - #12000 - #12003 - #11684 - #12031 - #12008 - #12054 - #11768 - #11893 - #11636 - #12026 - #12230 - #12375 - #11619 - #11917 - #11936 - #12033 - #12263 - #12212 - #12066 - #12065 + Add 13 new translation languages + #4785 + #9702

    From 12f17d2be895b376323658877b5b4f2ec2333023 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Wed, 10 Jan 2024 00:26:06 +0100 Subject: [PATCH 04/32] DlgTagFetcher: use checkboxes to choose cover and/or tags to be applied also improve how the respective status messages are shown --- src/library/dlgtagfetcher.cpp | 41 ++++++++++++++++++++++------------- src/library/dlgtagfetcher.h | 3 ++- src/library/dlgtagfetcher.ui | 24 +++++++++++++------- 3 files changed, 44 insertions(+), 24 deletions(-) diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp index 65521e454fe..a5696a0de28 100644 --- a/src/library/dlgtagfetcher.cpp +++ b/src/library/dlgtagfetcher.cpp @@ -168,8 +168,7 @@ void DlgTagFetcher::init() { btnPrev->hide(); } - connect(btnApply, &QPushButton::clicked, this, &DlgTagFetcher::applyTagsAndCover); - connect(btnApplyCover, &QPushButton::clicked, this, &DlgTagFetcher::applyCover); + connect(btnApply, &QPushButton::clicked, this, &DlgTagFetcher::apply); connect(btnQuit, &QPushButton::clicked, this, &DlgTagFetcher::quit); connect(btnRetry, &QPushButton::clicked, this, &DlgTagFetcher::retry); connect(tags, &QTreeWidget::currentItemChanged, this, &DlgTagFetcher::tagSelected); @@ -192,7 +191,9 @@ void DlgTagFetcher::init() { loadingProgressBar->setMaximum(kMaximumValueOfQProgressBar); btnRetry->setDisabled(true); - btnApplyCover->setDisabled(true); + + checkBoxTags->setChecked(true); + checkBoxCover->setChecked(true); CoverArtCache* pCache = CoverArtCache::instance(); if (pCache) { @@ -262,7 +263,6 @@ void DlgTagFetcher::loadTrack(const TrackPointer& pTrack) { btnRetry->setDisabled(true); btnApply->setDisabled(true); - btnApplyCover->setDisabled(true); statusMessage->setVisible(false); loadingProgressBar->setVisible(true); loadingProgressBar->setValue(kMinimumValueOfQProgressBar); @@ -290,7 +290,20 @@ void DlgTagFetcher::slotTrackChanged(TrackId trackId) { } } -void DlgTagFetcher::applyTagsAndCover() { +void DlgTagFetcher::apply() { + if (checkBoxTags->isChecked()) { + applyTags(); + statusMessage->setText(tr("Metadata applied")); + } + // If only/also the cover shall be updated (and the worker succeeds) the + // delayed slotWorkerCoverArtUpdated() will (over)write the status message, + // so let slot take care of updating the status message accordingly. + if (checkBoxCover->isChecked()) { + applyCover(); + } +} + +void DlgTagFetcher::applyTags() { int tagIndex = m_data.m_selectedTag; if (tagIndex < 0) { return; @@ -354,16 +367,12 @@ void DlgTagFetcher::applyTagsAndCover() { } #endif // __EXTRA_METADATA__ - applyCover(); - m_pTrack->replaceMetadataFromSource( std::move(trackMetadata), // Prevent re-import of outdated metadata from file tags // by explicitly setting the synchronization time stamp // to the current time. QDateTime::currentDateTimeUtc()); - - statusMessage->setText(tr("Metadata & Cover Art applied")); } void DlgTagFetcher::applyCover() { @@ -417,7 +426,6 @@ void DlgTagFetcher::applyCover() { void DlgTagFetcher::retry() { btnRetry->setDisabled(true); btnApply->setDisabled(true); - btnApplyCover->setDisabled(true); loadingProgressBar->setValue(kMinimumValueOfQProgressBar); m_tagFetcher.startFetch(m_pTrack); } @@ -468,7 +476,6 @@ void DlgTagFetcher::fetchTagFinished( return; } else { btnApply->setDisabled(true); - btnApplyCover->setDisabled(true); btnRetry->setDisabled(true); loadingProgressBar->setVisible(false); statusMessage->setVisible(true); @@ -542,7 +549,6 @@ void DlgTagFetcher::tagSelected() { m_pWFetchedCoverArtLabel->loadData(QByteArray()); m_pWFetchedCoverArtLabel->setCoverArt(CoverInfo{}, QPixmap(CoverArtUtils::defaultCoverLocation())); - btnApplyCover->setDisabled(true); const mixxx::musicbrainz::TrackRelease& trackRelease = m_data.m_tags[tagIndex]; QUuid selectedTagAlbumId = trackRelease.albumReleaseId; @@ -612,8 +618,6 @@ void DlgTagFetcher::slotLoadBytesToLabel(const QByteArray& data) { m_pWFetchedCoverArtLabel->loadData( m_fetchedCoverArtByteArrays); // This data loaded because for full size. m_pWFetchedCoverArtLabel->setCoverArt(coverInfo, fetchedCoverArtPixmap); - - btnApplyCover->setDisabled(data.isNull()); } void DlgTagFetcher::getCoverArt(const QString& url) { @@ -636,7 +640,14 @@ void DlgTagFetcher::slotWorkerCoverArtUpdated(const CoverInfoRelative& coverInfo qDebug() << "DlgTagFetcher::slotWorkerCoverArtUpdated" << coverInfo; m_pTrack->setCoverInfo(coverInfo); loadCurrentTrackCover(); - statusMessage->setText(tr("Selected cover art applied")); + // If 'Tags' was checked those were already applied by now. + // Update the status message now accordingly. + // Assumes the checkbox wasn't toggled since hitting Apply + if (checkBoxTags->isChecked()) { + statusMessage->setText(tr("Metadata & Cover Art applied")); + } else { + statusMessage->setText(tr("Selected cover art applied")); + } } void DlgTagFetcher::slotWorkerAskOverwrite(const QString& coverArtAbsolutePath, diff --git a/src/library/dlgtagfetcher.h b/src/library/dlgtagfetcher.h index 7e30ef21782..703e2ac3942 100644 --- a/src/library/dlgtagfetcher.h +++ b/src/library/dlgtagfetcher.h @@ -49,7 +49,8 @@ class DlgTagFetcher : public QDialog, public Ui::DlgTagFetcher { void slotNetworkResult(int httpStatus, const QString& app, const QString& message, int code); // Called when apply is pressed. void slotTrackChanged(TrackId trackId); - void applyTagsAndCover(); + void apply(); + void applyTags(); void applyCover(); void retry(); void quit(); diff --git a/src/library/dlgtagfetcher.ui b/src/library/dlgtagfetcher.ui index acb163cc4d8..b97d05d1518 100644 --- a/src/library/dlgtagfetcher.ui +++ b/src/library/dlgtagfetcher.ui @@ -296,13 +296,6 @@ - - - - Apply Cover - - - @@ -409,6 +402,20 @@ + + + + Tags + + + + + + + Cover + + + @@ -435,7 +442,8 @@ submit_tree btnPrev btnNext - btnApplyCover + checkBoxTags + checkBoxCover btnApply btnQuit btnRetry From 133028cf81a60c6a18d3ac400d551937d4c676a5 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 15 Jan 2024 01:44:05 +0100 Subject: [PATCH 05/32] DlgTagFetcher: store Tags and Cover checkbox status in config --- src/library/dlgtagfetcher.cpp | 15 +++++++++++++-- src/library/dlgtagfetcher.h | 2 ++ src/library/library_prefs.cpp | 10 ++++++++++ src/library/library_prefs.h | 4 ++++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp index a5696a0de28..8594314d95f 100644 --- a/src/library/dlgtagfetcher.cpp +++ b/src/library/dlgtagfetcher.cpp @@ -192,8 +192,10 @@ void DlgTagFetcher::init() { btnRetry->setDisabled(true); - checkBoxTags->setChecked(true); - checkBoxCover->setChecked(true); + int iApplyTags = m_pConfig->getValue(mixxx::library::prefs::kTagFetcherApplyTagsConfigKey, 1); + int iApplyCover = m_pConfig->getValue(mixxx::library::prefs::kTagFetcherApplyCoverConfigKey, 1); + checkBoxTags->setChecked(iApplyTags == 1); + checkBoxCover->setChecked(iApplyCover == 1); CoverArtCache* pCache = CoverArtCache::instance(); if (pCache) { @@ -432,14 +434,23 @@ void DlgTagFetcher::retry() { void DlgTagFetcher::quit() { m_tagFetcher.cancel(); + saveCheckBoxState(); accept(); } void DlgTagFetcher::reject() { m_tagFetcher.cancel(); + saveCheckBoxState(); accept(); } +void DlgTagFetcher::saveCheckBoxState() { + m_pConfig->set(mixxx::library::prefs::kTagFetcherApplyTagsConfigKey, + ConfigValue(checkBoxTags->isChecked())); + m_pConfig->set(mixxx::library::prefs::kTagFetcherApplyCoverConfigKey, + ConfigValue(checkBoxCover->isChecked())); +} + void DlgTagFetcher::showProgressOfConstantTask(const QString& text) { QString status = tr("%1"); loadingProgressBar->setFormat(status.arg(text)); diff --git a/src/library/dlgtagfetcher.h b/src/library/dlgtagfetcher.h index 703e2ac3942..e247e40af90 100644 --- a/src/library/dlgtagfetcher.h +++ b/src/library/dlgtagfetcher.h @@ -77,6 +77,8 @@ class DlgTagFetcher : public QDialog, public Ui::DlgTagFetcher { void getCoverArt(const QString& url); void loadCurrentTrackCover(); + void saveCheckBoxState(); + UserSettingsPointer m_pConfig; const TrackModel* const m_pTrackModel; diff --git a/src/library/library_prefs.cpp b/src/library/library_prefs.cpp index bf8265f7cb6..a10136763c8 100644 --- a/src/library/library_prefs.cpp +++ b/src/library/library_prefs.cpp @@ -89,3 +89,13 @@ const ConfigKey mixxx::library::prefs::kCoverArtFetcherQualityConfigKey = ConfigKey{ mixxx::library::prefs::kConfigGroup, QStringLiteral("CoverArtFetcherQuality")}; + +const ConfigKey mixxx::library::prefs::kTagFetcherApplyTagsConfigKey = + ConfigKey{ + mixxx::library::prefs::kConfigGroup, + QStringLiteral("TagFetcherApplyTags")}; + +const ConfigKey mixxx::library::prefs::kTagFetcherApplyCoverConfigKey = + ConfigKey{ + mixxx::library::prefs::kConfigGroup, + QStringLiteral("TagFetcherApplyCover")}; diff --git a/src/library/library_prefs.h b/src/library/library_prefs.h index b6f9f91f4f0..6750582b6d3 100644 --- a/src/library/library_prefs.h +++ b/src/library/library_prefs.h @@ -48,6 +48,10 @@ extern const ConfigKey kUseRelativePathOnExportConfigKey; extern const ConfigKey kCoverArtFetcherQualityConfigKey; +extern const ConfigKey kTagFetcherApplyTagsConfigKey; + +extern const ConfigKey kTagFetcherApplyCoverConfigKey; + } // namespace prefs } // namespace library From e97863d4f0a2ce5e7546d75ac76af0a139755ace Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 15 Jan 2024 01:59:59 +0100 Subject: [PATCH 06/32] DlgTagFetcher: disable checkboxes when there's no tags/cover to be applied --- src/library/dlgtagfetcher.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp index 8594314d95f..e02fe2f8feb 100644 --- a/src/library/dlgtagfetcher.cpp +++ b/src/library/dlgtagfetcher.cpp @@ -265,6 +265,8 @@ void DlgTagFetcher::loadTrack(const TrackPointer& pTrack) { btnRetry->setDisabled(true); btnApply->setDisabled(true); + checkBoxTags->setDisabled(true); + checkBoxCover->setDisabled(true); statusMessage->setVisible(false); loadingProgressBar->setVisible(true); loadingProgressBar->setValue(kMinimumValueOfQProgressBar); @@ -428,6 +430,8 @@ void DlgTagFetcher::applyCover() { void DlgTagFetcher::retry() { btnRetry->setDisabled(true); btnApply->setDisabled(true); + checkBoxTags->setDisabled(true); + checkBoxCover->setDisabled(true); loadingProgressBar->setValue(kMinimumValueOfQProgressBar); m_tagFetcher.startFetch(m_pTrack); } @@ -488,6 +492,8 @@ void DlgTagFetcher::fetchTagFinished( } else { btnApply->setDisabled(true); btnRetry->setDisabled(true); + checkBoxTags->setDisabled(true); + checkBoxCover->setDisabled(true); loadingProgressBar->setVisible(false); statusMessage->setVisible(true); @@ -542,16 +548,20 @@ void DlgTagFetcher::slotNetworkResult( void DlgTagFetcher::tagSelected() { if (!tags->currentItem()) { btnApply->setDisabled(true); + checkBoxTags->setDisabled(true); + checkBoxCover->setDisabled(true); return; } if (tags->currentItem()->data(0, Qt::UserRole).toInt() == kOriginalTrackIndex) { tags->currentItem()->setFlags(Qt::ItemIsEnabled); btnApply->setDisabled(true); + checkBoxTags->setDisabled(true); return; } // Allow applying the tags, regardless the cover art btnApply->setEnabled(true); + checkBoxTags->setEnabled(true); const int tagIndex = tags->currentItem()->data(0, Qt::UserRole).toInt(); m_data.m_selectedTag = tagIndex; @@ -629,6 +639,8 @@ void DlgTagFetcher::slotLoadBytesToLabel(const QByteArray& data) { m_pWFetchedCoverArtLabel->loadData( m_fetchedCoverArtByteArrays); // This data loaded because for full size. m_pWFetchedCoverArtLabel->setCoverArt(coverInfo, fetchedCoverArtPixmap); + + checkBoxCover->setEnabled(!data.isNull()); } void DlgTagFetcher::getCoverArt(const QString& url) { @@ -641,6 +653,7 @@ void DlgTagFetcher::slotCoverArtLinkNotFound() { loadingProgressBar->setVisible(false); statusMessage->setText(tr("Cover Art is not available for selected metadata")); statusMessage->setVisible(true); + checkBoxCover->setDisabled(true); } void DlgTagFetcher::slotWorkerStarted() { From 00e7cece370f85a3c305b4a33023b831fa927301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 07:37:37 +0100 Subject: [PATCH 07/32] Improve entry for sorting on macOS --- CHANGELOG.md | 2 +- res/linux/org.mixxx.Mixxx.metainfo.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dc0f382124..ab0e5ee07f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -687,7 +687,7 @@ A fix is promised in 2024-02 with Windows 11 build 26016. [#12289](https://github.com/mixxxdj/mixxx/issues/12289) [#11094](https://github.com/mixxxdj/mixxx/issues/11094) -* Different, language depending library sorting on macOS +* macOS: Library entries are now sorted using the language depending Unicode Collation Algorithm (UCA). [#12517](https://github.com/mixxxdj/mixxx/issues/12517) ## [2.3.6](https://github.com/mixxxdj/mixxx/milestone/40) (2023-08-15) diff --git a/res/linux/org.mixxx.Mixxx.metainfo.xml b/res/linux/org.mixxx.Mixxx.metainfo.xml index 368f410e692..8006682caed 100644 --- a/res/linux/org.mixxx.Mixxx.metainfo.xml +++ b/res/linux/org.mixxx.Mixxx.metainfo.xml @@ -96,7 +96,7 @@ Do not edit it manually. --> - +

    Cover Art @@ -1938,7 +1938,7 @@ #11094

  • - Different, language depending library sorting on macOS + macOS: Library entries are now sorted using the language depending Unicode Collation Algorithm (UCA). #12517
  • From 132c7dfc2b96f479816437b88a9d7478f2f02fd3 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 15 Jan 2024 16:39:37 +0100 Subject: [PATCH 08/32] keyboard sheet: fix back/rev, update links, fix grouping and layers --- res/Mixxx-Keyboard-Shortcuts.pdf | Bin 356704 -> 358634 bytes .../ic_template_keyboard_mapping_sheet.svg | 11780 ++++++++++++++-- 2 files changed, 10279 insertions(+), 1501 deletions(-) diff --git a/res/Mixxx-Keyboard-Shortcuts.pdf b/res/Mixxx-Keyboard-Shortcuts.pdf index 5c5ed480cb2cde55ec9f4402557168e7043666d1..0b1655cf2caab717af3d88678df97ddae3099c83 100644 GIT binary patch delta 71251 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 - Mixxx Keyboard mapping sheet template - - - - - + + + + Mixxx Keyboard mapping sheet template + + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts. + + + * for de-de keyboard layout - für Deutsche Tastatur + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ±§ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * for en-us keyboard layout + + + + + + + + + + + + Mixxx Keyboard mapping sheet template + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ±§ - - - - - - - Mixxx default keyboard mapping sheet *www.mixxx.org - -   - Mixxx default keyboard mapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rate - small - rate + small - - - - - - - - - - - - - - - - - - - - - - - - - - - - temp - small - temp + small - loopin    - loopout    - reloop/ exit    - QuickEffect - sync tap   - loopin    - loopout    - reloop/ exit    - QuickEffect     - 4-barloop   - loop÷ 2    - loopx 2    - headphone    - headphone    - 4-barloop   - loop÷ 2    - loopx 2    - back rev   - play cue set   - cue cue go   - xFader small   - xFader small   - fwd   - back rev   - play cue set   - fwd   - cue cue go   - talkover   - hot 1 clear   - hot 2 clear   - hot 3 clear   - hot 4 clear   - lowkill   - lowkill   - - - - - - - - - - - - - - - - - - - - - - - + Mixxx default keyboard mapping + * for en-us keyboard layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rate - small + rate + small + + + + + + + + + + + + + + + + + + + temp - small + temp + small + loopin    + loopout    + reloop/ exit    + QuickEffect + sync tap   + loopin    + loopout    + reloop/ exit    + QuickEffect     + 4-barloop   + loop÷ 2    + loopx 2    + headphone    + headphone    + 4-barloop   + loop÷ 2    + loopx 2    + play cue set   + fwd + fwd 1 + back + back 1 + cue cue go   + xFader small   + xFader small   + play cue set   + cue cue go   + talkover   + hot 1 clear   + hot 2 clear   + hot 3 clear   + hot 4 clear   + lowkill   + lowkill   + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - toggle - shuffle - skip - fade  - - Deck 1 - Deck 2 - - hot 1 clear   - hot 2 clear   - hot 3 clear   - hot 4 clear   - rate - small - rate + small - temp - small - temp + small - sync tap   - load 1eject 1   - load 2 eject 2   - - - - - - - - AutoDJ - Library - - - - - - maximize library + + + + + + + + + + + + + + + + + + + + + + + + + + + toggle + shuffle + skip + fade  + + + + hot 1 clear   + hot 2 clear   + hot 3 clear   + hot 4 clear   + rate - small + rate + small + temp - small + temp + small + sync tap   + load 1eject 1   + load 2 eject 2   + + + + + + + + + + + + + + maximize library + + Deck 1 + Deck 2 + AutoDJ + Library + + + + + + + + + + + + + + + + + + fwd + fwd 1 + back + back 1 - * for en-us keyboard layout - - Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts. - - You can make your own custom keyboard mapping: - - Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.3/chapters/advanced_topics.html#making-a-custom-keyboard-mapping - - - Complete hotkey list: - - Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.3/chapters/appendix/keyboard_mapping_table.html#appendix-keyboard - - - - - - - Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.3/chapters/appendix/mixxx_controls.html#appendix-mixxxcontrols - - - - List of controls that can be used in the keyboard mapping: - - - Custom keyboard mappings can be shared with others in the Mixxx user customizations forum: - - Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://mixxx.discourse.group/c/keyboard-mappings/12 - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + - - - - - - - + + + + + - - - - - - - - - - - + + + - - - - - - - - - - + + + + + - - Clone Originals Changes to this Originals will affect the clones.If a clone is selected (see statusbar on the bottom)In Inkscape use SHIFT+D to find the Original. If you need more clones, duplicate from the clones -   - - - - - + + + - - - - - mixxxdj/mixxxFor the packaged doc file, export the entire pageas Mixxx-Keyboard-Shortcuts.pdf (embed fonts).mixxxdj/manual (instructions for Inkscape)For the embedded SVG:- open a copy of this file- select the rectangle in layer 'res' > 'doc_file_boundary'- open Document Properties > Page tab- Custom size > Resize page to content...- delete layers 'res', 'links' 'setup_export' (everything outside the page)- save as Optimized SVGFor the downloadable PNG:Either open the cropped SVG copy and export thepage, or use this document and export the custom rangedefined by the rectangle in layer 'res' > 'doc_file_boundary',or set that range manually: x0: 0 px y0: 23 px width: 782 px height: 241 pxas PNG width: 1280 px s(height: 394 px)default encoding settings should suffice but cancertainly be tweaked. - Setup - Export + + + + + + + Clone Originals Changes to this Originals will affect the clones.If a clone is selected (see statusbar on the bottom)in Inkscape use SHIFT+D to find the Original. If you need more clones, duplicate from the clones. +   + + + + + - + mixxxdj/mixxx + Key Setup + Export + For the packaged doc file, export the entire page asMixxx-Keyboard-Shortcuts.pdf (embed fonts). + For the embedded SVG:- open a copy of this file- select the rectangle in layer 'doc_file_boundary'- open Document Properties > Page tab- Custom size > Resize page to content...- delete layers 'doc_file_boundary', 'links + header' 'setup_export' (everything outside the page)- save as Optimized SVGFor the downloadable PNG:a) open the cropped SVG copy and export the page, orb) or use this document and export the custom rangedefined by the rectangle in layer 'doc_file_boundary', orc) set that range manually: x0: 0 px y0: 23 px width: 782 px height: 241 pxExport as - PNG - width: 1280 px - height: 394 pxThe default encoding settings should suffice but cancertainly be tweaked. + mixxxdj/manual (instructions for Inkscape) - - - * for de-de keyboard layout - für Deutsche Tastatur - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ±§ - - * for en-us keyboard layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ±§ + + + + + You can make your own custom keyboard mapping: + + Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.4/chapters/advanced_topics.html#making-a-custom-keyboard-mapping + + + + Complete hotkey list: + + Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.4/chapters/appendix/keyboard_mapping_table.html#appendix-keyboard + - - + + + + + Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://manual.mixxx.org/2.4/chapters/appendix/mixxx_controls.html#appendix-mixxxcontrols + + + + List of controls that can be used in the keyboard mapping: + + + Custom keyboard mappings can be shared with others in the Mixxx user customizations forum: + + Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.https://mixxx.discourse.group/c/keyboard-mappings/12 + + Mixxx default keyboard mapping sheet *www.mixxx.org From 42ad7cf4756470a2caa2a5bbcf2785e8ea8d6aa9 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 15 Jan 2024 20:12:46 +0100 Subject: [PATCH 09/32] keyboard sheet: add track info + preview load+play + preview stop --- res/Mixxx-Keyboard-Shortcuts.pdf | Bin 358634 -> 348340 bytes .../ic_template_keyboard_mapping_sheet.svg | 11403 +++++++--------- 2 files changed, 4873 insertions(+), 6530 deletions(-) diff --git a/res/Mixxx-Keyboard-Shortcuts.pdf b/res/Mixxx-Keyboard-Shortcuts.pdf index 0b1655cf2caab717af3d88678df97ddae3099c83..89b417c3853b29fea1b3479a090d489ce43910f9 100644 GIT binary patch delta 74265 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

    `+A{epMR(23FD&B-!;p!yqXt}r(f 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 X0s`kvpV5+hE)ldeH}CH{pymGng&WXl delta 84515 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 - - Mixxx Keyboard mapping sheet template - - Mixxx Keyboard mapping sheet template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * for de-de keyboard layout - für Deutsche Tastatur - * for de-de keyboard layout - für Deutsche Tastatur - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - § - - § * for en-us keyboard layout - - * for en-us keyboard layout - - - - - - - - - - Mixxx Keyboard mapping sheet template - - - - Mixxx Keyboard mapping sheet template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mixxx default keyboard mapping - Mixxx default keyboard mapping * for en-us keyboard layout - - * for en-us keyboard layout - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rate - small - rate - smallrate + smalltemp - smalltemp + smallloopin   loopout   reloop/ exit   QuickEffectsync tap  loopin   loopout   reloop/ exit   QuickEffect    4-barloop  loop÷ 2   loopx 2   headphone   headphone   4-barloop  loop÷ 2   loopx 2   rate + small - - - - - - - - - - - - - - - - - - - playtemp - small -  cue set  fwdtemp + small - fwd 1loopin    - backloopout    - back 1reloop/ exit    - cue cue go  xFader small  xFader small  QuickEffect - playsync tap   -  cue set  cue loopin    - cue go  loopout    - talkover  reloop/ exit    - hot 1 QuickEffect     - clear  4-barloop   - hot 2 loop÷ 2    - clear  loopx 2    - hot 3 headphone    - clear  headphone    - hot 4 4-barloop   - clear  loop÷ 2    - lowkill  lowkill  loopx 2    - play cue set   - fwd - fwd 1 - back - back 1 - cue cue go   - togglexFader small   - shufflexFader small   - play cue set   - skipfade cuehot 1  cue goclear    - talkover   -  hot 1hot 2  clearclear    -  hot 2hot 3  clearclear    -  hot 3hot 4  clearclear    -  hot 4rate -  clear   - smalllowrate +kill    - smalllowkill   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - toggle - shuffle - skip - fade  - - - - hot 1 clear   - hot 2 clear   - hot 3 clear   - hot 4 clear   - rate - small - rate + small - temp - small - temp - smalltemp + small - temp + smallsync tap   - sync tap  load 1eject 1   - load 1eject 1  load 2 eject 2   - - - - - - - - load 2 eject 2   - - - - - - maximize librarymaximize library - - Deck 1 - Deck 1Deck 2 - Deck 2AutoDJ - AutoDJLibrary - - - - - - - - Library - - - - - - - - - - fwd - fwdfwd 1 - fwd 1back - backback 1back 1 - - - load + playstoppreviewtrack info - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you need more clones, duplicate from the clones. - If you need more clones, duplicate from the clones.  -   - - - - - - mixxxdj/mixxx - mixxxdj/mixxxKey Setup - Key SetupExport - ExportMixxx-Keyboard-Shortcuts.pdf (embed fonts). - Mixxx-Keyboard-Shortcuts.pdf (embed fonts).- select the rectangle in layer 'doc_file_boundary'select the rectangle in layer 'img_boundary'- delete layers 'doc_file_boundary', 'links + header' 'setup_export'delete layers 'img_boundary', 'links+header' 'setup_export'defined by the rectangle in layer 'doc_file_boundary', ordefined by the rectangle in layer 'img_boundary', or - mixxxdj/manual (instructions for Inkscape) - - mixxxdj/manual (instructions for Inkscape) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - § - § - - - - You can make your own custom keyboard mapping: - You can make your own custom keyboard mapping: - https://manual.mixxx.org/2.4/chapters/advanced_topics.html#making-a-custom-keyboard-mapping - - - https://manual.mixxx.org/2.4/chapters/advanced_topics.html#making-a-custom-keyboard-mapping - Complete hotkey list: - Complete hotkey list: - https://manual.mixxx.org/2.4/chapters/appendix/keyboard_mapping_table.html#appendix-keyboard - - - https://manual.mixxx.org/2.4/chapters/appendix/keyboard_mapping_table.html#appendix-keyboard - - - - https://manual.mixxx.org/2.4/chapters/appendix/mixxx_controls.html#appendix-mixxxcontrols - - - - https://manual.mixxx.org/2.4/chapters/appendix/mixxx_controls.html#appendix-mixxxcontrolsList of controls that can be used in the keyboard mapping: - - List of controls that can be used in the keyboard mapping: - Custom keyboard mappings can be shared with others in the Mixxx user customizations forum: - Custom keyboard mappings can be shared with others in the Mixxx user customizations forum: - https://mixxx.discourse.group/c/keyboard-mappings/12 - - - https://mixxx.discourse.group/c/keyboard-mappings/12www.mixxx.org - - + id="tspan598">www.mixxx.org From c3dc653a16024944fe10a489f1203cb7dda28b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 07:52:55 +0100 Subject: [PATCH 10/32] Add latest merges --- CHANGELOG.md | 9 +++++++-- res/linux/org.mixxx.Mixxx.metainfo.xml | 8 +++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab0e5ee07f2..24c21ef1dd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,12 @@ [#10796](https://github.com/mixxxdj/mixxx/issues/10796) [#10902](https://github.com/mixxxdj/mixxx/pull/10902) [#4851](https://github.com/mixxxdj/mixxx/pull/4851) - [#11938](https://github.com/mixxxdj/mixxx/pull/11938) [#11086](https://github.com/mixxxdj/mixxx/issues/11086) [#12041](https://github.com/mixxxdj/mixxx/pull/12041) [#12300](https://github.com/mixxxdj/mixxx/pull/12300) + [#11938](https://github.com/mixxxdj/mixxx/pull/11938) + [#11086](https://github.com/mixxxdj/mixxx/issues/11086) + [#12041](https://github.com/mixxxdj/mixxx/pull/12041) + [#12300](https://github.com/mixxxdj/mixxx/pull/12300) + [#12543](https://github.com/mixxxdj/mixxx/pull/12543) + [#12532](https://github.com/mixxxdj/mixxx/issues/12532) * CoverArtCache refactoring + Fix scrolling lag after updating Mixxx [#12009](https://github.com/mixxxdj/mixxx/pull/12009) ### Music Library @@ -646,7 +651,7 @@ ### Track properties -* Fixed a SIGSEGV after a debug assertion [#4316]( +* Fixed a SIGSEGV after a debug assertion [#4316](https://github.com/mixxxdj/mixxx/pull/4316) * Apply pending changes also when saving via hotkey [#4562](https://github.com/mixxxdj/mixxx/pull/4562) [#10612](https://github.com/mixxxdj/mixxx/issues/10612) * Fix crash when trying to scale 0.0 BPM [#4587](https://github.com/mixxxdj/mixxx/pull/4587) [#1955853](https://github.com/mixxxdj/mixxx/issues/10625) * Add track color selector [#11436](https://github.com/mixxxdj/mixxx/pull/11436) [#10324](https://github.com/mixxxdj/mixxx/issues/10324) diff --git a/res/linux/org.mixxx.Mixxx.metainfo.xml b/res/linux/org.mixxx.Mixxx.metainfo.xml index 8006682caed..ba4e9cfd020 100644 --- a/res/linux/org.mixxx.Mixxx.metainfo.xml +++ b/res/linux/org.mixxx.Mixxx.metainfo.xml @@ -96,7 +96,7 @@ Do not edit it manually. --> - +

    Cover Art @@ -127,6 +127,8 @@ #11086 #12041 #12300 + #12543 + #12532

  • CoverArtCache refactoring + Fix scrolling lag after updating Mixxx @@ -1803,8 +1805,8 @@

    • - Fixed a SIGSEGV after a debug assertion [#4316]( - https://github.com/mixxxdj/mixxx/pull/4316 + Fixed a SIGSEGV after a debug assertion + #4316
    • Apply pending changes also when saving via hotkey From 4865fc2ce571f49daf931507fee42da1f987fc37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 23:28:59 +0100 Subject: [PATCH 11/32] Improve entries Co-authored-by: ronso0 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24c21ef1dd4..2412148e90c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -469,6 +469,8 @@ * Implement Un-eject by pressing eject again [#4668](https://github.com/mixxxdj/mixxx/pull/4668) [#11246](https://github.com/mixxxdj/mixxx/pull/11246) +* Implement Un-replace by double-clicking eject + [#11246](https://github.com/mixxxdj/mixxx/pull/11246) ### Waveforms and GL Widgets From 76ee2d06b37739c60333b7ac43cdd96ba95d9548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 23:30:51 +0100 Subject: [PATCH 12/32] Use imperative --- CHANGELOG.md | 6 +++--- res/linux/org.mixxx.Mixxx.metainfo.xml | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2412148e90c..40bff92fb6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -251,7 +251,7 @@ * MP3: Log recoverable errors as info instead of warning [#4365](https://github.com/mixxxdj/mixxx/pull/4365) * MP3: Garbage detection fix [#12464](https://github.com/mixxxdj/mixxx/pull/12464) * MP3: Improve decoding precision on Windows [#11911](https://github.com/mixxxdj/mixxx/pull/11911) [#11888](https://github.com/mixxxdj/mixxx/issues/11888) -* AAC encoder: Fixed a memory leak [#4386](https://github.com/mixxxdj/mixxx/pull/4386) [#4408](https://github.com/mixxxdj/mixxx/pull/4408) +* AAC encoder: Fix a memory leak [#4386](https://github.com/mixxxdj/mixxx/pull/4386) [#4408](https://github.com/mixxxdj/mixxx/pull/4408) * Improve robustness of file type detection by considering the actual MIME type of the content. [#7970](https://github.com/mixxxdj/mixxx/issues/7970) [#4356](https://github.com/mixxxdj/mixxx/pull/4356) [#4357](https://github.com/mixxxdj/mixxx/pull/4357) * Fix file type detection when file has wrong file extension by determining the MIME type from content [#4602](https://github.com/mixxxdj/mixxx/pull/4602) @@ -295,7 +295,7 @@ [#4153](https://github.com/mixxxdj/mixxx/pull/4153) * Add halve/double controls for beatjump size [#4269](https://github.com/mixxxdj/mixxx/pull/4269) * Fix possible segfault when ejecting track [#4362](https://github.com/mixxxdj/mixxx/pull/4362) [#10497](https://github.com/mixxxdj/mixxx/issues/10497) -* Fixed an assertion when loop is before track start [#4383](https://github.com/mixxxdj/mixxx/pull/4383) [#10556](https://github.com/mixxxdj/mixxx/issues/10556) +* Fix an assertion when loop is before track start [#4383](https://github.com/mixxxdj/mixxx/pull/4383) [#10556](https://github.com/mixxxdj/mixxx/issues/10556) * Fix and improve snapping to beats in various situations [#4366](https://github.com/mixxxdj/mixxx/pull/4366) [#10541](https://github.com/mixxxdj/mixxx/issues/10541) * Allow to cancel active loops via beatloop_activate [#4328](https://github.com/mixxxdj/mixxx/pull/4328) [#9950](https://github.com/mixxxdj/mixxx/issues/9950) * Don't wipe inapplicable sound config immediately [#4544](https://github.com/mixxxdj/mixxx/pull/4544) @@ -653,7 +653,7 @@ ### Track properties -* Fixed a SIGSEGV after a debug assertion [#4316](https://github.com/mixxxdj/mixxx/pull/4316) +* Fix a SIGSEGV after a debug assertion [#4316](https://github.com/mixxxdj/mixxx/pull/4316) * Apply pending changes also when saving via hotkey [#4562](https://github.com/mixxxdj/mixxx/pull/4562) [#10612](https://github.com/mixxxdj/mixxx/issues/10612) * Fix crash when trying to scale 0.0 BPM [#4587](https://github.com/mixxxdj/mixxx/pull/4587) [#1955853](https://github.com/mixxxdj/mixxx/issues/10625) * Add track color selector [#11436](https://github.com/mixxxdj/mixxx/pull/11436) [#10324](https://github.com/mixxxdj/mixxx/issues/10324) diff --git a/res/linux/org.mixxx.Mixxx.metainfo.xml b/res/linux/org.mixxx.Mixxx.metainfo.xml index ba4e9cfd020..85885c04f10 100644 --- a/res/linux/org.mixxx.Mixxx.metainfo.xml +++ b/res/linux/org.mixxx.Mixxx.metainfo.xml @@ -96,7 +96,7 @@ Do not edit it manually. --> - +

      Cover Art @@ -701,7 +701,7 @@ #11888

    • - AAC encoder: Fixed a memory leak + AAC encoder: Fix a memory leak #4386 #4408
    • @@ -805,7 +805,7 @@ #10497
    • - Fixed an assertion when loop is before track start + Fix an assertion when loop is before track start #4383 #10556
    • @@ -1426,6 +1426,10 @@ #4668 #11246 +
    • + Implement Un-replace by double-clicking eject + #11246 +

    Waveforms and GL Widgets @@ -1805,7 +1809,7 @@

    • - Fixed a SIGSEGV after a debug assertion + Fix a SIGSEGV after a debug assertion #4316
    • From 817a4681e65e16091cc87ff1435da262d7b880a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 23:49:11 +0100 Subject: [PATCH 13/32] Install libc6 with a wildcard for the patch version to not fail in case of future updates --- .github/workflows/build-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-checks.yml b/.github/workflows/build-checks.yml index 63cbb837b7b..7a87d86d266 100644 --- a/.github/workflows/build-checks.yml +++ b/.github/workflows/build-checks.yml @@ -118,7 +118,7 @@ jobs: run: | sudo rm -f /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-jammy.list sudo apt-get update - sudo apt-get install -y --allow-downgrades libc6=2.35-0ubuntu3.5 libc6-dev=2.35-0ubuntu3.5 libstdc++6=12.3.0-1ubuntu1~22.04 libgcc-s1=12.3.0-1ubuntu1~22.04 + sudo apt-get install -y --allow-downgrades libc6=2.35* libc6-dev=2.35* libstdc++6=12.3.0-1ubuntu1~22.04 libgcc-s1=12.3.0-1ubuntu1~22.04 - name: Build # Do not abort on errors and build/check the whole project run: cmake --build . -j $(nproc) -- --keep-going From d9d5c3ef0e3a594916d6f1cf8bc4e0bd2e20994b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Jan 2024 00:19:15 +0100 Subject: [PATCH 14/32] Move Uwe Klotz to the contributor and past developer list. Thank you for all the work in the Mixxx team. --- src/dialog/dlgabout.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 6cb62610180..26e5d013a63 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -51,7 +51,6 @@ DlgAbout::DlgAbout() << "Sean Pappalardo" << "Daniel Schürmann" << "S. Brandt" - << "Uwe Klotz" << "Be" << "Sébastien Blaisot" << "ronso0" @@ -64,6 +63,7 @@ DlgAbout::DlgAbout() QStringList recentContributors; recentContributors << "Tuukka Pasanen" + << "Uwe Klotz" << "Nino MP" << "Ferran Pujol Camins" << "Josep Maria Antolín Segura" @@ -190,7 +190,8 @@ DlgAbout::DlgAbout() << "Ilkka Tuohela" << "Max Linke" << "Marcos Cardinot" - << "Nicu Badescu"; + << "Nicu Badescu" + << "Uwe Klotz"; QStringList pastContributors; pastContributors From e8059d27245c5a18ba99650011a1db85ac36920c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Jan 2024 00:26:34 +0100 Subject: [PATCH 15/32] Move Sean Pappalardo and S. Brandt to the past developer list. --- src/dialog/dlgabout.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 26e5d013a63..44dfd581673 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -48,9 +48,7 @@ DlgAbout::DlgAbout() thisReleaseDevelopers << "RJ Skerry-Ryan" << "Owen Williams" - << "Sean Pappalardo" << "Daniel Schürmann" - << "S. Brandt" << "Be" << "Sébastien Blaisot" << "ronso0" @@ -191,7 +189,9 @@ DlgAbout::DlgAbout() << "Max Linke" << "Marcos Cardinot" << "Nicu Badescu" - << "Uwe Klotz"; + << "Uwe Klotz" + << "Sean Pappalardo" + << "S. Brandt"; QStringList pastContributors; pastContributors From c323d0cd54fe007465ac68b1034819af2832081a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Jan 2024 00:41:13 +0100 Subject: [PATCH 16/32] =?UTF-8?q?Move=20Ferran=20Pujol=20Camins,=20J=C3=B6?= =?UTF-8?q?rg=20Wartenberg,=20Fredrik=20Wieczerkowski=20and=20Maarten=20de?= =?UTF-8?q?=20Boer=20to=20the=20Team=20region.=20Thank=20you=20for=20your?= =?UTF-8?q?=20great=20contributions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dialog/dlgabout.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 44dfd581673..70497a958b4 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -53,7 +53,11 @@ DlgAbout::DlgAbout() << "Sébastien Blaisot" << "ronso0" << "Jan Holthuis" - << "Nikolaus Einhauser"; + << "Nikolaus Einhauser" + << "Ferran Pujol Camins" + << "Jörg Wartenberg" + << "Fredrik Wieczerkowski" + << "Maarten de Boer"; // This list should contains all contributors committed // code to the Mixxx core within the past two years. @@ -63,7 +67,6 @@ DlgAbout::DlgAbout() << "Tuukka Pasanen" << "Uwe Klotz" << "Nino MP" - << "Ferran Pujol Camins" << "Josep Maria Antolín Segura" << "Daniel Poelzleithner" << "Stéphane Lepin" @@ -95,7 +98,6 @@ DlgAbout::DlgAbout() << "Matthieu Bouron" << "Nathan Korth" << "Kristiyan Katsarov" - << "Jörg Wartenberg" << "Sanskar Bajpai" << "Edward Millen" << "Frank Breitling" @@ -116,7 +118,6 @@ DlgAbout::DlgAbout() << "h67ma" << "tcoyvwac" << "Tobias Oszlanyi (OsZ)" - << "Fredrik Wieczerkowski" << "Viktor Gal" << "Matyáš Bobek" << "Mr. Rincewind" @@ -130,7 +131,6 @@ DlgAbout::DlgAbout() << "Matteo Gheza" << "Michael Bacarella" << "Somesh Metri" - << "Maarten de Boer" << "Doteya" << "olafklingt" << "Bilal Ahmed Karbelkar" From df18e1f1e530fee11c2d056884e299fb9a8c846f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Jan 2024 23:53:34 +0100 Subject: [PATCH 17/32] Move past contributorst to the past contributor list in the about box --- src/dialog/dlgabout.cpp | 83 ++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 70497a958b4..8175988c7ff 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -64,58 +64,20 @@ DlgAbout::DlgAbout() // New Contributors are added at the end. QStringList recentContributors; recentContributors - << "Tuukka Pasanen" << "Uwe Klotz" << "Nino MP" - << "Josep Maria Antolín Segura" << "Daniel Poelzleithner" - << "Stéphane Lepin" << "luzpaz" - << "Bernd Binder" - << "Pradyuman" - << "Nik Martin" - << "Kerrick Staley" - << "Raphael Graf" - << "Nik Martin" - << "YunQiang Su" << "Sebastian Hasler" << "Philip Gottschling" - << "Melissa" - << "Ned Haughton" << "Adam Szmigin" - << "Cristiano Lacerda" - << "Sergey Ukolov" - << "Ketan Lambat" << "Evan Dekker" - << "Edward Kigwana" - << "Simon Harst" << "Harshit Maurya" - << "Janek Fischer" - << "Stéphane Lepin" - << "Jérôme Blanchi" - << "Chris Hills" - << "David Lowenfels" - << "Matthieu Bouron" - << "Nathan Korth" << "Kristiyan Katsarov" << "Sanskar Bajpai" - << "Edward Millen" - << "Frank Breitling" << "Christian" << "Geraldo Nascimento" - << "Albert Aparicio" - << "Pierre Le Gall" - << "David Baker" - << "Justin Kourie" - << "Waylon Robertson" - << "Al Hadebe" << "Javier Vilarroig" - << "Balló György" - << "Pino Toscano" - << "Alexander Horner" - << "Michael Ehlen" - << "Alice Midori" - << "h67ma" << "tcoyvwac" << "Tobias Oszlanyi (OsZ)" << "Viktor Gal" @@ -124,15 +86,11 @@ DlgAbout::DlgAbout() << "Stefan Nürnberger" << "motific" << "Fatih Emre YILDIZ" - << "Vincent Duez-Dellac" << "Javier Vilalta" << "David Chocholatý" << "Fabian Wolter" << "Matteo Gheza" << "Michael Bacarella" - << "Somesh Metri" - << "Doteya" - << "olafklingt" << "Bilal Ahmed Karbelkar" << "Alice Psykose" << "Jakob Leifhelm" @@ -361,7 +319,46 @@ DlgAbout::DlgAbout() << "Jamie Gifford" << "Sebastian Reuße" << "Paweł Goliński" - << "beenisss"; + << "beenisss" + << "Tuukka Pasanen" + << "Josep Maria Antolín Segura" + << "Stéphane Lepin" + << "Bernd Binder" + << "Pradyuman" + << "Nik Martin" + << "Kerrick Staley" + << "Raphael Graf" + << "YunQiang Su" + << "Melissa" + << "Ned Haughton" + << "Cristiano Lacerda" + << "Ketan Lambat" + << "Edward Kigwana" + << "Simon Harst" + << "Janek Fischer" + << "Jérôme Blanchi" + << "Chris Hills" + << "David Lowenfels" + << "Matthieu Bouron" + << "Nathan Korth" + << "Edward Millen" + << "Frank Breitling" + << "Albert Aparicio" + << "Pierre Le Gall" + << "David Baker" + << "Justin Kourie" + << "Waylon Robertson" + << "Al Hadebe" + << "Balló György" + << "Pino Toscano" + << "Alexander Horner" + << "Michael Ehlen" + << "Alice Midori" + << "h67ma" + << "Vincent Duez-Dellac" + << "Somesh Metri" + << "Doteya" + << "olafklingt"; QString sectionTemplate = QString( "

      %1

      %2

      "); From f8440e635f0e186c98cbf29f48a4b11c8af57b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 15 Jan 2024 08:04:05 +0100 Subject: [PATCH 18/32] Update to lates VCPKG environment that does not install the qml folder on Windows --- tools/macos_buildenv.sh | 16 ++++++++-------- tools/windows_buildenv.bat | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tools/macos_buildenv.sh b/tools/macos_buildenv.sh index dcfdb4043f4..edabe570bfe 100755 --- a/tools/macos_buildenv.sh +++ b/tools/macos_buildenv.sh @@ -23,25 +23,25 @@ if [ -n "${BUILDENV_ARM64}" ]; then if [ -n "${BUILDENV_RELEASE}" ]; then VCPKG_TARGET_TRIPLET="arm64-osx-min1100-release" BUILDENV_BRANCH="2.4-rel" - BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-fb257ea" - BUILDENV_SHA256="394090e924ea3be63d77d19b36960538c5dbedab12bb01852791f5e7cf615753" + BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-5940548" + BUILDENV_SHA256="ffd756acac4a9c83789b4f0babff0fb3609ca2344a9420ff12f30ffa96cf34d3" else VCPKG_TARGET_TRIPLET="arm64-osx-min1100" BUILDENV_BRANCH="2.4" - BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-6b24c46" - BUILDENV_SHA256="f28cfd8b57a9fa3c73398365226e9dc3b5ac64afeb4eec20ad75c1108340c506" + BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-24ad21f" + BUILDENV_SHA256="cefbb728f42367e722a4001502bfd5a5fed6fbdbdde85c7f08b90c21bafa4915" fi else if [ -n "${BUILDENV_RELEASE}" ]; then VCPKG_TARGET_TRIPLET="x64-osx-min1012-release" BUILDENV_BRANCH="2.4-rel" - BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-fb257ea" - BUILDENV_SHA256="7fb8a6e66bbcce4e9245e015f70f68946d6ae56616aeb62b21058c57ead4232a" + BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-5940548" + BUILDENV_SHA256="cafc88109d55363e6681b949bf3943396ab6f1a44da211f575bdb52db7933477" else VCPKG_TARGET_TRIPLET="x64-osx-min1012" BUILDENV_BRANCH="2.4" - BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-6b24c46" - BUILDENV_SHA256="ce4ccf5ebdea5713fba47fcde8ced250345cbfc096c5d28fc24188d9b6aeca39" + BUILDENV_NAME="mixxx-deps-2.4-$VCPKG_TARGET_TRIPLET-24ad21f" + BUILDENV_SHA256="6f05f3094a142c92e0f1fa76631c046dd2f4e70bafb9e7f0380c2bb8d115a342" fi fi diff --git a/tools/windows_buildenv.bat b/tools/windows_buildenv.bat index f49ca04b4ce..a906ba2a680 100644 --- a/tools/windows_buildenv.bat +++ b/tools/windows_buildenv.bat @@ -23,13 +23,13 @@ IF NOT DEFINED INSTALL_ROOT ( IF DEFINED BUILDENV_RELEASE ( SET BUILDENV_BRANCH=2.4-rel set VCPKG_TARGET_TRIPLET=x64-windows-release - SET BUILDENV_NAME=mixxx-deps-2.4-x64-windows-release-fb257ea - SET BUILDENV_SHA256=c5b16523b11a1f4068b5c9307f01c2cbd1312d9adb1a11aff96f447959d95ad8 + SET BUILDENV_NAME=mixxx-deps-2.4-x64-windows-release-5940548 + SET BUILDENV_SHA256=cb44696a981f23dfcb3abce810bd3354cec3c25b8d7eea62f3176bc9b64d6bf9 ) ELSE ( SET BUILDENV_BRANCH=2.4 set VCPKG_TARGET_TRIPLET=x64-windows - SET BUILDENV_NAME=mixxx-deps-2.4-x64-windows-6b24c46 - SET BUILDENV_SHA256=5993f3095485c5067049eb9e059a8cc88690d2eea77e854df792be6a377d81de + SET BUILDENV_NAME=mixxx-deps-2.4-x64-windows-24ad21f + SET BUILDENV_SHA256=27d104d6d5ad56bf52e750643b924f0bf1c40672b370c05569a622f372ccc527 ) IF "%~1"=="" ( From f2fa92b5cff2d6bfb3c49ae97ecebfc62a53e8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:46:43 +0100 Subject: [PATCH 19/32] Move Kshitij Gupta and Janek Fischer back to the 2.4 contributor list. --- src/dialog/dlgabout.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 8175988c7ff..ebb19f3db69 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -68,11 +68,13 @@ DlgAbout::DlgAbout() << "Nino MP" << "Daniel Poelzleithner" << "luzpaz" + << "Kshitij Gupta" << "Sebastian Hasler" << "Philip Gottschling" << "Adam Szmigin" << "Evan Dekker" << "Harshit Maurya" + << "Janek Fischer" << "Kristiyan Katsarov" << "Sanskar Bajpai" << "Christian" @@ -314,7 +316,6 @@ DlgAbout::DlgAbout() << "Nico Schlömer" << "Joan Marcè i Igual" << "Stefan Weber" - << "Kshitij Gupta" << "Matthew Nicholson" << "Jamie Gifford" << "Sebastian Reuße" @@ -335,7 +336,6 @@ DlgAbout::DlgAbout() << "Ketan Lambat" << "Edward Kigwana" << "Simon Harst" - << "Janek Fischer" << "Jérôme Blanchi" << "Chris Hills" << "David Lowenfels" From 11ebe65ca52703b4348d495ec531d3d096e31e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:50:01 +0100 Subject: [PATCH 20/32] =?UTF-8?q?Add=20D=C3=A1vid=20Szak=C3=A1llas=20to=20?= =?UTF-8?q?the=20contributor=20list=20in=20the=20about=20box.=20Thank=20yo?= =?UTF-8?q?u=20very=20much.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index ebb19f3db69..1ea8cf18530 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -66,6 +66,7 @@ DlgAbout::DlgAbout() recentContributors << "Uwe Klotz" << "Nino MP" + << "Dávid Szakállas" << "Daniel Poelzleithner" << "luzpaz" << "Kshitij Gupta" From 8a625ab1a72232b6217660c79cb1c831903b3eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:51:10 +0100 Subject: [PATCH 21/32] Add Matthias Beyer to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 1ea8cf18530..36a413795b4 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -76,6 +76,7 @@ DlgAbout::DlgAbout() << "Evan Dekker" << "Harshit Maurya" << "Janek Fischer" + << "Matthias Beyer" << "Kristiyan Katsarov" << "Sanskar Bajpai" << "Christian" From 77506960fbaff285250d79043fa7fff6f7151b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:55:45 +0100 Subject: [PATCH 22/32] Add Allen Wittenauer to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 36a413795b4..b639ff9a54c 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -82,6 +82,7 @@ DlgAbout::DlgAbout() << "Christian" << "Geraldo Nascimento" << "Javier Vilarroig" + << "Allen Wittenauer" << "tcoyvwac" << "Tobias Oszlanyi (OsZ)" << "Viktor Gal" From 77d370585feeed3c7f6a102dd87933a5518dfb74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:56:54 +0100 Subject: [PATCH 23/32] Add Raphael Bigal to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index b639ff9a54c..0ec65c17b62 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -83,6 +83,7 @@ DlgAbout::DlgAbout() << "Geraldo Nascimento" << "Javier Vilarroig" << "Allen Wittenauer" + << "Raphael Bigal" << "tcoyvwac" << "Tobias Oszlanyi (OsZ)" << "Viktor Gal" From 4c98ad8cc4102c1de9171a2b9744ba22ed648733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 07:57:53 +0100 Subject: [PATCH 24/32] Add Filok to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 0ec65c17b62..ce8a0ea783c 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -84,6 +84,7 @@ DlgAbout::DlgAbout() << "Javier Vilarroig" << "Allen Wittenauer" << "Raphael Bigal" + << "Filok" << "tcoyvwac" << "Tobias Oszlanyi (OsZ)" << "Viktor Gal" From 91d8689fd57764ca9a85d8dc901c7467a4a09596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:01:00 +0100 Subject: [PATCH 25/32] Add Gary Tunstall to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index ce8a0ea783c..83b34e19248 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -86,6 +86,7 @@ DlgAbout::DlgAbout() << "Raphael Bigal" << "Filok" << "tcoyvwac" + << "Gary Tunstall" << "Tobias Oszlanyi (OsZ)" << "Viktor Gal" << "Matyáš Bobek" From 2c651a369bf1420339e7a0a1d252b83b9e9bd0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:02:12 +0100 Subject: [PATCH 26/32] Add Neil Naveen to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 83b34e19248..ceccd48a41e 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -94,6 +94,7 @@ DlgAbout::DlgAbout() << "Stefan Nürnberger" << "motific" << "Fatih Emre YILDIZ" + << "Neil Naveen" << "Javier Vilalta" << "David Chocholatý" << "Fabian Wolter" From 28db774cc5b4008777da3a63e017b4f67ed7183a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:03:48 +0100 Subject: [PATCH 27/32] Add Antoine Colombier to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index ceccd48a41e..89c7a9d5892 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -105,6 +105,7 @@ DlgAbout::DlgAbout() << "Jakob Leifhelm" << "Florian Goth" << "Chase Durand" + << "Antoine Colombier" << "John Last" << "Robbert van der Helm"; From a570ec98ced2ce184e362925ce8999e5bdec053b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:04:47 +0100 Subject: [PATCH 28/32] Add Saksham Hans to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 89c7a9d5892..b191ba6d043 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -107,6 +107,7 @@ DlgAbout::DlgAbout() << "Chase Durand" << "Antoine Colombier" << "John Last" + << "Saksham Hans" << "Robbert van der Helm"; QStringList specialThanks; From d6a773d9b1aa2db4ff539657f8c68b64d8e1f7f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:05:59 +0100 Subject: [PATCH 29/32] Add Andrew Burns to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index b191ba6d043..49f4cb71f84 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -108,7 +108,8 @@ DlgAbout::DlgAbout() << "Antoine Colombier" << "John Last" << "Saksham Hans" - << "Robbert van der Helm"; + << "Robbert van der Helm" + << "Andrew Burns"; QStringList specialThanks; specialThanks From 8c5b75f8a9c9c5e3f762d8fc3316fadbddc8402d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:07:17 +0100 Subject: [PATCH 30/32] Add Michael Wigard to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 49f4cb71f84..a68555ef772 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -109,7 +109,8 @@ DlgAbout::DlgAbout() << "John Last" << "Saksham Hans" << "Robbert van der Helm" - << "Andrew Burns"; + << "Andrew Burns" + << "Michael Wigard"; QStringList specialThanks; specialThanks From defc96094b556c45fe1e6206de16341d78c80e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:08:36 +0100 Subject: [PATCH 31/32] Add djantti to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index a68555ef772..4d515f1ba80 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -110,7 +110,8 @@ DlgAbout::DlgAbout() << "Saksham Hans" << "Robbert van der Helm" << "Andrew Burns" - << "Michael Wigard"; + << "Michael Wigard" + << "djantti"; QStringList specialThanks; specialThanks From 06b69c9924f82c0461e33aadb1c6997cb01ff067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 18 Jan 2024 08:09:25 +0100 Subject: [PATCH 32/32] Add Eugene Erokhin to the contributor list in the about box. Thank you very much. --- src/dialog/dlgabout.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dialog/dlgabout.cpp b/src/dialog/dlgabout.cpp index 4d515f1ba80..f477bd68c33 100644 --- a/src/dialog/dlgabout.cpp +++ b/src/dialog/dlgabout.cpp @@ -111,7 +111,8 @@ DlgAbout::DlgAbout() << "Robbert van der Helm" << "Andrew Burns" << "Michael Wigard" - << "djantti"; + << "djantti" + << "Eugene Erokhin"; QStringList specialThanks; specialThanks