=== modified file 'mixxx/src/skin/legacyskinparser.cpp' --- mixxx/src/skin/legacyskinparser.cpp 2012-04-06 23:41:02 +0000 +++ mixxx/src/skin/legacyskinparser.cpp 2012-04-21 14:33:09 +0000 @@ -395,7 +395,7 @@ if (pPlayer == NULL) return NULL; - WOverview* overviewWidget = new WOverview(pSafeChannelStr, m_pParent); + WOverview* overviewWidget = new WOverview(pSafeChannelStr, m_pConfig, m_pParent); connect(overviewWidget, SIGNAL(trackDropped(QString, QString)), m_pPlayerManager, SLOT(slotLoadToPlayer(QString, QString))); @@ -426,7 +426,7 @@ if (pPlayer == NULL) return NULL; - WWaveformViewer* viewer = new WWaveformViewer(pSafeChannelStr, m_pParent); + WWaveformViewer* viewer = new WWaveformViewer(pSafeChannelStr, m_pConfig, m_pParent); viewer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); WaveformWidgetFactory::instance()->setWaveformWidget(viewer); === modified file 'mixxx/src/widget/woverview.cpp' --- mixxx/src/widget/woverview.cpp 2012-04-08 03:29:30 +0000 +++ mixxx/src/widget/woverview.cpp 2012-04-21 14:43:06 +0000 @@ -28,9 +28,10 @@ #include "waveform/waveform.h" -WOverview::WOverview(const char *pGroup, QWidget * parent) +WOverview::WOverview(const char *pGroup, ConfigObject* pConfig, QWidget * parent) : WWidget(parent), - m_pGroup(pGroup) { + m_pGroup(pGroup), + m_pConfig(pConfig) { m_sampleDuration = 0; m_iPos = 0; @@ -483,15 +484,16 @@ void WOverview::dragEnterEvent(QDragEnterEvent* event) { // Accept the enter event if the thing is a filepath and nothing's playing - // in this deck. + // in this deck or the settings allow to interrupt the playing deck. if (event->mimeData()->hasUrls() && event->mimeData()->urls().size() > 0) { ControlObject *pPlayCO = ControlObject::getControl( ConfigKey(m_pGroup, "play")); - if (pPlayCO && pPlayCO->get()) { + if (pPlayCO && (!pPlayCO->get() || + m_pConfig->getValueString(ConfigKey("[Controls]","AllowTrackLoadToPlayingDeck")).toInt())) { + event->acceptProposedAction(); + } else { event->ignore(); - } else { - event->acceptProposedAction(); } } } === modified file 'mixxx/src/widget/woverview.h' --- mixxx/src/widget/woverview.h 2012-04-03 16:44:22 +0000 +++ mixxx/src/widget/woverview.h 2012-04-21 14:42:40 +0000 @@ -35,7 +35,7 @@ { Q_OBJECT public: - WOverview(const char* pGroup, QWidget *parent=NULL); + WOverview(const char* pGroup, ConfigObject* pConfig, QWidget *parent=NULL); virtual ~WOverview(); void setup(QDomNode node); @@ -74,6 +74,7 @@ private: const char* m_pGroup; + ConfigObject* m_pConfig; Waveform* m_waveform; QPixmap m_waveformPixmap; === modified file 'mixxx/src/widget/wtracktableview.cpp' --- mixxx/src/widget/wtracktableview.cpp 2012-04-15 05:12:33 +0000 +++ mixxx/src/widget/wtracktableview.cpp 2012-04-22 06:53:01 +0000 @@ -387,7 +387,9 @@ QString deckGroup = QString("[Channel%1]").arg(i); bool deckPlaying = ControlObject::getControl( ConfigKey(deckGroup, "play"))->get() == 1.0f; - bool deckEnabled = !deckPlaying && oneSongSelected; + bool loadTrackIntoPlayingDeck = m_pConfig->getValueString( + ConfigKey("[Controls]","AllowTrackLoadToPlayingDeck")).toInt(); + bool deckEnabled = (!deckPlaying || loadTrackIntoPlayingDeck) && oneSongSelected; QAction* pAction = new QAction(tr("Load to Deck %1").arg(i), m_pMenu); pAction->setEnabled(deckEnabled); m_pMenu->addAction(pAction); === modified file 'mixxx/src/widget/wwaveformviewer.cpp' --- mixxx/src/widget/wwaveformviewer.cpp 2012-04-06 13:38:28 +0000 +++ mixxx/src/widget/wwaveformviewer.cpp 2012-04-21 14:44:53 +0000 @@ -14,9 +14,11 @@ #include "widget/wwaveformviewer.h" #include "waveform/waveformwidgetfactory.h" -WWaveformViewer::WWaveformViewer(const char *group, QWidget * parent, Qt::WFlags f) : - QWidget(parent) { - m_pGroup = group; + +WWaveformViewer::WWaveformViewer(const char *group, ConfigObject* pConfig, QWidget * parent, Qt::WFlags f) : + QWidget(parent), + m_pGroup(group), + m_pConfig(pConfig) { setAcceptDrops(true); @@ -162,10 +164,12 @@ event->mimeData()->urls().size() > 0) { ControlObject *pPlayCO = ControlObject::getControl( ConfigKey(m_pGroup, "play")); - if (pPlayCO && pPlayCO->get()) { + // Accept if the Deck isn't playing or the settings allow to interupt a playing deck + if (pPlayCO && (!pPlayCO->get() || + m_pConfig->getValueString(ConfigKey("[Controls]","AllowTrackLoadToPlayingDeck")).toInt())) { + event->acceptProposedAction(); + } else { event->ignore(); - } else { - event->acceptProposedAction(); } } } === modified file 'mixxx/src/widget/wwaveformviewer.h' --- mixxx/src/widget/wwaveformviewer.h 2012-03-31 20:56:27 +0000 +++ mixxx/src/widget/wwaveformviewer.h 2012-04-21 14:44:05 +0000 @@ -19,7 +19,7 @@ Q_OBJECT public: - WWaveformViewer(const char *group, QWidget *parent=0, Qt::WFlags f = 0); + WWaveformViewer(const char *group, ConfigObject* pConfig, QWidget *parent=0, Qt::WFlags f = 0); virtual ~WWaveformViewer(); const char* getGroup() const { return m_pGroup;} @@ -54,6 +54,7 @@ } const char* m_pGroup; + ConfigObject* m_pConfig; int m_zoomZoneWidth; ControlObjectThreadMain* m_pScratchEnable;