summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2018-11-05 22:45:55 +0100
committerDaniel Schürmann <daschuer@mixxx.org>2018-11-05 22:45:55 +0100
commit54261f3b8f3221578aa95c928ca5217852eeac9b (patch)
treec1c88dca105dae05d09f0d6a2ccc21ed6525bb99 /src
parent4fbb87560e64aa77242f2d4fd79ed68ed6f95a99 (diff)
parent6420867cc8a73d3845bf25d5b98babb142386da4 (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.cpp9
-rw-r--r--src/library/banshee/bansheedbconnection.cpp12
-rw-r--r--src/library/banshee/bansheedbconnection.h10
-rw-r--r--src/library/dlgtrackmetadataexport.h1
-rw-r--r--src/library/scanner/libraryscannerdlg.cpp2
-rw-r--r--src/mixxx.cpp4
-rw-r--r--src/track/track.cpp19
-rw-r--r--src/track/track.h2
-rw-r--r--src/util/dnd.h2
-rw-r--r--src/waveform/widgets/glslwaveformwidget.h2
-rw-r--r--src/widget/woverview.cpp2
-rw-r--r--src/widget/woverviewhsv.cpp5
-rw-r--r--src/widget/woverviewlmh.cpp5
-rw-r--r--src/widget/woverviewrgb.cpp5
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;
}