diff --git a/src/dlgtrackinfo.cpp b/src/dlgtrackinfo.cpp index ed8392b..7e41b10 100644 --- a/src/dlgtrackinfo.cpp +++ b/src/dlgtrackinfo.cpp @@ -62,6 +62,8 @@ void DlgTrackInfo::init() { this, SLOT(slotBpmTwoThirds())); connect(bpmThreeFourth, SIGNAL(clicked()), this, SLOT(slotBpmThreeFourth())); + connect(bpmFourThirds, SIGNAL(clicked()), + this, SLOT(slotBpmFourThirds())); connect(btnCueActivate, SIGNAL(clicked()), this, SLOT(cueActivate())); @@ -168,6 +170,7 @@ void DlgTrackInfo::populateFields(TrackPointer pTrack) { bpmHalve->setEnabled(enableBpmEditing); bpmTwoThirds->setEnabled(enableBpmEditing); bpmThreeFourth->setEnabled(enableBpmEditing); + bpmFourThirds->setEnabled(enableBpmEditing); m_loadedCoverInfo = pTrack->getCoverInfo(); int reference = pTrack->getId(); @@ -459,6 +462,9 @@ void DlgTrackInfo::slotBpmThreeFourth() { spinBpm->setValue(spinBpm->value() * (3./4.)); } +void DlgTrackInfo::slotBpmFourThirds() { + spinBpm->setValue(spinBpm->value() * (4./3.)); +} void DlgTrackInfo::slotBpmTap(double averageLength, int numSamples) { Q_UNUSED(numSamples); if (averageLength == 0) { diff --git a/src/dlgtrackinfo.h b/src/dlgtrackinfo.h index 1d3542f..55240d0 100644 --- a/src/dlgtrackinfo.h +++ b/src/dlgtrackinfo.h @@ -49,6 +49,7 @@ class DlgTrackInfo : public QDialog, public Ui::DlgTrackInfo { void slotBpmHalve(); void slotBpmTwoThirds(); void slotBpmThreeFourth(); + void slotBpmFourThirds(); void slotBpmTap(double averageLength, int numSamples); void reloadTrackMetadata(); diff --git a/src/dlgtrackinfo.ui b/src/dlgtrackinfo.ui index 50e00c5..a07d001 100644 --- a/src/dlgtrackinfo.ui +++ b/src/dlgtrackinfo.ui @@ -418,16 +418,7 @@ QLayout::SetMinimumSize - - 0 - - - 0 - - - 0 - - + 0 @@ -715,22 +706,6 @@ - - - - Displays the BPM of the selected track. - - - 8 - - - 500.000000000000000 - - - 1.000000000000000 - - - @@ -770,6 +745,38 @@ + + + + Displays the BPM of the selected track. + + + 8 + + + 500.000000000000000 + + + 1.000000000000000 + + + + + + + + 125 + 0 + + + + Sets the BPM to 133% of the current value. + + + 4/3 BPM + + + @@ -1035,12 +1042,29 @@ btnNext btnCancel btnApply + btnOK + txtTrackName + txtArtist + txtAlbum + txtAlbumArtist + txtComposer + txtGenre + txtGrouping + txtYear + txtKey + txtTrackNumber + txtLocation + btnFetchTag + btnReloadFromFile + btnOpenFileBrowser + txtComment spinBpm bpmTap bpmDouble bpmHalve bpmTwoThirds bpmThreeFourth + bpmFourThirds cueTable btnCueDelete btnCueActivate diff --git a/src/widget/wtracktableview.cpp b/src/widget/wtracktableview.cpp index 8d78660..699e0f8 100644 --- a/src/widget/wtracktableview.cpp +++ b/src/widget/wtracktableview.cpp @@ -149,6 +149,7 @@ WTrackTableView::~WTrackTableView() { delete m_pBpmHalveAction; delete m_pBpmTwoThirdsAction; delete m_pBpmThreeFourthsAction; + delete m_pBpmFourThirdsAction; delete m_pBPMMenu; delete m_pPurgeAct; delete m_pFileBrowserAct; @@ -436,11 +437,13 @@ void WTrackTableView::createActions() { m_pBpmHalveAction = new QAction(tr("Halve BPM"), this); m_pBpmTwoThirdsAction = new QAction(tr("2/3 BPM"), this); m_pBpmThreeFourthsAction = new QAction(tr("3/4 BPM"), this); + m_pBpmFourThirdsAction = new QAction(tr("4/3 BPM"), this); m_BpmMapper.setMapping(m_pBpmDoubleAction, DOUBLE); m_BpmMapper.setMapping(m_pBpmHalveAction, HALVE); m_BpmMapper.setMapping(m_pBpmTwoThirdsAction, TWOTHIRDS); m_BpmMapper.setMapping(m_pBpmThreeFourthsAction, THREEFOURTHS); + m_BpmMapper.setMapping(m_pBpmFourThirdsAction, FOURTHIRDS); connect(m_pBpmDoubleAction, SIGNAL(triggered()), &m_BpmMapper, SLOT(map())); @@ -450,6 +453,8 @@ void WTrackTableView::createActions() { &m_BpmMapper, SLOT(map())); connect(m_pBpmThreeFourthsAction, SIGNAL(triggered()), &m_BpmMapper, SLOT(map())); + connect(m_pBpmFourThirdsAction, SIGNAL(triggered()), + &m_BpmMapper, SLOT(map())); m_pClearBeatsAction = new QAction(tr("Clear BPM and Beatgrid"), this); connect(m_pClearBeatsAction, SIGNAL(triggered()), @@ -804,6 +809,7 @@ void WTrackTableView::contextMenuEvent(QContextMenuEvent* event) { m_pBPMMenu->addAction(m_pBpmHalveAction); m_pBPMMenu->addAction(m_pBpmTwoThirdsAction); m_pBPMMenu->addAction(m_pBpmThreeFourthsAction); + m_pBPMMenu->addAction(m_pBpmFourThirdsAction); m_pBPMMenu->addSeparator(); m_pBPMMenu->addAction(m_pBpmLockAction); m_pBPMMenu->addAction(m_pBpmUnlockAction); @@ -821,6 +827,7 @@ void WTrackTableView::contextMenuEvent(QContextMenuEvent* event) { m_pBpmHalveAction->setEnabled(false); m_pBpmTwoThirdsAction->setEnabled(false); m_pBpmThreeFourthsAction->setEnabled(false); + m_pBpmFourThirdsAction->setEnabled(false); } else { //BPM is not locked m_pBpmUnlockAction->setEnabled(false); m_pBpmLockAction->setEnabled(true); @@ -828,6 +835,7 @@ void WTrackTableView::contextMenuEvent(QContextMenuEvent* event) { m_pBpmHalveAction->setEnabled(true); m_pBpmTwoThirdsAction->setEnabled(true); m_pBpmThreeFourthsAction->setEnabled(true); + m_pBpmFourThirdsAction->setEnabled(true); } } else { bool anyLocked = false; //true if any of the selected items are locked @@ -1548,6 +1556,8 @@ void WTrackTableView::slotScaleBpm(int scale) { scalingFactor = 2./3.; else if (scale == THREEFOURTHS) scalingFactor = 3./4.; + else if (scale == FOURTHIRDS) + scalingFactor = 4./3.; QModelIndexList selectedTrackIndices = selectionModel()->selectedRows(); for (int i = 0; i < selectedTrackIndices.size(); ++i) { diff --git a/src/widget/wtracktableview.h b/src/widget/wtracktableview.h index 9ddb83a..afb3c57 100644 --- a/src/widget/wtracktableview.h +++ b/src/widget/wtracktableview.h @@ -40,6 +40,7 @@ class WTrackTableView : public WLibraryTableView { HALVE, TWOTHIRDS, THREEFOURTHS, + FOURTHIRDS, }; public slots: @@ -151,6 +152,7 @@ class WTrackTableView : public WLibraryTableView { QAction *m_pBpmHalveAction; QAction *m_pBpmTwoThirdsAction; QAction *m_pBpmThreeFourthsAction; + QAction *m_pBpmFourThirdsAction; // Clear track beats QAction* m_pClearBeatsAction;