diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2018-11-05 22:45:55 +0100 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2018-11-05 22:45:55 +0100 |
commit | 54261f3b8f3221578aa95c928ca5217852eeac9b (patch) | |
tree | c1c88dca105dae05d09f0d6a2ccc21ed6525bb99 /src | |
parent | 4fbb87560e64aa77242f2d4fd79ed68ed6f95a99 (diff) | |
parent | 6420867cc8a73d3845bf25d5b98babb142386da4 (diff) |
Merge remote-tracking branch 'upstream/2.2'
Conflicts:
SConscript
src/defs_version.h
src/sources/soundsourceproxy.cpp
Diffstat (limited to 'src')
-rw-r--r-- | src/analyzer/vamp/vamppluginadapter.cpp | 9 | ||||
-rw-r--r-- | src/library/banshee/bansheedbconnection.cpp | 12 | ||||
-rw-r--r-- | src/library/banshee/bansheedbconnection.h | 10 | ||||
-rw-r--r-- | src/library/dlgtrackmetadataexport.h | 1 | ||||
-rw-r--r-- | src/library/scanner/libraryscannerdlg.cpp | 2 | ||||
-rw-r--r-- | src/mixxx.cpp | 4 | ||||
-rw-r--r-- | src/track/track.cpp | 19 | ||||
-rw-r--r-- | src/track/track.h | 2 | ||||
-rw-r--r-- | src/util/dnd.h | 2 | ||||
-rw-r--r-- | src/waveform/widgets/glslwaveformwidget.h | 2 | ||||
-rw-r--r-- | src/widget/woverview.cpp | 2 | ||||
-rw-r--r-- | src/widget/woverviewhsv.cpp | 5 | ||||
-rw-r--r-- | src/widget/woverviewlmh.cpp | 5 | ||||
-rw-r--r-- | src/widget/woverviewrgb.cpp | 5 |
14 files changed, 54 insertions, 26 deletions
diff --git a/src/analyzer/vamp/vamppluginadapter.cpp b/src/analyzer/vamp/vamppluginadapter.cpp index 4ae5a9dd8b..7b96615350 100644 --- a/src/analyzer/vamp/vamppluginadapter.cpp +++ b/src/analyzer/vamp/vamppluginadapter.cpp @@ -96,15 +96,20 @@ void initPluginPaths() { logIgnoringNonExistentPath(dataPluginDir); } #elif __LINUX__ +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + QString vampDir = "vampqt5"; +#else + QString vampDir = "vamp"; +#endif QDir libPath(UNIX_LIB_PATH); - if (libPath.cd("plugins") && libPath.cd("vamp")) { + if (libPath.cd("plugins") && libPath.cd(vampDir)) { envPathList = composeEnvPathList(envPathList, libPath); } else { logIgnoringNonExistentPath(libPath); } QDir dataPluginDir(dataLocation); - if (dataPluginDir.cd("plugins") && dataPluginDir.cd("vamp")) { + if (dataPluginDir.cd("plugins") && dataPluginDir.cd(vampDir)) { envPathList = composeEnvPathList(envPathList, dataPluginDir); } else { logIgnoringNonExistentPath(dataPluginDir); diff --git a/src/library/banshee/bansheedbconnection.cpp b/src/library/banshee/bansheedbconnection.cpp index ddd985a46c..3d28ecb9ea 100644 --- a/src/library/banshee/bansheedbconnection.cpp +++ b/src/library/banshee/bansheedbconnection.cpp @@ -53,10 +53,10 @@ int BansheeDbConnection::getSchemaVersion() { return -1; } -QList<struct BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists() { +QList<BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists() { - QList<struct BansheeDbConnection::Playlist> list; - struct BansheeDbConnection::Playlist playlist; + QList<BansheeDbConnection::Playlist> list; + BansheeDbConnection::Playlist playlist; QSqlQuery query(m_database); query.prepare("SELECT PlaylistID, Name FROM CorePlaylists ORDER By Name"); @@ -73,13 +73,13 @@ QList<struct BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists() return list; } -QList<struct BansheeDbConnection::PlaylistEntry> BansheeDbConnection::getPlaylistEntries(int playlistId) { +QList<BansheeDbConnection::PlaylistEntry> BansheeDbConnection::getPlaylistEntries(int playlistId) { PerformanceTimer time; time.start(); - QList<struct BansheeDbConnection::PlaylistEntry> list; - struct BansheeDbConnection::PlaylistEntry entry; + QList<BansheeDbConnection::PlaylistEntry> list; + BansheeDbConnection::PlaylistEntry entry; QSqlQuery query(m_database); query.setForwardOnly(true); // Saves about 50% time diff --git a/src/library/banshee/bansheedbconnection.h b/src/library/banshee/bansheedbconnection.h index b0d12d6d67..d7e2df6ddd 100644 --- a/src/library/banshee/bansheedbconnection.h +++ b/src/library/banshee/bansheedbconnection.h @@ -54,14 +54,14 @@ public: bool open(const QString& databaseFile); int getSchemaVersion(); - QList<struct Playlist> getPlaylists(); - QList<struct PlaylistEntry> getPlaylistEntries(int playlistId); + QList<Playlist> getPlaylists(); + QList<PlaylistEntry> getPlaylistEntries(int playlistId); private: QSqlDatabase m_database; - QMap<int, struct Track> m_trackMap; - QMap<int, struct Artist> m_artistMap; - QMap<int, struct Album> m_albumMap; + QMap<int, Track> m_trackMap; + QMap<int, Artist> m_artistMap; + QMap<int, Album> m_albumMap; }; diff --git a/src/library/dlgtrackmetadataexport.h b/src/library/dlgtrackmetadataexport.h index b0d3df298f..58343b671b 100644 --- a/src/library/dlgtrackmetadataexport.h +++ b/src/library/dlgtrackmetadataexport.h @@ -10,6 +10,7 @@ namespace mixxx { // needed for i18n message strings. The class contains mutable // static data and must only be used within the UI thread. class DlgTrackMetadataExport: private QDialog { + Q_OBJECT public: static void showMessageBoxOncePerSession(); diff --git a/src/library/scanner/libraryscannerdlg.cpp b/src/library/scanner/libraryscannerdlg.cpp index 404cf977ef..fd3fc78911 100644 --- a/src/library/scanner/libraryscannerdlg.cpp +++ b/src/library/scanner/libraryscannerdlg.cpp @@ -26,7 +26,7 @@ LibraryScannerDlg::LibraryScannerDlg(QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f), m_bCancelled(false) { - setWindowIcon(QIcon(":/images/ic_mixxx_window.png")); + setWindowIcon(QIcon(":/images/mixxx_icon.svg")); QVBoxLayout* pLayout = new QVBoxLayout(this); diff --git a/src/mixxx.cpp b/src/mixxx.cpp index d59c2e4d03..0879d24e3c 100644 --- a/src/mixxx.cpp +++ b/src/mixxx.cpp @@ -369,7 +369,7 @@ void MixxxMainWindow::initialize(QApplication* pApp, const CmdlineArgs& args) { m_pPrefDlg = new DlgPreferences(this, m_pSkinLoader, m_pSoundManager, m_pPlayerManager, m_pControllerManager, m_pVCManager, pLV2Backend, m_pEffectsManager, m_pSettingsManager, m_pLibrary); - m_pPrefDlg->setWindowIcon(QIcon(":/images/ic_mixxx_window.png")); + m_pPrefDlg->setWindowIcon(QIcon(":/images/mixxx_icon.svg")); m_pPrefDlg->setHidden(true); launchProgress(60); @@ -731,7 +731,7 @@ void MixxxMainWindow::initializeWindow() { restoreState(QByteArray::fromBase64(m_pSettingsManager->settings()->getValueString( ConfigKey("[MainWindow]", "state")).toUtf8())); - setWindowIcon(QIcon(":/images/ic_mixxx_window.png")); + setWindowIcon(QIcon(":/images/mixxx_icon.svg")); slotUpdateWindowTitle(TrackPointer()); } diff --git a/src/track/track.cpp b/src/track/track.cpp index 1da3ed8ee7..7d4a764e53 100644 --- a/src/track/track.cpp +++ b/src/track/track.cpp @@ -204,7 +204,24 @@ QString Track::getCanonicalLocation() const { // (copy-on write). But operating on a single instance of QFileInfo // might not be thread-safe due to internal caching! QMutexLocker lock(&m_qMutex); - return TrackRef::canonicalLocation(m_fileInfo); + + // Note: We return here the cached value, that was calculated just after + // init this Track object. This will avoid repeated use of the time + // consuming file IO. + // We ignore the case when the user changes a symbolic link to + // point a file to an other location, since this is a user action. + // We also don't care if a file disappears while Mixxx is running. Opening + // a non-existent file is already handled and doesn't cause any malfunction. + QString loc = TrackRef::canonicalLocation(m_fileInfo); + if (loc.isEmpty()) { + // we see here an empty path because the file did not exist + // when creating the track object. + // The user might have restored the track in the meanwhile. + // So try again it again. + m_fileInfo.refresh(); + loc = TrackRef::canonicalLocation(m_fileInfo); + } + return loc; } QString Track::getDirectory() const { diff --git a/src/track/track.h b/src/track/track.h index 21b65b3317..96fa8fdb82 100644 --- a/src/track/track.h +++ b/src/track/track.h @@ -359,7 +359,7 @@ class Track : public QObject { mutable QMutex m_qMutex; // The file - QFileInfo m_fileInfo; + mutable QFileInfo m_fileInfo; SecurityTokenPointer m_pSecurityToken; diff --git a/src/util/dnd.h b/src/util/dnd.h index 542b0ecdf6..9b08fc8138 100644 --- a/src/util/dnd.h +++ b/src/util/dnd.h @@ -154,7 +154,7 @@ class DragAndDropHelper { QDrag* drag = new QDrag(pDragSource); drag->setMimeData(mimeData); - drag->setPixmap(QPixmap(":/images/library/ic_library_drag_and_drop.png")); + drag->setPixmap(QPixmap(":/images/library/ic_library_drag_and_drop.svg")); drag->exec(Qt::CopyAction); return drag; diff --git a/src/waveform/widgets/glslwaveformwidget.h b/src/waveform/widgets/glslwaveformwidget.h index 915c1a56ab..2f2dd57d8a 100644 --- a/src/waveform/widgets/glslwaveformwidget.h +++ b/src/waveform/widgets/glslwaveformwidget.h @@ -29,6 +29,7 @@ class GLSLWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { }; class GLSLFilteredWaveformWidget : public GLSLWaveformWidget { + Q_OBJECT public: GLSLFilteredWaveformWidget(const char* group, QWidget* parent); virtual ~GLSLFilteredWaveformWidget() {} @@ -42,6 +43,7 @@ class GLSLFilteredWaveformWidget : public GLSLWaveformWidget { }; class GLSLRGBWaveformWidget : public GLSLWaveformWidget { + Q_OBJECT public: GLSLRGBWaveformWidget(const char* group, QWidget* parent); virtual ~GLSLRGBWaveformWidget() {} diff --git a/src/widget/woverview.cpp b/src/widget/woverview.cpp index 4872d950f0..5bfa1299cd 100644 --- a/src/widget/woverview.cpp +++ b/src/widget/woverview.cpp @@ -205,7 +205,7 @@ void WOverview::slotTrackLoaded(TrackPointer pTrack) { } void WOverview::slotLoadingTrack(TrackPointer pNewTrack, TrackPointer pOldTrack) { - //qDebug() << this << "WOverview::slotLoadingTrack" << pNewTrack << pOldTrack; + //qDebug() << this << "WOverview::slotLoadingTrack" << pNewTrack.get() << pOldTrack.get(); DEBUG_ASSERT(m_pCurrentTrack == pOldTrack); if (m_pCurrentTrack != nullptr) { disconnect(m_pCurrentTrack.get(), SIGNAL(waveformSummaryUpdated()), diff --git a/src/widget/woverviewhsv.cpp b/src/widget/woverviewhsv.cpp index e125737f3c..03898b4e76 100644 --- a/src/widget/woverviewhsv.cpp +++ b/src/widget/woverviewhsv.cpp @@ -15,7 +15,7 @@ WOverviewHSV::WOverviewHSV(const char* pGroup, bool WOverviewHSV::drawNextPixmapPart() { ScopedTimer t("WOverviewHSV::drawNextPixmapPart"); - //qDebug() << "WOverview::drawNextPixmapPart() - m_waveform" << m_waveform; + //qDebug() << "WOverview::drawNextPixmapPart()"; int currentCompletion; @@ -44,7 +44,8 @@ bool WOverviewHSV::drawNextPixmapPart() { const int completionIncrement = waveformCompletion - m_actualCompletion; int visiblePixelIncrement = completionIncrement * length() / dataSize; - if (completionIncrement < 2 || visiblePixelIncrement == 0) { + if (waveformCompletion < (dataSize - 2) && + (completionIncrement < 2 || visiblePixelIncrement == 0)) { return false; } diff --git a/src/widget/woverviewlmh.cpp b/src/widget/woverviewlmh.cpp index bf838f2e33..b7c690db81 100644 --- a/src/widget/woverviewlmh.cpp +++ b/src/widget/woverviewlmh.cpp @@ -17,7 +17,7 @@ WOverviewLMH::WOverviewLMH(const char *pGroup, bool WOverviewLMH::drawNextPixmapPart() { ScopedTimer t("WOverviewLMH::drawNextPixmapPart"); - //qDebug() << "WOverview::drawNextPixmapPart() - m_waveform" << m_waveform; + //qDebug() << "WOverview::drawNextPixmapPart()"; int currentCompletion; @@ -46,7 +46,8 @@ bool WOverviewLMH::drawNextPixmapPart() { const int completionIncrement = waveformCompletion - m_actualCompletion; int visiblePixelIncrement = completionIncrement * length() / dataSize; - if (completionIncrement < 2 || visiblePixelIncrement == 0) { + if (waveformCompletion < (dataSize - 2) && + (completionIncrement < 2 || visiblePixelIncrement == 0)) { return false; } diff --git a/src/widget/woverviewrgb.cpp b/src/widget/woverviewrgb.cpp index 6a4c348efc..f588941c5e 100644 --- a/src/widget/woverviewrgb.cpp +++ b/src/widget/woverviewrgb.cpp @@ -14,7 +14,7 @@ WOverviewRGB::WOverviewRGB(const char* pGroup, bool WOverviewRGB::drawNextPixmapPart() { ScopedTimer t("WOverviewRGB::drawNextPixmapPart"); - //qDebug() << "WOverview::drawNextPixmapPart() - m_waveform" << m_waveform; + //qDebug() << "WOverview::drawNextPixmapPart()"; int currentCompletion; @@ -43,7 +43,8 @@ bool WOverviewRGB::drawNextPixmapPart() { const int completionIncrement = waveformCompletion - m_actualCompletion; int visiblePixelIncrement = completionIncrement * length() / dataSize; - if (completionIncrement < 2 || visiblePixelIncrement == 0) { + if (waveformCompletion < (dataSize - 2) && + (completionIncrement < 2 || visiblePixelIncrement == 0)) { return false; } |