From 88b1a66d5ef7636b5a2484dd6212e2ddfad1d999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Kl=C3=B6sges?= Date: Tue, 19 May 2015 20:13:29 +0200 Subject: [PATCH 01/96] Get Filepath by absoluteFilePath to preserve symlinks --- src/widget/wcoverart.cpp | 2 +- src/widget/woverview.cpp | 2 +- src/widget/wspinny.cpp | 2 +- src/widget/wtrackproperty.cpp | 2 +- src/widget/wtracktext.cpp | 2 +- src/widget/wwaveformviewer.cpp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/widget/wcoverart.cpp b/src/widget/wcoverart.cpp index f4ba1f10342..2b37848632f 100644 --- a/src/widget/wcoverart.cpp +++ b/src/widget/wcoverart.cpp @@ -257,7 +257,7 @@ void WCoverArt::dropEvent(QDropEvent *event) { *event->mimeData(), m_group, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_group)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_group)); return; } } diff --git a/src/widget/woverview.cpp b/src/widget/woverview.cpp index b82f0bfc5b6..f0a7190cdb7 100644 --- a/src/widget/woverview.cpp +++ b/src/widget/woverview.cpp @@ -524,7 +524,7 @@ void WOverview::dropEvent(QDropEvent* event) { *event->mimeData(), m_group, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_group)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_group)); return; } } diff --git a/src/widget/wspinny.cpp b/src/widget/wspinny.cpp index 3c781a477fe..8f5aae57247 100644 --- a/src/widget/wspinny.cpp +++ b/src/widget/wspinny.cpp @@ -655,7 +655,7 @@ void WSpinny::dropEvent(QDropEvent * event) { *event->mimeData(), m_group, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_group)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_group)); return; } } diff --git a/src/widget/wtrackproperty.cpp b/src/widget/wtrackproperty.cpp index 123249e837f..80d14a8c161 100644 --- a/src/widget/wtrackproperty.cpp +++ b/src/widget/wtrackproperty.cpp @@ -73,7 +73,7 @@ void WTrackProperty::dropEvent(QDropEvent *event) { *event->mimeData(), m_pGroup, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_pGroup)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_pGroup)); return; } } diff --git a/src/widget/wtracktext.cpp b/src/widget/wtracktext.cpp index a4c06ea538f..8f523f83824 100644 --- a/src/widget/wtracktext.cpp +++ b/src/widget/wtracktext.cpp @@ -62,7 +62,7 @@ void WTrackText::dropEvent(QDropEvent *event) { *event->mimeData(), m_pGroup, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_pGroup)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_pGroup)); return; } } diff --git a/src/widget/wwaveformviewer.cpp b/src/widget/wwaveformviewer.cpp index 19fdce674af..cca496cde16 100644 --- a/src/widget/wwaveformviewer.cpp +++ b/src/widget/wwaveformviewer.cpp @@ -161,7 +161,7 @@ void WWaveformViewer::dropEvent(QDropEvent* event) { *event->mimeData(), m_pGroup, true, false); if (!files.isEmpty()) { event->accept(); - emit(trackDropped(files.at(0).canonicalFilePath(), m_pGroup)); + emit(trackDropped(files.at(0).absoluteFilePath(), m_pGroup)); return; } } From 8082fdd4162fdb4418237ba6500495f4deb34c66 Mon Sep 17 00:00:00 2001 From: Stefan Nuernberger Date: Wed, 20 May 2015 17:26:02 +0200 Subject: [PATCH 02/96] modplugSet channel count and other track info on open --- src/soundsourcemodplug.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/soundsourcemodplug.cpp b/src/soundsourcemodplug.cpp index 598ccb4cdeb..9d485d1c761 100644 --- a/src/soundsourcemodplug.cpp +++ b/src/soundsourcemodplug.cpp @@ -125,7 +125,9 @@ Result SoundSourceModPlug::open() { setSampleRate(44100); // ModPlug always uses 44.1kHz m_opened = true; m_seekPos = 0; - return OK; + + // read all other track information + return parseHeader(); } long SoundSourceModPlug::seek(long filePos) From 75e563943e45a0943eca7ed87385ee727bddc2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 20 May 2015 22:11:13 +0200 Subject: [PATCH 03/96] =?UTF-8?q?Added=20Markus=20Kl=C3=B6sges=20to=20cont?= =?UTF-8?q?ributor=20list.=20Thank=20you=20very=20much.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dlgabout.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dlgabout.cpp b/src/dlgabout.cpp index 5615af3a66e..74f18777531 100644 --- a/src/dlgabout.cpp +++ b/src/dlgabout.cpp @@ -105,7 +105,8 @@ DlgAbout::DlgAbout(QWidget* parent) : QDialog(parent), Ui::DlgAboutDlg() { << "Alexandru Jercaianu" << "Nils Goroll" << "Marco Angerer" - << "Ferran Pujol Camins"; + << "Ferran Pujol Camins" + << "Markus Klösges"; QStringList specialThanks; specialThanks From 8a148906731ba930b0cdf004f2cbabb002b9f87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 21 May 2015 21:43:14 +0200 Subject: [PATCH 04/96] Add debug messages to narrow font issues on windows --- src/mixxx.cpp | 1 + src/widget/wtime.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/mixxx.cpp b/src/mixxx.cpp index 4cd102e34ea..21093b6dd80 100644 --- a/src/mixxx.cpp +++ b/src/mixxx.cpp @@ -694,6 +694,7 @@ void MixxxMainWindow::initializeWindow() { void MixxxMainWindow::initializeFonts() { QDir fontsDir(m_pConfig->getResourcePath()); if (!fontsDir.cd("fonts")) { + qWarning("MixxxMainWindow::initializeFonts: cd fonts failed"); return; } diff --git a/src/widget/wtime.cpp b/src/widget/wtime.cpp index 1f8cf8cc2e9..0b178af8b1e 100644 --- a/src/widget/wtime.cpp +++ b/src/widget/wtime.cpp @@ -3,6 +3,7 @@ #include #include "widget/wtime.h" +#include "util/cmdlineargs.h" WTime::WTime(QWidget *parent) : WLabel(parent), @@ -50,5 +51,8 @@ void WTime::refreshTime() { QString timeString = time.toString(m_sTimeFormat); if (text() != timeString) { setText(timeString); + if (CmdlineArgs::Instance().getDeveloper()) { + qDebug() << "WTime::refreshTime" << timeString << font().family(); + } } } From a445808d3e1f7abc35443cc23072e0211e529c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Fri, 22 May 2015 00:14:42 +0200 Subject: [PATCH 05/96] Fix preroll at wrong speed if waveform does not match to the track --- src/waveform/renderers/waveformrendererpreroll.cpp | 9 +++++---- src/waveform/renderers/waveformwidgetrenderer.cpp | 9 ++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/waveform/renderers/waveformrendererpreroll.cpp b/src/waveform/renderers/waveformrendererpreroll.cpp index 019bc9b255a..d45b9769ab5 100644 --- a/src/waveform/renderers/waveformrendererpreroll.cpp +++ b/src/waveform/renderers/waveformrendererpreroll.cpp @@ -31,14 +31,15 @@ void WaveformRendererPreroll::draw(QPainter* painter, QPaintEvent* event) { double samplesPerPixel = m_waveformRenderer->getVisualSamplePerPixel(); double numberOfSamples = m_waveformRenderer->getWidth() * samplesPerPixel; - // TODO (vRince) not really accurate since waveform size une visual reasampling and - // have two mores samples to hold the complete visual data int currentPosition = m_waveformRenderer->getPlayPosVSample(); + //qDebug() << "currentPosition" << currentPosition + // << "samplesPerPixel" << samplesPerPixel + // << "numberOfSamples" << numberOfSamples; // Some of the pre-roll is on screen. Draw little triangles to indicate // where the pre-roll is located. - if (currentPosition < numberOfSamples) { - int index = static_cast((numberOfSamples - currentPosition) / 2.0); + if (currentPosition < numberOfSamples / 2.0) { + int index = static_cast(numberOfSamples / 2.0 - currentPosition); const int polyWidth = static_cast(40.0 / samplesPerPixel); const float halfHeight = m_waveformRenderer->getHeight()/2.0; const float halfPolyHeight = m_waveformRenderer->getHeight()/5.0; diff --git a/src/waveform/renderers/waveformwidgetrenderer.cpp b/src/waveform/renderers/waveformwidgetrenderer.cpp index 6c1fc6a392f..5259a18802c 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.cpp +++ b/src/waveform/renderers/waveformwidgetrenderer.cpp @@ -122,7 +122,6 @@ void WaveformWidgetRenderer::onPreRender(VSyncThread* vsyncThread) { TrackPointer pTrack(m_pTrack); ConstWaveformPointer pWaveform = pTrack ? pTrack->getWaveform() : ConstWaveformPointer(); - int waveformDataSize = pWaveform ? pWaveform->getDataSize() : 0; if (pWaveform) { m_audioSamplePerPixel = m_visualSamplePerPixel * pWaveform->getAudioVisualRatio(); } else { @@ -130,10 +129,10 @@ void WaveformWidgetRenderer::onPreRender(VSyncThread* vsyncThread) { } - m_playPos = m_visualPlayPosition->getAtNextVSync(vsyncThread); + double truePlayPos = m_visualPlayPosition->getAtNextVSync(vsyncThread); // m_playPos = -1 happens, when a new track is in buffer but m_visualPlayPosition was not updated - if (m_audioSamplePerPixel && m_playPos != -1) { + if (m_audioSamplePerPixel && truePlayPos != -1) { // Track length in pixels. m_trackPixelCount = static_cast(m_trackSamples) / 2.0 / m_audioSamplePerPixel; @@ -142,8 +141,8 @@ void WaveformWidgetRenderer::onPreRender(VSyncThread* vsyncThread) { double displayedLengthHalf = static_cast(m_width) / m_trackPixelCount / 2.0; // Avoid pixel jitter in play position by rounding to the nearest track // pixel. - m_playPos = round(m_playPos * m_trackPixelCount) / m_trackPixelCount; // Avoid pixel jitter in play position - m_playPosVSample = m_playPos * waveformDataSize; + m_playPos = round(truePlayPos * m_trackPixelCount) / m_trackPixelCount; // Avoid pixel jitter in play position + m_playPosVSample = m_playPos * m_trackPixelCount * m_visualSamplePerPixel; m_firstDisplayedPosition = m_playPos - displayedLengthHalf; m_lastDisplayedPosition = m_playPos + displayedLengthHalf; From 2f35ffbbdc372f83716ea552bebe735ba2991829 Mon Sep 17 00:00:00 2001 From: Owen Williams Date: Thu, 21 May 2015 21:13:49 -0400 Subject: [PATCH 06/96] Fix playlist keyboard navigation broken --- src/library/baseplaylistfeature.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/library/baseplaylistfeature.cpp b/src/library/baseplaylistfeature.cpp index a843389785c..93b6ead9aa8 100644 --- a/src/library/baseplaylistfeature.cpp +++ b/src/library/baseplaylistfeature.cpp @@ -124,8 +124,6 @@ void BasePlaylistFeature::activateChild(const QModelIndex& index) { int playlistId = playlistIdFromIndex(index); if (playlistId != -1 && m_pPlaylistTableModel) { m_pPlaylistTableModel->setTableModel(playlistId); - // Update selection - emit(featureSelect(this, index)); emit(showTrackModel(m_pPlaylistTableModel)); emit(enableCoverArtDisplay(true)); } From 25b0e96b667b07ea9022116506d337bec08e7129 Mon Sep 17 00:00:00 2001 From: Owen Williams Date: Thu, 21 May 2015 21:32:24 -0400 Subject: [PATCH 07/96] LateNight: Fix maximized library not appearing if library was turned off in another view --- res/skins/LateNight/skin.xml | 40 ++++++++++--------- res/skins/LateNight/toolbar_big_library.xml | 43 +++++++++++++++++++++ 2 files changed, 65 insertions(+), 18 deletions(-) create mode 100644 res/skins/LateNight/toolbar_big_library.xml diff --git a/res/skins/LateNight/skin.xml b/res/skins/LateNight/skin.xml index aacaa9d61fb..b07f46af392 100644 --- a/res/skins/LateNight/skin.xml +++ b/res/skins/LateNight/skin.xml @@ -85,37 +85,41 @@ SkinContainer horizontal - me,max - 0,0 + me,me + - horizontal - i,max + vertical + me,me -